At runtime, the classloader will look for classes in both apk's dex
files. In the standard Android build system, an instrumentation test
apk's dex file does not include the classes included in the tested apk's
dex file.
To do this, when doing obfuscation for an apk, write the list of
libraries included in the obfuscated jar and the list of proguard config
files. Then, when proguarding the test apk's code, exclude those
libraries included in the tested apk, use the configs from the tested
apk, and apply the proguard mapping (the renames from obfuscation). Also
add some extra test-specific proguard options.
Now that the test apk does not bundle its own copy of all the tested
apk's classes, some things may need to be kept in the main apk just for
tests. However, we already keep everything in org.chromium.** and
com.google.android.apps.** because of the fact that the test apk was
using its own copy of all the classes and so we couldn't depend on the
tests to actually catch us from over-optimizing with proguard.
BUG=272790
Review URL: https://codereview.chromium.org/321883002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@277257 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
I've started changing the way grit headers are included so the include path is relative to the root gen path (liek internal Google does). This also means we don't accumulate another implicit include path for every grit target in the build.
Updates the grit target a bit so that it also includes the generated id file as a dependency, since if this changes everything will need to be re-run.
This adds a bunch of tracing targets required by the content browser build
TBR=scottmg
Review URL: https://codereview.chromium.org/335693004
git-svn-id: http://src.chromium.org/svn/trunk/src/build@277124 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
r262292 moved much of the script under the android_envsetup_main
function. Since zsh does not define BASH_SOURCE, SCRIPT_DIR ends up
being set to $0, which contains the name of the function. As a result,
the various paths are computed incorrectly under when envsetup.sh is
sourced from zsh.
BUG=
Review URL: https://codereview.chromium.org/330513007
git-svn-id: http://src.chromium.org/svn/trunk/src/build@276931 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Also remove the option -w to only wipe without provisioning. This was temporary
functionality to recover from INSUFFICIENT_STORAGE on device error. With the
default wiping, this should be unnecessary. For bots that skip wiping, we can
still manually fix by manually running without --skip-wipe.
BUG=383106
TBR=craigdh@chromium.org
Review URL: https://codereview.chromium.org/334503002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@276866 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
At runtime, the classloader will look for classes in both apk's dex
files. In the standard Android build system, an instrumentation test
apk's dex file does not include the classes included in the tested apk's
dex file.
To do this, when dexing, write a file listing the inputs to the dex
file. When dexing for an instrumentation apk, exclude those files listed
as inputs of the tested apk's dex file.
For proguarded apks, this exclusion will need to happen for proguard
inputs instead of dex inputs, so this change does not cover that case.
BUG=272790
NOTRY=true
Review URL: https://codereview.chromium.org/313273004
git-svn-id: http://src.chromium.org/svn/trunk/src/build@276788 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This is forked off of https://codereview.chromium.org/266613002 The code to compile yasm itself is mostly from that patch, with a few updates for the other changes.
Adds a template for running compiled binaries. Compared to Albert's patch above, this assumes the binary is generated by the source tree so can have a cleaner interface (just specify the label of the tool you use).
The yasm rule is new compared to Albert's patch. It uses a special wrapper script instead of the new compiled_action templates so it can properly support depfiles. This also adds convenient support for defines and include dirs.
This adds some trivial ios changes to the content/public/browser. This should be a NOP now.
Fixes a bug in GN depfile creation. Previously, the .d file was emitted as an output of the script, but this confuses ninja. This change just removes that.
BUG=
R=ajwong@chromium.org
Review URL: https://codereview.chromium.org/321323004
git-svn-id: http://src.chromium.org/svn/trunk/src/build@276772 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
There's more optimization done on a PGO build than on a regular one, this results in some "Unreachable code" warnings that we don't see normally.
But probably anything that this would catch that wouldn't be caught in a normal build isn't going to actually be a bug, so the incremental value of C4702 for PGO builds is likely very small and blocks the setup of the PGO bots.
BUG=380175
Review URL: https://codereview.chromium.org/315323002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@276737 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This should make it possible to get rid of the ugly
relative paths in the isolate files.
I'm including an example for base_unittests.isolate for
demonstrative purposes only. I can remove it (or convert all
.isolate files in Chromium) before landing.
BUG=343106
TEST=Successful compile+test on Linux using:
ninja -C out/Release base_unittests_run xdisplaycheck
tools/swarming_client/isolate.py run -s out/Release/base_unittests.isolated
Review URL: https://codereview.chromium.org/322403003
git-svn-id: http://src.chromium.org/svn/trunk/src/build@276671 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This highlights warnings in yellow, errors in red(ish), and the ^ marker
in blue.
Adds stdout_filter and stderr_filter to build_utils.CheckOutput. If the
caller handled this themselves they would need to print stdout/stderr
themselves and modify the value stored in the ProcessCalledException.
NOTRY=true
Review URL: https://codereview.chromium.org/295683002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@276231 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This makes all temporary work be done in temporary directories.
This change is particularly helpful for 2 reasons: first, it makes it
more difficult to accidentally include stale, unwanted files during an
incremental build. Second, it is easier to trigger dependent actions
(zip file timestamps should be updated when their contents change, while
the same is not true for directories).
Makes the output of build/java_strings_grd.gypi be a zipfile containing
the resources.
BUG=359249,375431
Review URL: https://codereview.chromium.org/321463002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@276226 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This will be defined when a platform needs to use browser side CDM to implement
EME API. Currently this is only used on Android.
Note that MediaWebContentsObserver is shared by Android media player managers
and browser CDM managers. Since ENABLE_BROWSER_CDMS is always true on Android,
we only check ENABLE_BROWSER_CDMS to decide whether MediaWebContentsObserver
should be used. Also, in media_web_contents_observer.*, we only check
OS_ANDROID to decide whether Android media player code should be used. This is
not perfect but makes the current code simple. This will be fixed when we have
a general (not Android specic) media player manager.
TBR=yfriedman@chromium.org
BUG=315312
TEST=Compiles on Android. Test pages still work on Android. Compiles when I choose to use browser CDM on Linux.
Review URL: https://codereview.chromium.org/318753010
git-svn-id: http://src.chromium.org/svn/trunk/src/build@276200 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This is so that intent handlers etc will be able to access the GCMDriver
instance (if any), or if it's null they'll know that they need to launch
the native browser process and tell it to create a C++ GCMDriverAndroid.
BUG=350384
Review URL: https://codereview.chromium.org/316963003
git-svn-id: http://src.chromium.org/svn/trunk/src/build@276187 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
This patch makes some improvements to the perf profiler in telemetry:
1. Add a prebuilt perf binary to be run on the Linux x86_64 host. This
lets us rely on always having a recent perf binary present, allowing
us to use source code annotation by default on Android. The binary
also includes patches needed for importing perf data into Trace
Viewer.
2. Use better defaults for running perf. Most importantly, sample at
2000 Hz instead of the default 100 Hz.
3. On the Linux host, disable kernel symbol hiding for more complete
symbolization. Note that this is also required by the new version of
perf which this patch adds.
4. Turn on all CPUs on Android while running perf. This works around
a bug in perf where samples from CPUs that were brought online while
perf was running were not collected. The rationale for doing this
only for perf instead of performance tests in general (to reduce noise)
is that having all CPUs enabled for a long time is likely to lead to
thermal throttling.
BUG=375754
TEST=tools/telemetry/run_tests --browser=android-content-shell TestAndroidProfilingHelper;
tools/telemetry/run_tests --browser=android-content-shell TestPerfProfiler;
build/android/chrome_profiler/run_tests
Review URL: https://codereview.chromium.org/316143002
git-svn-id: http://src.chromium.org/svn/trunk/src/build@276049 4ff67af0-8c30-449e-8e8b-ad334ec8d88c