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

Issue 632385 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: ----



Sign in to add a comment

Adding resource whitelisting for APK size monitoring

Project Member Reported by estevenson@google.com, Jul 28 2016

Issue description

Currently, resource whitelisting is only performed by official_buildbot.sh. Resource whitelisting would be useful for local builds, but especially on bots.

The build output when creating the resource whitelist is complicated, so it isn't really feasible to filter the output manually. Possible solutions include:
- Run the compilation step twice for each target; this will add about 100 ms or 20% to compilation time
- Create a separate toolchain, which will likely result in the same slowdown
- Only enable whitelisting for official builds

 
Cc: dpranke@chromium.org
Owner: estevenson@chromium.org
Status: Started (was: Unconfirmed)
Just wanted to elaborate a little bit:

The current way to apply a resource whitelist is to:
1. Do a clean build with enable_resource_whitelist=true and capture build logs
2. Feed build logs into tools/resources/find_used_resources.py
3. Do another build with repack_whitelist=/path/to/whitelist

Because these steps require multiple builds (and a clean build) with differing GN args, it's not easy to have bots use it.

The main motivation here is to have a way to do this with a regular GN arg so that build/android/resource_sizes.py can more closely measure our actual shipping apk size.

Several approaches were experimented with:
1) Use a custom GN Toolchain, where each compile just runs the file through the C preprocessor rather than actually compiling
2) Change the current toolchain to run GCC twice: one as just a preprocessor (as in #1), and once to do the real compile
3) Change the current toolchain to wrap compiles so that output can be captured and processed into a whitelist as we build.
4) Write a clang plugin to capture used resources

For a sample .cc file (I forget which one), it took ~500ms to compile, and ~100ms to run through the preprocessor. This slowdown is too much, so 1) and 2) are out.

Android still builds with GCC, so 4) is out.

The main drawback of 3) is that it causes a lot of warnings to be generated in the build logs. Attempts to filter them out didn't go so well because:
1. GCC and clang have different warning formats
2. Warnings have extra lines depending on context (e.g. "In file included by...")
3. clang has a summary line: "4 warnings"

I think we'll just have to live with the log spam when enabling the whitelist.

Project Member

Comment 2 by sheriffbot@chromium.org, Jul 29 2016

Labels: Hotlist-Google
Project Member

Comment 3 by bugdroid1@chromium.org, Aug 3 2016

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

commit 3f3fa5fc415baab5a875839e6520c2cbb245ec38
Author: estevenson <estevenson@chromium.org>
Date: Wed Aug 03 14:55:10 2016

Enable whitelist generation for official builds.

Currently, all resources are included in PAK files when Chrome is
built locally. Only official_buildbot.sh uses a resource whitelist. This CL
enables local builds to use resource whitelisting by setting the
enable_resource_whitelist_generation gn flag to true, or by building an
official build.

This will allow developers to more easily monitor the changes in APK size
for each commit they make.

However, a large amount of output is generated (_pragma is used to
create warnings to allow whitelisted resources to be listed), so for now
the whitelist will only be generated for official builds.

Comparison of ChromePublic.apk_InstallSize APK size using resource_sizes.py:
* Local build with this patch: 73338275 bytes
* Local build without this patch: 75248223 bytes

BUG= 632385 

Review-Url: https://codereview.chromium.org/2175413004
Cr-Commit-Position: refs/heads/master@{#409511}

[modify] https://crrev.com/3f3fa5fc415baab5a875839e6520c2cbb245ec38/build/toolchain/gcc_ar_wrapper.py
[add] https://crrev.com/3f3fa5fc415baab5a875839e6520c2cbb245ec38/build/toolchain/gcc_compile_wrapper.py
[modify] https://crrev.com/3f3fa5fc415baab5a875839e6520c2cbb245ec38/build/toolchain/gcc_solink_wrapper.py
[modify] https://crrev.com/3f3fa5fc415baab5a875839e6520c2cbb245ec38/build/toolchain/gcc_toolchain.gni
[add] https://crrev.com/3f3fa5fc415baab5a875839e6520c2cbb245ec38/build/toolchain/wrapper_utils.py
[modify] https://crrev.com/3f3fa5fc415baab5a875839e6520c2cbb245ec38/chrome/BUILD.gn
[modify] https://crrev.com/3f3fa5fc415baab5a875839e6520c2cbb245ec38/chrome/chrome_repack_locales.gni
[modify] https://crrev.com/3f3fa5fc415baab5a875839e6520c2cbb245ec38/tools/grit/grit/format/data_pack.py
[modify] https://crrev.com/3f3fa5fc415baab5a875839e6520c2cbb245ec38/tools/grit/grit/format/repack.py
[modify] https://crrev.com/3f3fa5fc415baab5a875839e6520c2cbb245ec38/tools/grit/grit_rule.gni
[modify] https://crrev.com/3f3fa5fc415baab5a875839e6520c2cbb245ec38/tools/grit/repack.gni
[delete] https://crrev.com/200641027e5b8e76b13a99158447c232069e6472/tools/resources/find_used_resources.py
[add] https://crrev.com/3f3fa5fc415baab5a875839e6520c2cbb245ec38/tools/resources/generate_resource_whitelist.py

Project Member

Comment 4 by bugdroid1@chromium.org, Aug 3 2016

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

commit d44cdb8d3daf1c6e57fbdb8abfd3212154cbf6f4
Author: estevenson <estevenson@chromium.org>
Date: Wed Aug 03 17:08:04 2016

Revert of Enable whitelist generation for all builds. (patchset #5 id:80001 of https://codereview.chromium.org/2175413004/ )

Reason for revert:
Breaks internal Chrome OS builds.

Original issue's description:
> Enable whitelist generation for official builds.
>
> Currently, all resources are included in PAK files when Chrome is
> built locally. Only official_buildbot.sh uses a resource whitelist. This CL
> enables local builds to use resource whitelisting by setting the
> enable_resource_whitelist_generation gn flag to true, or by building an
> official build.
>
> This will allow developers to more easily monitor the changes in APK size
> for each commit they make.
>
> However, a large amount of output is generated (_pragma is used to
> create warnings to allow whitelisted resources to be listed), so for now
> the whitelist will only be generated for official builds.
>
> Comparison of ChromePublic.apk_InstallSize APK size using resource_sizes.py:
> * Local build with this patch: 73338275 bytes
> * Local build without this patch: 75248223 bytes
>
> BUG= 632385 
>
> Committed: https://crrev.com/3f3fa5fc415baab5a875839e6520c2cbb245ec38
> Cr-Commit-Position: refs/heads/master@{#409511}

TBR=agrieve@chromium.org,dpranke@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 632385 

Review-Url: https://codereview.chromium.org/2209763002
Cr-Commit-Position: refs/heads/master@{#409547}

[modify] https://crrev.com/d44cdb8d3daf1c6e57fbdb8abfd3212154cbf6f4/build/toolchain/gcc_ar_wrapper.py
[delete] https://crrev.com/66df03aa24ea26d3f671d2c721c9ea770a042525/build/toolchain/gcc_compile_wrapper.py
[modify] https://crrev.com/d44cdb8d3daf1c6e57fbdb8abfd3212154cbf6f4/build/toolchain/gcc_solink_wrapper.py
[modify] https://crrev.com/d44cdb8d3daf1c6e57fbdb8abfd3212154cbf6f4/build/toolchain/gcc_toolchain.gni
[delete] https://crrev.com/66df03aa24ea26d3f671d2c721c9ea770a042525/build/toolchain/wrapper_utils.py
[modify] https://crrev.com/d44cdb8d3daf1c6e57fbdb8abfd3212154cbf6f4/chrome/BUILD.gn
[modify] https://crrev.com/d44cdb8d3daf1c6e57fbdb8abfd3212154cbf6f4/chrome/chrome_repack_locales.gni
[modify] https://crrev.com/d44cdb8d3daf1c6e57fbdb8abfd3212154cbf6f4/tools/grit/grit/format/data_pack.py
[modify] https://crrev.com/d44cdb8d3daf1c6e57fbdb8abfd3212154cbf6f4/tools/grit/grit/format/repack.py
[modify] https://crrev.com/d44cdb8d3daf1c6e57fbdb8abfd3212154cbf6f4/tools/grit/grit_rule.gni
[modify] https://crrev.com/d44cdb8d3daf1c6e57fbdb8abfd3212154cbf6f4/tools/grit/repack.gni
[add] https://crrev.com/d44cdb8d3daf1c6e57fbdb8abfd3212154cbf6f4/tools/resources/find_used_resources.py
[delete] https://crrev.com/66df03aa24ea26d3f671d2c721c9ea770a042525/tools/resources/generate_resource_whitelist.py

Project Member

Comment 5 by bugdroid1@chromium.org, Aug 22 2016

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

commit e19e7089b508c4c6d6d9ea022068e2ee93a68490
Author: estevenson <estevenson@chromium.org>
Date: Mon Aug 22 23:39:55 2016

Reland of Enable whitelist generation for official builds.

Previous: https://codereview.chromium.org/2175413004/

Currently, all resources are included in PAK files when Chrome is
built locally. Only official_buildbot.sh uses a resource whitelist. This CL
enables local builds to use resource whitelisting by setting the
enable_resource_whitelist_generation gn flag to true, or by building an
official build.

This will allow developers to more easily monitor the changes in APK size
for each commit they make.

However, a large amount of output is generated (_pragma is used to
create warnings to allow whitelisted resources to be listed), so for now
the whitelist will only be generated for official builds.

This change results in a ~1.5 mb difference when calculating the APK size with resource_sizes.py.

BUG= 632385 

Review-Url: https://codereview.chromium.org/2241383004
Cr-Commit-Position: refs/heads/master@{#413584}

[modify] https://crrev.com/e19e7089b508c4c6d6d9ea022068e2ee93a68490/build/toolchain/gcc_ar_wrapper.py
[add] https://crrev.com/e19e7089b508c4c6d6d9ea022068e2ee93a68490/build/toolchain/gcc_compile_wrapper.py
[modify] https://crrev.com/e19e7089b508c4c6d6d9ea022068e2ee93a68490/build/toolchain/gcc_solink_wrapper.py
[modify] https://crrev.com/e19e7089b508c4c6d6d9ea022068e2ee93a68490/build/toolchain/gcc_toolchain.gni
[add] https://crrev.com/e19e7089b508c4c6d6d9ea022068e2ee93a68490/build/toolchain/wrapper_utils.py
[modify] https://crrev.com/e19e7089b508c4c6d6d9ea022068e2ee93a68490/chrome/BUILD.gn
[modify] https://crrev.com/e19e7089b508c4c6d6d9ea022068e2ee93a68490/chrome/chrome_repack_locales.gni
[modify] https://crrev.com/e19e7089b508c4c6d6d9ea022068e2ee93a68490/tools/grit/grit/format/data_pack.py
[modify] https://crrev.com/e19e7089b508c4c6d6d9ea022068e2ee93a68490/tools/grit/grit/format/repack.py
[modify] https://crrev.com/e19e7089b508c4c6d6d9ea022068e2ee93a68490/tools/grit/grit_rule.gni
[modify] https://crrev.com/e19e7089b508c4c6d6d9ea022068e2ee93a68490/tools/grit/repack.gni
[delete] https://crrev.com/75f7dde87bfea8b3eab80814e320c2c528d77224/tools/resources/find_used_resources.py
[add] https://crrev.com/e19e7089b508c4c6d6d9ea022068e2ee93a68490/tools/resources/generate_resource_whitelist.py

Cc: jbau...@chromium.org
This may have broken the android perf trybots: 
https://build.chromium.org/p/tryserver.chromium.perf/builders/android_perf_bisect_builder/builds/14454/steps/generate_build_files/logs/stdio


/b/build/slave/android_perf_bisect_builder/build/src/buildtools/linux64/gn gen //out/Release --check
  -> returned 1
ERROR Input to target not generated by a dependency.
The file:
  //out/Release/libchrome.cr.so.whitelist
is listed as an input or source for the target:
  //chrome:resource_whitelist
but no targets in the build generate that file.

If you have generated inputs, there needs to be a dependency path between the
two targets in addition to just listing the files. For indirect dependencies,
the intermediate ones must be public_deps. data_deps don't count since they're
only runtime dependencies. If you think a dependency chain exists, it might be
because the chain is private. Try "gn path" to analyze.
GN gen failed: 1
step returned non-zero exit code: 1
Project Member

Comment 7 by bugdroid1@chromium.org, Aug 23 2016

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

commit 84ccaf08da81aa46ea6199cffe9a8443b009cf97
Author: estevenson <estevenson@chromium.org>
Date: Tue Aug 23 02:38:25 2016

Revert of Enable whitelist generation for official builds. (patchset #2 id:20001 of https://codereview.chromium.org/2241383004/ )

Reason for revert:
This CL breaks android perf trybots.

Original issue's description:
> Reland of Enable whitelist generation for official builds.
>
> Previous: https://codereview.chromium.org/2175413004/
>
> Currently, all resources are included in PAK files when Chrome is
> built locally. Only official_buildbot.sh uses a resource whitelist. This CL
> enables local builds to use resource whitelisting by setting the
> enable_resource_whitelist_generation gn flag to true, or by building an
> official build.
>
> This will allow developers to more easily monitor the changes in APK size
> for each commit they make.
>
> However, a large amount of output is generated (_pragma is used to
> create warnings to allow whitelisted resources to be listed), so for now
> the whitelist will only be generated for official builds.
>
> This change results in a ~1.5 mb difference when calculating the APK size with resource_sizes.py.
>
> BUG= 632385 
>
> Committed: https://crrev.com/e19e7089b508c4c6d6d9ea022068e2ee93a68490
> Cr-Commit-Position: refs/heads/master@{#413584}

TBR=agrieve@chromium.org,dpranke@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 632385 

Review-Url: https://codereview.chromium.org/2266363002
Cr-Commit-Position: refs/heads/master@{#413642}

[modify] https://crrev.com/84ccaf08da81aa46ea6199cffe9a8443b009cf97/build/toolchain/gcc_ar_wrapper.py
[delete] https://crrev.com/1e2b4834239a71b2b3b00fd71d8ff3d6c77fc40e/build/toolchain/gcc_compile_wrapper.py
[modify] https://crrev.com/84ccaf08da81aa46ea6199cffe9a8443b009cf97/build/toolchain/gcc_solink_wrapper.py
[modify] https://crrev.com/84ccaf08da81aa46ea6199cffe9a8443b009cf97/build/toolchain/gcc_toolchain.gni
[delete] https://crrev.com/1e2b4834239a71b2b3b00fd71d8ff3d6c77fc40e/build/toolchain/wrapper_utils.py
[modify] https://crrev.com/84ccaf08da81aa46ea6199cffe9a8443b009cf97/chrome/BUILD.gn
[modify] https://crrev.com/84ccaf08da81aa46ea6199cffe9a8443b009cf97/chrome/chrome_repack_locales.gni
[modify] https://crrev.com/84ccaf08da81aa46ea6199cffe9a8443b009cf97/tools/grit/grit/format/data_pack.py
[modify] https://crrev.com/84ccaf08da81aa46ea6199cffe9a8443b009cf97/tools/grit/grit/format/repack.py
[modify] https://crrev.com/84ccaf08da81aa46ea6199cffe9a8443b009cf97/tools/grit/grit_rule.gni
[modify] https://crrev.com/84ccaf08da81aa46ea6199cffe9a8443b009cf97/tools/grit/repack.gni
[add] https://crrev.com/84ccaf08da81aa46ea6199cffe9a8443b009cf97/tools/resources/find_used_resources.py
[delete] https://crrev.com/1e2b4834239a71b2b3b00fd71d8ff3d6c77fc40e/tools/resources/generate_resource_whitelist.py

Issue 640084 has been merged into this issue.
Project Member

Comment 9 by bugdroid1@chromium.org, Aug 23 2016

Labels: merge-merged-2837
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ad25208d651e8b7438a019629204bd1a8490aa09

commit ad25208d651e8b7438a019629204bd1a8490aa09
Author: Alex Mineer <amineer@chromium.org>
Date: Tue Aug 23 05:53:56 2016

Revert of Enable whitelist generation for official builds. (patchset #2 id:20001 of https://codereview.chromium.org/2241383004/ )

Reason for revert:
This CL breaks android perf trybots.

Original issue's description:
> Reland of Enable whitelist generation for official builds.
>
> Previous: https://codereview.chromium.org/2175413004/
>
> Currently, all resources are included in PAK files when Chrome is
> built locally. Only official_buildbot.sh uses a resource whitelist. This CL
> enables local builds to use resource whitelisting by setting the
> enable_resource_whitelist_generation gn flag to true, or by building an
> official build.
>
> This will allow developers to more easily monitor the changes in APK size
> for each commit they make.
>
> However, a large amount of output is generated (_pragma is used to
> create warnings to allow whitelisted resources to be listed), so for now
> the whitelist will only be generated for official builds.
>
> This change results in a ~1.5 mb difference when calculating the APK size with resource_sizes.py.
>
> BUG= 632385 
>
> Committed: https://crrev.com/e19e7089b508c4c6d6d9ea022068e2ee93a68490
> Cr-Commit-Position: refs/heads/master@{#413584}

TBR=agrieve@chromium.org,dpranke@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 632385 

Review-Url: https://codereview.chromium.org/2266363002
Cr-Commit-Position: refs/heads/master@{#413642}
(cherry picked from commit 84ccaf08da81aa46ea6199cffe9a8443b009cf97)

Review URL: https://codereview.chromium.org/2271453003 .

Cr-Commit-Position: refs/branch-heads/2837@{#2}
Cr-Branched-From: a29577e8b1ed329373d426e85f679dfeb07a2979-refs/heads/master@{#413618}

[modify] https://crrev.com/ad25208d651e8b7438a019629204bd1a8490aa09/build/toolchain/gcc_ar_wrapper.py
[delete] https://crrev.com/e173ab8634e4f475a1f6d942815e88d265f6e838/build/toolchain/gcc_compile_wrapper.py
[modify] https://crrev.com/ad25208d651e8b7438a019629204bd1a8490aa09/build/toolchain/gcc_solink_wrapper.py
[modify] https://crrev.com/ad25208d651e8b7438a019629204bd1a8490aa09/build/toolchain/gcc_toolchain.gni
[delete] https://crrev.com/e173ab8634e4f475a1f6d942815e88d265f6e838/build/toolchain/wrapper_utils.py
[modify] https://crrev.com/ad25208d651e8b7438a019629204bd1a8490aa09/chrome/BUILD.gn
[modify] https://crrev.com/ad25208d651e8b7438a019629204bd1a8490aa09/chrome/chrome_repack_locales.gni
[modify] https://crrev.com/ad25208d651e8b7438a019629204bd1a8490aa09/tools/grit/grit/format/data_pack.py
[modify] https://crrev.com/ad25208d651e8b7438a019629204bd1a8490aa09/tools/grit/grit/format/repack.py
[modify] https://crrev.com/ad25208d651e8b7438a019629204bd1a8490aa09/tools/grit/grit_rule.gni
[modify] https://crrev.com/ad25208d651e8b7438a019629204bd1a8490aa09/tools/grit/repack.gni
[add] https://crrev.com/ad25208d651e8b7438a019629204bd1a8490aa09/tools/resources/find_used_resources.py
[delete] https://crrev.com/e173ab8634e4f475a1f6d942815e88d265f6e838/tools/resources/generate_resource_whitelist.py

Project Member

Comment 10 by bugdroid1@chromium.org, Aug 23 2016

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

commit c7e6104c8c2ed8080115e92ff3c6f9d748e7feae
Author: estevenson <estevenson@chromium.org>
Date: Tue Aug 23 18:39:42 2016

Reland #2 of Enable whitelist generation for official builds.

Previous: https://codereview.chromium.org/2241383004/

Currently, all resources are included in PAK files when Chrome is
built locally. Only official_buildbot.sh uses a resource whitelist. This CL
enables local builds to use resource whitelisting by setting the
enable_resource_whitelist_generation gn flag to true, or by building an
official build.

This will allow developers to more easily monitor the changes in APK size
for each commit they make.

However, a large amount of output is generated (_pragma is used to
create warnings to allow whitelisted resources to be listed), so for now
the whitelist will only be generated for official builds.

This change results in a ~1.5 mb difference when calculating the APK size with resource_sizes.py.

BUG= 632385 

Review-Url: https://codereview.chromium.org/2271673002
Cr-Commit-Position: refs/heads/master@{#413794}

[modify] https://crrev.com/c7e6104c8c2ed8080115e92ff3c6f9d748e7feae/build/toolchain/gcc_ar_wrapper.py
[add] https://crrev.com/c7e6104c8c2ed8080115e92ff3c6f9d748e7feae/build/toolchain/gcc_compile_wrapper.py
[modify] https://crrev.com/c7e6104c8c2ed8080115e92ff3c6f9d748e7feae/build/toolchain/gcc_solink_wrapper.py
[modify] https://crrev.com/c7e6104c8c2ed8080115e92ff3c6f9d748e7feae/build/toolchain/gcc_toolchain.gni
[add] https://crrev.com/c7e6104c8c2ed8080115e92ff3c6f9d748e7feae/build/toolchain/wrapper_utils.py
[modify] https://crrev.com/c7e6104c8c2ed8080115e92ff3c6f9d748e7feae/chrome/BUILD.gn
[modify] https://crrev.com/c7e6104c8c2ed8080115e92ff3c6f9d748e7feae/chrome/chrome_repack_locales.gni
[modify] https://crrev.com/c7e6104c8c2ed8080115e92ff3c6f9d748e7feae/tools/grit/grit/format/data_pack.py
[modify] https://crrev.com/c7e6104c8c2ed8080115e92ff3c6f9d748e7feae/tools/grit/grit/format/repack.py
[modify] https://crrev.com/c7e6104c8c2ed8080115e92ff3c6f9d748e7feae/tools/grit/grit_rule.gni
[modify] https://crrev.com/c7e6104c8c2ed8080115e92ff3c6f9d748e7feae/tools/grit/repack.gni
[delete] https://crrev.com/19742c40a3b81218259f4a71ce789100888eb509/tools/resources/find_used_resources.py
[add] https://crrev.com/c7e6104c8c2ed8080115e92ff3c6f9d748e7feae/tools/resources/generate_resource_whitelist.py

Maybe I'm misreading it, but this is now causing a different issue on the android perfbot trybot:

[31056/50989] CXX obj/remoting/host/unit_tests/resources_unittest.o
FAILED: obj/remoting/host/unit_tests/resources_unittest.o 
python "../../build/toolchain/gcc_compile_wrapper.py" --resource-whitelist="obj/remoting/host/unit_tests/resources_unittest.o.whitelist" /b/build/slave/cache/cipd/goma/gomacc ../../third_party/android_tools/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -MMD -MF obj/remoting/host/unit_tests/resources_unittest.o.d -DV8_DEPRECATION_WARNINGS -DENABLE_NOTIFICATIONS -DENABLE_BROWSER_CDMS -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_SPELLCHECK=1 -DUSE_BROWSER_SPELLCHECKER=1 -DUSE_OPENSSL_CERTS=1 -DNO_TCMALLOC -DUSE_EXTERNAL_POPUP_MENU=1 -DENABLE_WEBRTC=1 -DDISABLE_NACL -DENABLE_SUPERVISED_USERS=1 -DUSE_PROPRIETARY_CODECS -DVIDEO_HOLE=1 -DSAFE_BROWSING_DB_REMOTE -DOFFICIAL_BUILD -DGOOGLE_CHROME_BUILD -DENABLE_MEDIA_ROUTER=1 -D_FILE_OFFSET_BITS=64 -DNO_UNWIND_TABLES -DANDROID -DHAVE_SYS_UIO_H -DANDROID_NDK_VERSION=r10e -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D__GNU_SOURCE=1 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DVERSION=54.0.2838.0 -DUSE_EGL -DDISABLE_FFMPEG_VIDEO_DECODERS -DWEBRTC_BUILD_LIBEVENT -DGTEST_HAS_POSIX_RE=0 -DGTEST_LANG_CXX11=1 -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DHAVE_PTHREAD -DFEATURE_ENABLE_SSL -DFEATURE_ENABLE_VOICEMAIL -DEXPAT_RELATIVE_PATH -DGTEST_RELATIVE_PATH -DNO_MAIN_THREAD_WRAPPING -DNO_SOUND_SYSTEM -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -DWEBRTC_LINUX -DWEBRTC_ANDROID -DSK_IGNORE_DW_GRAY_FIX -DSK_IGNORE_LINEONLY_AA_CONVEX_PATH_OPTS -DSK_SUPPORT_GPU=1 -DSK_BUILD_FOR_ANDROID -DUSE_CHROMIUM_SKIA -DUNIT_TEST -DPOSIX_AVOID_MMAP -DENABLE_WEBSOCKETS -I../.. -Igen -I../../third_party/khronos -I../../gpu -I../../testing/gtest/include -I../../third_party/protobuf/src -I../../third_party/webrtc_overrides -I../../testing/gtest/include -I../../third_party -I../../third_party/webrtc_overrides -I../../third_party -I../../third_party/protobuf/src -Igen/protoc_out -I../../skia/config -I../../skia/ext -I../../third_party/skia/include/c -I../../third_party/skia/include/config -I../../third_party/skia/include/core -I../../third_party/skia/include/effects -I../../third_party/skia/include/images -I../../third_party/skia/include/lazy -I../../third_party/skia/include/pathops -I../../third_party/skia/include/pdf -I../../third_party/skia/include/pipe -I../../third_party/skia/include/ports -I../../third_party/skia/include/utils -I../../third_party/skia/include/gpu -I../../third_party/skia/src/gpu -I../../testing/gmock_custom -I../../testing/gmock/include -I../../third_party/boringssl/src/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pipe -ffunction-sections -fno-short-enums -finline-limit=64 -march=armv7-a -mfloat-abi=softfp -mthumb -mthumb-interwork -mtune=generic-armv7-a -fno-tree-sra -fno-caller-saves -mfpu=neon -Wall -Werror -Wno-psabi -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-missing-field-initializers -Wno-unused-parameter -Os -fomit-frame-pointer -fno-ident -fdata-sections -ffunction-sections -g1 --sysroot=../../third_party/android_tools/ndk/platforms/android-16/arch-arm -fvisibility=hidden -fno-threadsafe-statics -fvisibility-inlines-hidden -std=gnu++11 -Wno-narrowing -fno-rtti -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/libcxx/include -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/libcxxabi/include -isystem../../third_party/android_tools/ndk/sources/android/support/include -fno-exceptions -c ../../remoting/host/resources_unittest.cc -o obj/remoting/host/unit_tests/resources_unittest.o
../../remoting/host/resources_unittest.cc:43:0: error: ignoring #pragma whitelisted_resource_27578  [-Werror=unknown-pragmas]
               l10n_util::GetStringUTF8(IDS_PRODUCT_NAME));
 ^
cc1plus: all warnings being treated as errors

https://build.chromium.org/p/tryserver.chromium.perf/builders/android_perf_bisect_builder/builds/14535/steps/compile/logs/stdio
Project Member

Comment 12 by bugdroid1@chromium.org, Aug 23 2016

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

commit e925fbcc80e35d175d10b72be9c544f89c1bf5f1
Author: pkotwicz <pkotwicz@chromium.org>
Date: Tue Aug 23 22:22:39 2016

Revert of Reland #2 of Enable whitelist generation for official builds. (patchset #2 id:20001 of https://codereview.chromium.org/2271673002/ )

Reason for revert:
Breaking perf try bot https://build.chromium.org/p/tryserver.chromium.perf/builders/android_perf_bisect_builder/builds/14535/steps/compile/logs/stdio

Original issue's description:
> Reland #2 of Enable whitelist generation for official builds.
>
> Previous: https://codereview.chromium.org/2241383004/
>
> Currently, all resources are included in PAK files when Chrome is
> built locally. Only official_buildbot.sh uses a resource whitelist. This CL
> enables local builds to use resource whitelisting by setting the
> enable_resource_whitelist_generation gn flag to true, or by building an
> official build.
>
> This will allow developers to more easily monitor the changes in APK size
> for each commit they make.
>
> However, a large amount of output is generated (_pragma is used to
> create warnings to allow whitelisted resources to be listed), so for now
> the whitelist will only be generated for official builds.
>
> This change results in a ~1.5 mb difference when calculating the APK size with resource_sizes.py.
>
> BUG= 632385 
>
> Committed: https://crrev.com/c7e6104c8c2ed8080115e92ff3c6f9d748e7feae
> Cr-Commit-Position: refs/heads/master@{#413794}

TBR=agrieve@chromium.org,dpranke@chromium.org,estevenson@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 632385 

Review-Url: https://codereview.chromium.org/2277523002
Cr-Commit-Position: refs/heads/master@{#413860}

[modify] https://crrev.com/e925fbcc80e35d175d10b72be9c544f89c1bf5f1/build/toolchain/gcc_ar_wrapper.py
[delete] https://crrev.com/8275e261f1d65af32665ea90585ded450b48dfb8/build/toolchain/gcc_compile_wrapper.py
[modify] https://crrev.com/e925fbcc80e35d175d10b72be9c544f89c1bf5f1/build/toolchain/gcc_solink_wrapper.py
[modify] https://crrev.com/e925fbcc80e35d175d10b72be9c544f89c1bf5f1/build/toolchain/gcc_toolchain.gni
[delete] https://crrev.com/8275e261f1d65af32665ea90585ded450b48dfb8/build/toolchain/wrapper_utils.py
[modify] https://crrev.com/e925fbcc80e35d175d10b72be9c544f89c1bf5f1/chrome/BUILD.gn
[modify] https://crrev.com/e925fbcc80e35d175d10b72be9c544f89c1bf5f1/chrome/chrome_repack_locales.gni
[modify] https://crrev.com/e925fbcc80e35d175d10b72be9c544f89c1bf5f1/tools/grit/grit/format/data_pack.py
[modify] https://crrev.com/e925fbcc80e35d175d10b72be9c544f89c1bf5f1/tools/grit/grit/format/repack.py
[modify] https://crrev.com/e925fbcc80e35d175d10b72be9c544f89c1bf5f1/tools/grit/grit_rule.gni
[modify] https://crrev.com/e925fbcc80e35d175d10b72be9c544f89c1bf5f1/tools/grit/repack.gni
[add] https://crrev.com/e925fbcc80e35d175d10b72be9c544f89c1bf5f1/tools/resources/find_used_resources.py
[delete] https://crrev.com/8275e261f1d65af32665ea90585ded450b48dfb8/tools/resources/generate_resource_whitelist.py

Project Member

Comment 13 by bugdroid1@chromium.org, Aug 24 2016

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

commit fa33a5b9e9bb7a76fa02426c8a23a232205d83a1
Author: estevenson <estevenson@chromium.org>
Date: Wed Aug 24 21:17:55 2016

Reland of Enable whitelist generation for official builds.

Previous: https://codereview.chromium.org/2271673002/

Currently, all resources are included in PAK files when Chrome is
built locally. Only official_buildbot.sh uses a resource whitelist. This
CL enables local builds to use resource whitelisting by setting the
enable_resource_whitelist_generation gn flag to true, or by building an
official build.

This will allow developers to more easily monitor the changes in APK
size for each commit they make.

However, a large amount of output is generated (_pragma is used to
create warnings to allow whitelisted resources to be listed), so for now
the whitelist will only be generated for official builds.

This change results in a ~1.5 mb difference when calculating the APK
size with resource_sizes.py.

BUG= 632385 

Review-Url: https://codereview.chromium.org/2272713004
Cr-Commit-Position: refs/heads/master@{#414148}

[modify] https://crrev.com/fa33a5b9e9bb7a76fa02426c8a23a232205d83a1/build/toolchain/gcc_ar_wrapper.py
[add] https://crrev.com/fa33a5b9e9bb7a76fa02426c8a23a232205d83a1/build/toolchain/gcc_compile_wrapper.py
[modify] https://crrev.com/fa33a5b9e9bb7a76fa02426c8a23a232205d83a1/build/toolchain/gcc_solink_wrapper.py
[modify] https://crrev.com/fa33a5b9e9bb7a76fa02426c8a23a232205d83a1/build/toolchain/gcc_toolchain.gni
[add] https://crrev.com/fa33a5b9e9bb7a76fa02426c8a23a232205d83a1/build/toolchain/wrapper_utils.py
[modify] https://crrev.com/fa33a5b9e9bb7a76fa02426c8a23a232205d83a1/chrome/BUILD.gn
[modify] https://crrev.com/fa33a5b9e9bb7a76fa02426c8a23a232205d83a1/chrome/chrome_repack_locales.gni
[modify] https://crrev.com/fa33a5b9e9bb7a76fa02426c8a23a232205d83a1/remoting/host/BUILD.gn
[modify] https://crrev.com/fa33a5b9e9bb7a76fa02426c8a23a232205d83a1/tools/grit/grit/format/data_pack.py
[modify] https://crrev.com/fa33a5b9e9bb7a76fa02426c8a23a232205d83a1/tools/grit/grit/format/repack.py
[modify] https://crrev.com/fa33a5b9e9bb7a76fa02426c8a23a232205d83a1/tools/grit/grit_rule.gni
[modify] https://crrev.com/fa33a5b9e9bb7a76fa02426c8a23a232205d83a1/tools/grit/repack.gni
[delete] https://crrev.com/db792ded02006fe0e9b4230c1b904c0560302007/tools/resources/find_used_resources.py
[add] https://crrev.com/fa33a5b9e9bb7a76fa02426c8a23a232205d83a1/tools/resources/generate_resource_whitelist.py

Status: Fixed (was: Started)
Blockedon: 641981
Blockedon: -641981

Sign in to add a comment