At this point, everything but Mac has been fixed. On Mac, there's an outstanding issue, which will be fixed later.
BUG=649897
Review-Url: https://codereview.chromium.org/2451973004
Cr-Original-Commit-Position: refs/heads/master@{#445114}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 866204443431a62c1b6e1404ed3c19c3f529ce45
Reason for revert:
This breaks things in downstream iOS as apparently EarlGrey requires NS_BLOCK_ASSERTIONS to not be defined and is built in Release (no idea why...)
Original issue's description:
> [iOS] Disable NSAssert and GTMDevAssert on release builds.
>
> This was present in build/common.gypi and was inadvertently dropped
> during the conversion to GN (removed by http://crrev.com/2355673003,
> but hadn't been added to GN).
>
> BUG=673253
>
> Review-Url: https://codereview.chromium.org/2637853002
> Cr-Commit-Position: refs/heads/master@{#444355}
> Committed: 32c54cffc1TBR=brettw@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=673253
Review-Url: https://codereview.chromium.org/2644613002
Cr-Original-Commit-Position: refs/heads/master@{#444383}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 0d55c8128e019ede3567bf5ea09af6312b9221c1
Some non-Android Java libraries (in particular, Emma) expect their
resources to be packed into JARs and accessible via methods of Class or
ClassLoader. This way is supported on Android as well, such resources
must be packed into the final APK to be usable.
This CL generalizes a way Emma resources are packed into the APK.
Instead of having a special case in apkbuilder.py a notion of java
resources JAR is added. Any prebuilt JAR can specify that it also
contains resources. Then apkbuilder.py will get a list of all such JARs
via buildconfig file and pack all resources into an APK.
Patched & rebased from:
https://codereview.chromium.org/2212443002/
Review-Url: https://codereview.chromium.org/2632283002
Cr-Original-Commit-Position: refs/heads/master@{#443944}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 7e46930f3962ed463e08191285a80d66b265c2bb
The warning was added in Clang r291905. It seems useful, but needs to be
suppressed until we clean up the instances where it fires.
BUG=681136
Review-Url: https://codereview.chromium.org/2622083008
Cr-Original-Commit-Position: refs/heads/master@{#443714}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 93e7e50976936431e9da049e74fed54e35c3d9ac
Noticed that aapt now has a flag for outputing a proguard rules file for
use when determining which classes to put in the main dex. For
ChromePublic.apk, it produces a file with a single rule:
-keep class org.chromium.chrome.browser.ChromeBackupAgent { <init>(...); }
Looks like this class wasn't already being explicitly kept in the main
dex, so it's possible that some part of backups was broken for debug
builds (where multidex is enabled).
BUG=none
Review-Url: https://codereview.chromium.org/2632463004
Cr-Original-Commit-Position: refs/heads/master@{#443687}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: ba68db1ef24638f8e1eae8d12ff6a9fff0f1b096
This patch adds flag "enable_ios_bitcode" to the build configuration
for iOS applications, frameworks, and libraries. It triggers adding
the "-fembed-bitcode" option when compiling and linking parts of the
projects for production builds (is_debug = false), and it triggers
adding the "-fembed-bitcode-marker" option in the case of debug builds.
That is along the lines of how Xcode does it, since the introduction
of the bitcode support and corresponding options.
The option only makes sense for Xcode build tools now and for iOS SDK
compatible builds (iOS, watchOS, tvOS). Thus, it the options is only
applicable when building for iOS with use_xcode_clang = true. And only
when building for real devices (with ARM CPUs). The latter limitation
is due to the usage of Intel assembly syntax and the Yasm tool when
building for iOS simulator (Yasm cannot emit bitcode sections now).
But it does not affect the workflow for the generated applications,
frameworks and libraries at the moment of submitting this patch:
For now, Xcode only cares about the availability of bitcode sections
in _all_ the pre-compiled parts of bitcode-enabled projects when
building those projects for ARM-based devices. Building for iOS
simulator, it handles the projects just fine, with or without bitcode
sections available in the linked libraries. That may change in the
future, of course, but currently it should be fine.
BUG=680711
Review-Url: https://codereview.chromium.org/2631573002
Cr-Original-Commit-Position: refs/heads/master@{#443535}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 0e1f16653bdf3cacd121bfbc1f32b25f01ac6aed
This is a ~100mb file that isn't actaully used by anything, and that can
be created after-the-fact by a class-dumping tool
BUG=none
Review-Url: https://codereview.chromium.org/2619273002
Cr-Original-Commit-Position: refs/heads/master@{#443277}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: b91494e0b93d93fd6583be0794cf5f25bf333322
gn will be modified to no longer propagate public_configs across
toolchains (as this is a problem with some platforms). Refactor
ios_framework_bundle template to define the configs for all the
toolchains and to put the references directly (instead of having
secondary toolchain get them through the dependency).
BUG=675224
Review-Url: https://codereview.chromium.org/2627983002
Cr-Original-Commit-Position: refs/heads/master@{#442967}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 72c855683a26d8290f0366a06455d7ec38283aae
They were being pulled in from dependent libraries. We now pass an
explicit whitelist to aapt to ensure only support locales are being
included.
This shaves 470kb off of ChromePublic.apk, 100kb of which
was recently added by the gvr library in bug 678309.
The list of removed configs (via aapt dump configurations):
af
az
az-rAZ
be-rBY
bn
bn-rBD
bs-rBA
en-rAU
en-rIN
es-r419
et
et-rEE
eu-rES
fr-rCA
gl
gl-rES
gu
gu-rIN
hy-rAM
is
is-rIS
ka
ka-rGE
kk
kk-rKZ
km
km-rKH
kn
kn-rIN
ky
ky-rKG
lo
lo-rLA
mk-rMK
ml
ml-rIN
mn
mn-rMN
mr
mr-rIN
ms
ms-rMY
my
my-rMM
ne
ne-rNP
no
pa
pa-rIN
si-rLK
sq-rAL
ta-rIN
te
te-rIN
tl
ur-rPK
uz
uz-rUZ
zh-rHK
zu
BUG=678628,678309
Review-Url: https://codereview.chromium.org/2615753004
Cr-Original-Commit-Position: refs/heads/master@{#442907}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 87f1b6b8f0e0493ba7d1540abe795e13b313e141
Some sanitizer configs already enabled rtti, move the logic to the arg
default value to make experimenting easier. Can be useful when dealing
with some asan-instrumented build startup issued that may go away when
rtti is enabled globally, but don't fall into the existing enable-rtti
cases.
One example scenario I had was with a shared_library built with both rtti
and exceptions (in a downstream project) causing immediate asan failure
on startup around std::exception typeinfo alignment. Rebuilding with
rtti enabled globally made things work, so it helps if that's possible
with just a gn arg.
Note that targets that need rtti to be not disabled regardless of global
settings (e.g. third party libraries like icu that need rtti to build)
can still remove the //build/config/compiler:no_rtti config and add
//build/config/compiler:rtti in its place; this is unchanged.
BUG=webrtc:6468
Review-Url: https://codereview.chromium.org/2607903002
Cr-Original-Commit-Position: refs/heads/master@{#442227}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: d1a04b008747abf9231b676ad1b34e53bad43973
Allow a user to make a Chromium build where binaries and shared
libraries are meant to be installed into separate directories, like
/usr/bin/chromium and /usr/lib/chromium for instance. It is useful
when a build system that generates a whole target root filesystem
(like Yocto) is used on top of gn, especially when cross-compiling.
Note: this gn arg is similar to gyp target_rpath generator flag.
BUG=none
Review-Url: https://codereview.chromium.org/2605673002
Cr-Original-Commit-Position: refs/heads/master@{#441344}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 5bd06e2b5019b1ab0337083a926a8f672255e065
This also includes:
- removal of the old base_test_runner + test_dispatcher code, since
the linker tests were the last remaining users.
- gn changes to make a wrapper script for the linker tests s.t. they
can be run with <output directory>/bin/run_chromium_linker_test_apk
Review-Url: https://codereview.chromium.org/2605793002
Cr-Original-Commit-Position: refs/heads/master@{#441274}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: bf713870ac13487b9a3e2dc639b87f3810058cc9
Reason for revert:
Breaks official Android builds, see https://bugs.chromium.org/p/chromium/issues/detail?id=676894
Original issue's description:
> Validate origins when generating subdomain tokens
>
> Subdomain tokens will match against any subdomains of the given origin.
> This relaxed matching should not be applied when subdomains represent
> separate logical sites (e.g. <user>.github.io). Thus, subdomain tokens
> are not to be issued for such domains. For more detail, see the last
> question in the Origin Trials developer guide:
> https://github.com/jpchase/OriginTrials/blob/gh-pages/developer-guide.md
>
> This CL adds a utility to validate that a origin is not found in the
> Public Suffix List. The token generation script will now call the
> utility to check the origin, only for subdomain tokens. The utility
> is used when the generation script is manually run by the origin
> trials team to issue tokens. The intent is to automate the origin
> checks, to reduce the number of manual steps in issuing tokens.
>
> BUG=658856
>
> Committed: https://crrev.com/6205808cb4e9c61264e4aa48676e2f5833a61326
> Cr-Commit-Position: refs/heads/master@{#440554}
TBR=iclelland@chromium.org,agrieve@chromium.org,rdsmith@chromium.org,rsleevi@chromium.org,brettw@chromium.org,chasej@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=658856
Review-Url: https://codereview.chromium.org/2605563003
Cr-Original-Commit-Position: refs/heads/master@{#440670}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 14e7a72edd0b2d0b313d047e33069cebc76cc0ab
Link steps with warnings typically lead to working binaries, but warnings can indicate dependency issues in the codebase, slow down builds, and otherwise just make it harder to find more relevant output in build logs.
This CL also adds exceptions to ignore certain linker warnings under specific configurations and targets.
BUG=659007, 676418, 676417, 654776
Review-Url: https://codereview.chromium.org/2581893002
Cr-Original-Commit-Position: refs/heads/master@{#440600}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: c868aae8f9b8d51461afff79064c75339e6ce30c
Subdomain tokens will match against any subdomains of the given origin.
This relaxed matching should not be applied when subdomains represent
separate logical sites (e.g. <user>.github.io). Thus, subdomain tokens
are not to be issued for such domains. For more detail, see the last
question in the Origin Trials developer guide:
https://github.com/jpchase/OriginTrials/blob/gh-pages/developer-guide.md
This CL adds a utility to validate that a origin is not found in the
Public Suffix List. The token generation script will now call the
utility to check the origin, only for subdomain tokens. The utility
is used when the generation script is manually run by the origin
trials team to issue tokens. The intent is to automate the origin
checks, to reduce the number of manual steps in issuing tokens.
BUG=658856
Review-Url: https://codereview.chromium.org/2456053004
Cr-Original-Commit-Position: refs/heads/master@{#440554}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 6205808cb4e9c61264e4aa48676e2f5833a61326
The condition under which /OPT:ICF was enabled was out-of-sync with the
conditions for enabling incremental linking. Since the two are not
compatible the difference resulted in linker warnings in Debug
non-component builds.
BUG=621236, 659007
Review-Url: https://codereview.chromium.org/2594153002
Cr-Original-Commit-Position: refs/heads/master@{#440514}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: f6aa9ef3cd873f0cb097e3621f262c72a3876c7d
Reason for revert:
Broke downstream monochrome
Original issue's description:
> Android: Delete rezip in favor of zipalign -p
>
> There's no need for a custom alignment tool now that zipalign supports
> page-aligning libraries.
>
> BUG=676029
>
> Committed: https://crrev.com/5e7b486a42ae172313d28a6ef9c5e4bba38cd74f
> Cr-Commit-Position: refs/heads/master@{#440140}
TBR=michaelbai@chromium.org,jbudorick@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=676029,676589
Review-Url: https://codereview.chromium.org/2595233003
Cr-Original-Commit-Position: refs/heads/master@{#440457}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 8f43f71ff691157cd0db2725f527dc197c89685c
Visual Studio can't find type information outside of the object file
currently being debugged with /DEBUG:FASTLINK. So, every object file
needs to have "standalone" debug information in this mode. However, that
generates a lot more debug info and slows down normal links, so only do
this when we know fastlink is in use.
While we're at it, explicitly pass -fno-standalone-debug to clang when
we're not using is_win_fastlink. This will make sure Chromium keeps using
limited debug info if clang switches the default for -fstandalone-debug.
R=thakis@chromium.org,brucedawson@chromium.org
BUG=657518
Review-Url: https://codereview.chromium.org/2587603002
Cr-Original-Commit-Position: refs/heads/master@{#440163}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 482876ffc87c08dcd8474001eec6d0717f41c4eb
R.java and R.txt files for an AAR were generated by extracting all
resources from the AAR and its dependencies and running aapt on these
resources. This approach turned out to be problematic for AARs of
GMS (Play Services).
GMS is shipped as a bunch of AARs with dependencies between them.
However the way it deals with resources is rather unusual. GMS code
references all resources via com.google.android.gms.R class that
corresponds to the "basement" AAR. This AAR has R.txt with entries for
all resources of the GMS but contains only a small subset of the
resources. All other resources are provided by other AARs: they have
different packages and no R.txt files though.
The consumer of the GMS must generate com.google.android.gms.R class
with entries for all resources provided by used GMS AARs. Entries for
resources that belong to the unused AARs may be ommited. This is what
Gradle plugin for Android does.
However AAR support in Chromium discarded R.txt from "basement" then
generated very small com.google.android.gms.R without essential entries
and this caused crashes in runtime.
This CL changes processing of the AARs resources. If R.txt is present in
AAR then aapt-generated R.txt is discared. The one from AAR is used to
generate R.java for java dependencies of the AAR target and to generate
final R.java file during APK build which is compiled and included into
the final APK.
During obfuscation Proguard checks that all entries that are referenced
in code were in fact generated. This check cannot be done during resource
processing because "basement"'s R.txt lists resources that aren't
included in Chromium and this is because code that uses these resources
isn't included either.
BUG=670368
R=agrieve@chromium.org,dgn@chromium.org
Review-Url: https://codereview.chromium.org/2570313002
Cr-Original-Commit-Position: refs/heads/master@{#439485}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: d36c048e72f0e936b725d4de25179a7c41599c1a
This will make it possible to fully utilize the sanitizers in other
projects that may need to maintain their own suppressions and blacklists.
This change also removes the requirement on having {asan,lsan,tsan}_suppressions_file
defined in //build_overrides/build.gni, simplifying the build configs.
BUG=webrtc:5006
TESTED=CQ dry run + additional sanitizer trybots:
mac_chromium_asan_rel_ng
linux_chromium_ubsan_rel_ng
linux_chromium_msan_rel_ng
linux_chromium_tsan_rel_ng
linux_chromium_asan_rel_ng
Review-Url: https://codereview.chromium.org/2580313002
Cr-Original-Commit-Position: refs/heads/master@{#439452}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 83d8599fdab6538bc3e9cf6e8c9458214a7a8671
Reason for revert:
best-guess fix for:
/b/c/b/Android_Arm64_Builder__dbg_/src/buildtools/linux64/gn gen //out/Debug --check
-> returned 1
ERROR at build arg file (use "gn args <out_dir>" to edit):1:19: Build argument has no effect.
ffmpeg_branding = "Chrome"
^-------
The variable "ffmpeg_branding" was set as a build argument
but never appeared in a declare_args() block in any buildfile.
Original issue's description:
> Convert USE_PROPRIETARY_CODECS to a buildflag header.
>
> Convert the preprocessor define to a buildflag
> //header defined in //media. The build arg is kept in //build/config/features.gni due to a dependency on WebRTC (described in a comment).
>
> R=xhwang@chromium.org
>
> Committed: 866e43b534TBR=xhwang@chromium.org,brettw@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review-Url: https://codereview.chromium.org/2580093002
Cr-Original-Commit-Position: refs/heads/master@{#439219}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: a5a337fc004c3c1ca3c6204d90d50bd063b70df3
Convert the preprocessor define to a buildflag
//header defined in //media. The build arg is kept in //build/config/features.gni due to a dependency on WebRTC (described in a comment).
R=xhwang@chromium.org
Review-Url: https://codereview.chromium.org/2572883002 .
Cr-Original-Commit-Position: refs/heads/master@{#439175}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 866e43b5348172572654dde22dfcf0556fe47d26
Setting this arg allows _incremental targets and scripts to be used
without explicitly building them. With this arg set to true,
non-incremental targets will build their incremental counterparts if
they exist (i.e. the chrome_public_apk target will actually build
chrome_public_apk_incremental).
This works for .apks, test runner scripts, and install scripts for
instrumentation_test_apks, android_apks, and unittest_apks
BUG=634430
Review-Url: https://codereview.chromium.org/2562063003
Cr-Original-Commit-Position: refs/heads/master@{#438901}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: ce844392ab42112ce1fb92240de7ae102ed4c868
This is a debugging feature that will be used on the official Win64 continuous builder to get a repro for some linker failures that we're observing. Having a link repro is the only way for us to report this kind of error to Microsoft in order for them to fix it (we haven't been able to reproduce this linker failure locally, but this hit us really often on the official builders).
BUG=669854
TBR=bengr@chromium.org
Review-Url: https://codereview.chromium.org/2570483004
Cr-Original-Commit-Position: refs/heads/master@{#438621}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: a6de346489e98bfac8bab14062decd759e905b15
Removes the build flag from //build/config and moves it to a new .gni file in
//pdf. Converts the define to a BUILDFLAG.
Makes it possible to unconditionally depend on "//pdf" without checking the
enable_pdf flag. This cleans up most of the callers. There is still a
dependency on plugins and this assertion is moved to the top of
//chrome/common/BUILD.gn.
The assertion for the printing dependency on PDF is moved to the
//printing/BUILD.gn so the enable_pdf flag isn't injected everywhere
enable_printing is needed.
Review-Url: https://codereview.chromium.org/2576573002
Cr-Original-Commit-Position: refs/heads/master@{#438441}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: e5cc5c689fef092ac8b0f9bf91caeff492c4e857
Creates a new directory rlz/features for the gni file and the buildflag_header target.
Updates callers to depend on the new target and use the new flags.
Review-Url: https://codereview.chromium.org/2570573002
Cr-Original-Commit-Position: refs/heads/master@{#438026}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 8fb852d9e627bd3d1042700072e98d2884d48933
All downstream target have been cleaned up, so remove the support for
overridding write_pkg_info from ios_app_bundle template.
BUG=672516
Review-Url: https://codereview.chromium.org/2563013002
Cr-Original-Commit-Position: refs/heads/master@{#437842}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 7d9ae11987ba8d5028c1d31152ce9465208f7efa
This is always defined on non-mobile platforms and it is not possible to
override in the build. Since //chrome is no longer build on iOS, most uses
can be easily keyed off of the Android defines. For files not compiled on
Android, the conditionals were removed altogether.
This change additionally coalesces some Android blocks in
chrome/browser/BUILD.gn and chrome/browser/ui/BUILD.gn
BUG=671706
Review-Url: https://codereview.chromium.org/2561013002
Cr-Original-Commit-Position: refs/heads/master@{#437784}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 9b0866fd103e996c5927d183dfa68f0931a76a45
This build flag is always set for non-iOS platforms. The flag is not
overridable in the build and we never test other settings of it. The policy
code is stable and doesn't change.
This patch removes the flag and replaces it with !ios conditionals.
BUG=671706
Review-Url: https://codereview.chromium.org/2558043004
Cr-Original-Commit-Position: refs/heads/master@{#437759}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 3865a71a732defdff6b64fd3c0fb2899fa7a05c6
enable_mac_keystone was a global flag in the build directory that's only used
by 4 total checks in 2 BUILD files. I'm trying to clean up the global build
flags.
Changes the checks to just check for mac Chrome branded builds. The previous
code additionally checked for "official" builds, but "official" is actually an
optimization level that I don't think is relevant to whether there are
installer scripts included in the bundle.
BUG=671706
Review-Url: https://codereview.chromium.org/2558973003
Cr-Original-Commit-Position: refs/heads/master@{#437687}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: cee2ef7eac5b521699ba2a6c4c494ecb2d91b042
The generation of PkgInfo is disabled for the moment (as come target
downstream already pack a PkgInfo file and enabling the target would
cause a non-deterministic build) and can be enabled by an undocumented
parameter write_pkg_info.
Update build/config/mac/write_pkg_info.py to support loading plist
in any format, not only xml1.
BUG=672516
Review-Url: https://codereview.chromium.org/2559323005
Cr-Original-Commit-Position: refs/heads/master@{#437551}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 8afe7bf6abf4c6c50b9c8f153e4ebf3cb045ef83
These have been replaced by !android checks. The task manager is enabled on all
platforms except Android and iOS, and code in chrome isn't compiled on iOS.
BUG=671706
Review-Url: https://codereview.chromium.org/2558143002
Cr-Original-Commit-Position: refs/heads/master@{#437281}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: ee486bb1c7a7351039d88ba233ad9eabc94887df
Using is_official_build=true and use_lld=true on Windows would result
in linker errors caused by /LTCG being passed to the linker. This
change causes /LTCG to not be passed if use_lld is true.
BUG=
Review-Url: https://codereview.chromium.org/2559843002
Cr-Original-Commit-Position: refs/heads/master@{#437086}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 62b078da1000f7cbbc45a5a442a2f49288e2a6b2
This flag is not overridable from the build. Its definition is non-mobile. Now
that iOS is no longer compiled using chrome or content, all web speech
conditions become non-Android and this flag can be removed.
BUG=671706
Review-Url: https://codereview.chromium.org/2556883002
Cr-Original-Commit-Position: refs/heads/master@{#436860}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 24746e51329bde141ba7c4a1a39a94624381de6f
This flag is not overridable and is set everywhere except iOS. All users except
one are in //chrome which isn't compiled on iOS. So in all of these cases we
can remove the conditionals and always compile the code.
For the one case in ui, The conditional is replaced with !is_ios. This was also
done with the .grd file in chrome. This file has a lot of iOS conditionals and
I want to be sure it's not needed on iOS before inlining them unconditionally.
Then we can delete all of the iOS conditionals.
BUG=671706
Review-Url: https://codereview.chromium.org/2555833002
Cr-Original-Commit-Position: refs/heads/master@{#436813}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 1f92eed58cef4d29db962d41d1055935d4cd2f59
I added -no-threads flag to LLD in 7b18ff885c40874f8e4a417ad03376161b19de0a,
but it turned out that the slowness of the bot is generally slow,
and it is unlikely that LLD's change is the cause of the problem.
This patch restore the original setting.
BUG=670397
Review-Url: https://codereview.chromium.org/2556503003
Cr-Original-Commit-Position: refs/heads/master@{#436517}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: ffa1f105690aea99deecbdfff6eb40128604b73a
With this change linux_arm bot now gets past the isolate_tests
phase and fails when trying to run the tests on swarming.
BUG=564059
Review-Url: https://codereview.chromium.org/2550663003
Cr-Original-Commit-Position: refs/heads/master@{#436375}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: e1e756db7c44f44ce809170d12865341cb6c1ad5
This reverts commit a53f3c3734ad9ee4322f6a9a60eede7f6b04530f.
Original CL: https://codereview.chromium.org/2543743002
Reason for revert: Compilation issue on master.tryserver.chromium.win:win_optional_gpu_tests_rel
Failing [1] task on the bot:
FAILED: obj/third_party/angle/src/tests/angle_deqp_libgles3/es3pBufferDataUploadTests.obj
ninja -t msvc -e environment.x86 -- E:\b\c\cipd\goma/gomacc.exe "E:\b\depot_tools\win_toolchain\vs_files\d5dc33b15d1b2c086f2f6632e2fd15882f80dbd3\VC\bin\amd64_x86/cl.exe" /nologo /showIncludes /FC @obj/third_party/angle/src/tests/angle_deqp_libgles3/es3pBufferDataUploadTests.obj.rsp /c ../../third_party/deqp/src/modules/gles3/performance/es3pBufferDataUploadTests.cpp /Foobj/third_party/angle/src/tests/angle_deqp_libgles3/es3pBufferDataUploadTests.obj /Fd"obj/third_party/angle/src/tests/angle_deqp_libgles3_cc.pdb"
e:\b\c\b\win\src\third_party\deqp\src\modules\gles3\performance\es3pbufferdatauploadtests.cpp(5280): error C2220: warning treated as error - no 'object' file generated
e:\b\c\b\win\src\third_party\deqp\src\modules\gles3\performance\es3pbufferdatauploadtests.cpp(5280): warning C4828: The file contains a character starting at offset 0x3714f that is illegal in the current source character set (codepage 65001).
e:\b\c\b\win\src\third_party\deqp\src\modules\gles3\performance\es3pbufferdatauploadtests.cpp(5280): note: to simplify migration, consider the temporary use of /Wv:18 flag with the version of the compiler with which you used to build without warnings
[1]
https://build.chromium.org/p/tryserver.chromium.win/builders/win_optional_gpu_tests_rel/builds/5729/steps/compile%20%28without%20patch%29/logs/stdio
BUG=454858, 637203, 671021
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win_optional_gpu_tests_rel
NOTRY=true
NOTREECHECKS=true
TBR=scottmg@chromium.org, dpranke@chromium.org
Review-Url: https://codereview.chromium.org/2550973002
Cr-Original-Commit-Position: refs/heads/master@{#436195}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 373af458aa9ab8f6f8650da115209c74d14f5dea
r257133 introduced chrome_pgo_phase to allow building Chrome with
profile-guided optimization. Thus far, support for this has only
been implemented for MSVC on Windows. This change allows PGO to
be used with Clang, as well.
BUG=666152
Review-Url: https://codereview.chromium.org/2507333002
Cr-Original-Commit-Position: refs/heads/master@{#436067}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 0454d1c39637beb1fb084bea057d614f6908a7ae
Reason for revert:
V8 is on 2015 now.
Original issue's description:
> Revert of win: Remove unneeded references to visual_studio_version now that it's always 2015. (patchset #4 id:60001 of https://codereview.chromium.org/2450933002/ )
>
> Reason for revert:
> V8 relies on this.
>
> Original issue's description:
> > win: Remove unneeded references to visual_studio_version now that it's always 2015.
> >
> > BUG=
> >
> > Committed: https://crrev.com/a628db5056deb88589224bd68dcd9ec029932c83
> > Cr-Commit-Position: refs/heads/master@{#427463}
>
> TBR=scottmg@chromium.org,thakis@chromium.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=
>
> Committed: https://crrev.com/f89b499961b139f38e8e01282a82d4ba5d21506e
> Cr-Commit-Position: refs/heads/master@{#434945}
TBR=scottmg@chromium.org,thakis@chromium.org,brucedawson@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=603131
Review-Url: https://codereview.chromium.org/2540013006
Cr-Original-Commit-Position: refs/heads/master@{#435944}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: fd2c63b1b790d0c41a41b708271e3d0264cbdbee
Requires host machines to have jdk8 installed and uses retrolambda to
convert java 8 .jar files into java 7 .jar files.
Future work includes adding Retrolambda into third_party libraries.
BUG=642600
Review-Url: https://codereview.chromium.org/2543463002
Cr-Original-Commit-Position: refs/heads/master@{#435629}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: d8c7a8acef06acc9f093177d568789f8f3329c23
As of LLVM r287681 there are no issues when using integrated as.
BUG=None
TEST=Build Chromium Linux for MIPS with integrated as
Review-Url: https://codereview.chromium.org/2538493003
Cr-Original-Commit-Position: refs/heads/master@{#435586}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: a013532f49a0748c6941b790a46244f2835fa290
That way, buildtools/third_party/libc++/BUILD.gn can opt out of it,
fixing a TODO and a link-time warning when linking libc++. Once that's
done, we can enable warnings-as-errors for links in asan builds.
(Currently, warnings-as-errors-for-links is enabled everywhere except
asan and chromecast builds.)
No intended behavior change.
BUG=669072
TBR=brettw
Review-Url: https://codereview.chromium.org/2537493002
Cr-Original-Commit-Position: refs/heads/master@{#435255}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 5b58fafbaa929d521e638c16ff638a433ae63f2f
The Cocoa browser doesn't have good RTL support, and doesn't flip its UI
in RTL. Bubble direction should not flip by default.
Add BUILDFLAG(MAC_VIEWS_BROWSER) to accomplish this.
BUG=657244
Review-Url: https://codereview.chromium.org/2532613002
Cr-Original-Commit-Position: refs/heads/master@{#435207}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: c60452305f151964dee9b5eaff7c9b0356c41c16
Applies only to chromium_code for now. There's some characters in
third_party that cl.exe claims aren't representable in code page 65001
(which is its way of saying UTF-8 without a BOM).
R=brucedawson@chromium.org
BUG=454858,637203
Review-Url: https://codereview.chromium.org/2488853002
Cr-Original-Commit-Position: refs/heads/master@{#434212}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 63384a79de37f89a88cfc02ff61eb649e4abe535
Reason for revert:
Reland after fixing mac builds.
Original issue's description:
> Revert of Remove unused build override (patchset #2 id:20001 of https://codereview.chromium.org/2498603002/ )
>
> Reason for revert:
> This breaks all the Mac builds.
>
> /b/build/slave/ios-simulator/build/src/buildtools/mac/gn gen //out/Debug-iphonesimulator --check
> -> returned 1
> ERROR at //build/config/mac/mac_sdk.gni:18:27: Undefined identifier
> mac_deployment_target = mac_deployment_target_build_override
> ^-----------------------------------
> See //build/toolchain/mac/BUILD.gn:14:1: whence it was imported.
> import("//build/config/mac/mac_sdk.gni")
> ^--------------------------------------
> See //BUILD.gn:73:1: which caused the file to be included.
> group("gn_all") {
> ^----------------
> GN gen failed: 1
>
> Original issue's description:
> > Remove unused build override
> >
> > The only downstream project using this used to be WebRTC, where it's no
> > longer needed.
> >
> > BUG=webrtc:6431
> > NOTRY=true
> >
> > Committed: https://crrev.com/6dd0024530bfa1d1f88840204633788bad70239e
> > Cr-Commit-Position: refs/heads/master@{#433856}
>
> TBR=dpranke@chromium.org,kjellander@chromium.org,kthelgason@webrtc.org,kthelgason@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6431
>
> Committed: https://crrev.com/5638488a75f3e1424bedc0607e2183b9d0ad8f4a
> Cr-Commit-Position: refs/heads/master@{#433861}
TBR=dpranke@chromium.org,kjellander@chromium.org,kthelgason@webrtc.org,avi@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
BUG=webrtc:6431
Review-Url: https://codereview.chromium.org/2525673002
Cr-Original-Commit-Position: refs/heads/master@{#434157}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: e3f40e988d9487bfa030e714152fadc458d90e4a
If you have a declare_args() block like:
declare_args() {
use_foo = true
use_bar = use_foo
}
currently this will probably produce behavior different than you might
expect. In the normal case (where you don't use use_foo=false in args.gn),
both use_foo and use_bar will bet set to true, but if you do set
use_foo=false in args.gn, use_foo will be set to false, but use_bar
will still be set to true. This happens because GN evaluates the value
of foo inside the block *before* it looks for arg overrides.
We've decided that this is bad enough to flat-out disallow. Now if you
try to do this GN will just return an error. If you want to have one
declared arg depend on the value of another, you need to put them in
separate declare_arg() calls.
This is changing the behavior of GN in a way that may break existing
builds, but hopefully that will happen only rarely and if it does will
expose the surprises that might otherwise be lurking undetected.
In the Chromium build, it turned out we only did this a few times and
they were all unintentional, so this correctly found bugs.
R=brettw@chromium.org, kjellander@chromium.org
BUG=542846
Review-Url: https://codereview.chromium.org/2509333003
Cr-Original-Commit-Position: refs/heads/master@{#433944}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: f6fd4d747c77e1c7968eb5af8b195a94a7ed2fac
Chromium normally builds with /PROFILE in static release builds, which
implies "/OPT:REF /OPT:ICF /INCREMENTAL:NO /FIXED:NO". We can't use
/PROFILE with Clang, so instead pass the list of implied flags to make
Clang builds more closely match MSVC builds. We already do this for
is_win_fastlink=true builds, presumably for the same reason.
It turns out that the chrome_elf_unittests relies on /OPT:REF because it
allows the linker to remove unused user32.dll dependencies brought in by
//base. These tests only run in release+static builds, and most clang
release+static bots do official builds. Official builds already use
/OPT:REF for unrelated reasons, so we only see these test failures on
ASan bots, which don't do official builds.
BUG=646414
R=thakis@chromium.org
Review-Url: https://codereview.chromium.org/2520373003
Cr-Original-Commit-Position: refs/heads/master@{#433929}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 7bff5aca5d8144576a46b3dc0a37086c7e1a8d25
Removes enable_webrtc from build/config/features.gni and puts it in
media/media_options.gni.
Converts the ENABLE_WEBRTC from a define set globally to being set in the
media_features.h generated buildflag header.
R=sky@chromium.orgTBR=nasko@chromium.org (*_messages.h)
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation
Review URL: https://codereview.chromium.org/2517953003 .
Cr-Original-Commit-Position: refs/heads/master@{#433912}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 0748bf41870093364ae96165f6fa1062c9f19ae0
One reason Blink is slow to compile is that there is a lot of code
included in every compilation unit. This is partly because everything
depends on either LayoutObject.h or Document.h and those in turn
include huge portions of the rest of Blink.
By precompiling LayoutObject.h and Document.h, the compilation of
core/ and modules/ in Blink can be considerably reduced;
some numbers:
@ r433149 config build (mins) size (Kb)
------------------------------------------------
master: Debug 149:30 9410487
master: Release 176:16 6118938
opera-pch[2]: Debug 134:59 9337121
opera-pch[2]: Release 160:42 6110812
opera-pch[3]: Debug 93:06 8935714
opera-pch[3]: Release 108:34 5029242
This for a clean build of target 'blink_tests', i.e., building
both chromium and blink parts. The gains are all local to Blink,
clearly. Host is an i7-3770 (4 phys cores); 32G + 256 SSD -
Win7 Pro.
The precompiled header file is judiciously (and forcefully) included
while compiling the core/ + web/ (and some of modules/) sources. Except
for some name disambiguation trivia when compiling the XPath grammar,
no source changes are needed to make this work out.
Note that distributed compilation system disables precompiled headers
globally so this will *not* make trybots faster. But many developers
don't have access to such super powers.
This already landed[1] in the gyp/VS2013 world some time ago but
unclear & unexplained bot failures caused a revert. Now with gn and
VS2015 the world should be a better place. This CL actually takes over
where [2] got stuck / ran out of time, extending its scope quite
considerably (i.e., 40 mins faster builds wrt the above pch numbers.)
[1] https://codereview.chromium.org/1167523007/
[2] https://codereview.chromium.org/2152783002/
[3] this CL.
Note sheriffs: should unexplained Windows build errors surface on the bots,
similar to the ones seen in crbug.com/511945, then please consider this CL a suspect.
This was with GYP and earlier MSVC toolchains; we have no reason to believe the problem
was fixed with GN and MSVC2015, we're just hoping for the best.
R=
BUG=495697
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Review-Url: https://codereview.chromium.org/2520863002
Cr-Original-Commit-Position: refs/heads/master@{#433832}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 60880bc3884f2a65d27b8204b86ca5e863c35d1d
gold has a bug where it ignores section alignment when merging functions.
This means that member functions and regular functions with the same
contents can be merged even if the regular function has an odd address.
In the Itanium ABI, member function pointers with an odd address denote
virtual member function points, so if a non-virtual member function
gets folded into an identical non-member function that happens to be
at an odd address, the generated code will conclude at runtime that
the call is meant to be virtual, leading to a crash.
This only happens with -Os, at -O2 and -O0 functions are always
aligned at 16-byte boundaries. This only happens with clang because
we currently never pass --icf to gold in android builds with gcc.
The gold bug is fixed upstream and is in the progress of being merged
into the NDK's gold, but it's not there yet. Until it is, disable
full ICF on android (where we use -Os).
BUG=663886
Review-Url: https://codereview.chromium.org/2524503002
Cr-Original-Commit-Position: refs/heads/master@{#433797}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: aaa006d4a8d979e96d2ac248306240a60590b0bc
Moves the global build flag from build/config/ui.gni to a separate file in a new "gtk" directory.
Create a virtual target to forward to the correct GTK implementation as needed.
Review-Url: https://codereview.chromium.org/2514413002
Cr-Original-Commit-Position: refs/heads/master@{#433644}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: cdf496ad123d8b43452d65a81f76cbd26d348ebf
The junit tests don't need to worry about pushing runtime deps to the
device since they don't run on the device.
BUG=667332
Review-Url: https://codereview.chromium.org/2517283002
Cr-Original-Commit-Position: refs/heads/master@{#433631}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 221b734a23bc7ae55b2104346dc34124bbe6d296
The build flag and define have moved to the extensions features, and the define has been converted to a buildflag header for scalability.
Review-Url: https://codereview.chromium.org/2510633006
Cr-Original-Commit-Position: refs/heads/master@{#433432}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: cb33b243721b0e7dbdfa8c4301702e319360e88d
Moves the build flag from build/config/features.gni to ppapi/features/features.gni so it's not global any more.
Moves the define from build/config (global) to a generated buildflag header //ppapi/features:features. Updates callers to use BUILDFLAG, include the new header, and depend on this target.
R=bbudge
TBR=rsesek@chromium.org (*_messages.h files).
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation
Review-Url: https://codereview.chromium.org/2512563003
Cr-Original-Commit-Position: refs/heads/master@{#433426}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 4b46108b37f0e0c7de0f86f3dc1d229e1a2bf168
No caller of this template (neither upstream nor downstream) set
the use_new_naming_convention parameter, so remove support for it
from the template as last cleanup step.
BUG=662404
Review-Url: https://codereview.chromium.org/2512553005
Cr-Original-Commit-Position: refs/heads/master@{#433176}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 09cceadb789bf9836f6f3bb6bd342df94e34b15c
This fixes the arm/linux build which is currently
broken because third_party/tc_malloc is not currently
buildable with -mthumb:
atomicops-internals-arm-v6plus.h:268:8:
error: instruction requires: arm-mode "strexd %0, %2, [%3]\n"`
BUG=564059
Review-Url: https://codereview.chromium.org/2515503002
Cr-Original-Commit-Position: refs/heads/master@{#433052}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 446886fca650e9239999df634ef6bc890b95680d
Reason for revert:
This CL cause WebView to crash
BUG=666193
Original issue's description:
> Reland of Add GN build rules to allow java_assertion_enabler to enable Java asserts.
>
> Reverted in:
> https://codereview.chromium.org/2507153002/
>
> Reason for reland:
> Now explicitly lists default toolchain
>
> Also modify java_assertion_enabler to resolve cycle dependency issue
> and empty jar issue.
>
> TBR=jbudorick@chromium.org,agrieve@chromium.org,toyoshim@chromium.org,qinmin@chromium.org
> BUG=462676,665157,665478
>
> Committed: https://crrev.com/95785a8601992a057837bc189e9f7eba61701f1e
> Cr-Commit-Position: refs/heads/master@{#432607}
TBR=jbudorick@chromium.org,agrieve@chromium.org,toyoshim@chromium.org,qinmin@chromium.org,zpeng@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=462676,665157,665478
Review-Url: https://codereview.chromium.org/2506263003
Cr-Original-Commit-Position: refs/heads/master@{#432789}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 5e5387276fc07873f2a2c730b7b1adbd0d0a70ca
Reason for revert:
Hi Andrew.
It turns out that our UX review is blocked on this. We need it in canary build. I will revert your revert for now. And I will work with you tomorrow to figure out if there is a way to reduce dex size of gvr. There should be enough time to land/merge these improvements before it hits stable.
Anyway, let's talk tomorrow. Thanks!
Original issue's description:
> Revert of Enable WebVR for non component build (patchset #5 id:80001 of https://codereview.chromium.org/2502643002/ )
>
> Reason for revert:
> Reverting until dex size growth is understood.
>
> Original issue's description:
> > Enable Android WebVR for arm & arm64
> >
> > BUG=644785
> >
> > Committed: https://crrev.com/7e31a518a02e80fa167181be029691d41fadb898
> > Cr-Commit-Position: refs/heads/master@{#432489}
>
> TBR=bshe@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=644785
>
> Committed: https://crrev.com/19ef7689f208ee3222539bf0bb1d4054b2dbf780
> Cr-Commit-Position: refs/heads/master@{#432606}
TBR=agrieve@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=644785
Review-Url: https://codereview.chromium.org/2505313002
Cr-Original-Commit-Position: refs/heads/master@{#432723}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: eabd2c4458bf716a84e060d3d80e3d931dfa69d7
Rather than add all the features required by robolectric, this adds a
new "gradle_treat_as_prebuilt" flag that is set on a few targets.
BUG=620034
Review-Url: https://codereview.chromium.org/2508553002
Cr-Original-Commit-Position: refs/heads/master@{#432608}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 2cefaf65d6362aadc536c1224e9981036cfb716f
Remove the USE_CLIPBOARD_AURAX11 C++ define which were unused. The use_clipboard_aurax11 build variable was only used in one place (ui/base/BUILD.gn) and seems not to be useful. This is replaced by a "use_x11 && is_desktop_linux" condition.
Remove the enable_clipboard_aurax11 build arg which affected the use_ variant above and is no longer needed.
Move USE_DEFAULT_RENDER_THEME build variable and C++ define to Blink's public features.
Review-Url: https://codereview.chromium.org/2498733002
Cr-Original-Commit-Position: refs/heads/master@{#432010}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 8a274fa60fec11c1c1ddbeb2ee64c3ffb60ca84c
The /DEBUG:FASTLINK flag is incompatible with /PROFILE, so we turn off
/PROFILE when using /DEBUG:FASTLINK. However /PROFILE turns on various
linker optimization, which means that /DEBUG:FASTLINK results in larger
binaries, for no good reason. This was causing some confusion when
working on size optimizations. This change ensures that when /PROFILE is
turned off due to /DEBUG:FASTLINK that the same linker optimization
flags are applied.
This has no effect on non-fastlink builds, it just ensures that
is_win_fastlink does not affect binary sizes. Link times (measured for
non-component 64-bit release chrome.dll and chrome_child.dll) are about
2.7 faster with fastlink than without with this change, which is inline
with before.
This change also avoids using /debug:fastlink on minimal_symbols builds.
On such builds (because there is no debug information in the .obj files
or shared .pdb files) fastlink has no value and actually makes the final
PDBs slightly *bigger*.
BUG=495670
Review-Url: https://codereview.chromium.org/2495643002
Cr-Original-Commit-Position: refs/heads/master@{#431985}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: b05140cde29b38d482e1201b77fcf68fd310daa7
Move the build variables from build/config/features.gni to a new header in components/spellcheck
Removes the global defines for ENABLE_SPELLCHECK and USE_BROWSER_SPELLCHECKER and move them to a generated header.
R=rouslan
TBR=mkwst@chromium.org (_messages.h file)
Review-Url: https://codereview.chromium.org/2495193003
Cr-Original-Commit-Position: refs/heads/master@{#431962}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 41446f6842fd10bb4671afb4ecd700ab6db20158
Removes the global define and convert to a more scaleable build flag system.
The json_schema_compiler tests were moved from the unit tests target to one on their directory with an extensions-only dependency on the new test target.
Review-Url: https://codereview.chromium.org/2479593006
Cr-Original-Commit-Position: refs/heads/master@{#431741}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 00899e685f753f1e8b0b2452bf374de5f0079feb
This should reduce our binary size increase significantly for VR
related feature, as well as avoid issue with crazy linker which has
problem handling two shared libraries.
Note that the static library is mostly a shim lib. It will dynamically
load the correct library from VrCore service at runtime when needed.
Our initial target is Pixel and Pixel XL phones. And VrCore should exist
in both phones. If VrCore doesn't exist or the version is older than we
expect, VR will be disabled. Support for x86 and x64 will be added later.
BUG=644785
Review-Url: https://codereview.chromium.org/2467873004
Cr-Original-Commit-Position: refs/heads/master@{#431699}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 0907c2d02be6980427e4ecc372c47985e7dddffd
Convert image loader extension C++ checks to use OS_CHROMEOS. There are
only two of these and this flag always goes with ChromeOS and is not
overridable. It seems we do not get much benefit from having this be a
define/buildflag, and because this is referenced from both //ui and
//chrome the layering of where the flag should be but is unclear.
Move use_minikin_hyphenation to a buildflag header in Blink.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation
Review-Url: https://codereview.chromium.org/2494183002
Cr-Original-Commit-Position: refs/heads/master@{#431680}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 2cf0a69b66582c80125579d3fa32885ee85917b3
It used to be in the global build faetures file but is only used by Chrome.
The define is removed. It was only used in one place to make sure the compile
matched the build flags, which in this case is uselessly circular.
Review-Url: https://codereview.chromium.org/2497653002
Cr-Original-Commit-Position: refs/heads/master@{#431665}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 519b7b6003aab8cd70808bb07f5d289e10149367
This includes:
- //tools/android/md5sum:md5sum_bin($host_toolchain) -- we had previously
only depended on the symlink, not the target thereof
- //build/android/pylib/device/commands -- we previously only had it set
as a dependency of the forwarder & incremental APKs
This should prevent bots running chromium tests from downloading the devil
versions stored in GS.
BUG=664211,664423
Review-Url: https://codereview.chromium.org/2485383006
Cr-Original-Commit-Position: refs/heads/master@{#431611}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 302e4da2da2463a360e26beb8cb88766c48ab6db
This includes:
- //tools/android/md5sum:md5sum_bin($host_toolchain) -- we had previously
only depended on the symlink, not the target thereof
- //build/android/pylib/device/commands -- we previously only had it set
as a dependency of the forwarder & incremental APKs
This should prevent bots running chromium tests from downloading the devil
versions stored in GS.
BUG=664211
Review-Url: https://codereview.chromium.org/2488013003
Cr-Original-Commit-Position: refs/heads/master@{#431378}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 459473d91b7a627024b3dbf016fa599b79c13845
Rather than trying to symlink as an action after producing the bundle, do it
as an early-stage action. As part of this, mac_framework_bundle callers need
to explicitly specify the top-level symlinks (framework_contents) that should
be created. Frameworks are now packaged like so:
1. At `gn gen` time, an exec_script runs to write the framework_version to a
file. If the previous value written does not match the new value, the entire
framework output directory is clobbered. This must be done at gen-time to
ensure nothing tries to clean the framework while also attempting to copy
to it.
2. Also at `gn gen` time, a TOC file for the framework_contents is written.
This allows the build to emulate depending on the presence of the top-level
symlinks, since ninja does not stat symlinks correctly.
https://github.com/ninja-build/ninja/issues/1186
3. The package_framework.py action now runs before the main create_bundle().
This action depends on the TOC file from (2) and will create all the
required symlinks in the bundle. At the time this runs, the symlink target
may not yet exist.
4. The create_bundle target is now always the leaf edge for
mac_framework_bundle, and it copies all bundle contents to the fully
versioned path (rather than through a symlink).
This should resolve the issue of the build not stabilizing between specifying
a framework_version and not.
BUG=648757
Review-Url: https://codereview.chromium.org/2487763002
Cr-Original-Commit-Position: refs/heads/master@{#430778}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 9522ddcc745f739414607811da8a2c6a17dbb17a
V8 currently defaults to arm_float_abi="hard" and arm_use_neon=true but
the V8 snapshot defaults to arm_float_abi="softfp" and arm_use_neon=false
on Linux ARM builds.
This patch makes both targets default to hard + neon by changing the
"is simulator build" check from comparing current_cpu with v8_current_cpu
to comparing target_cpu with v8_target_cpu instead. Similarly to how it is
checked in v8/BUILD.gn.
BUG=662856
Review-Url: https://codereview.chromium.org/2483153004
Cr-Original-Commit-Position: refs/heads/master@{#430776}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 2c53ba1d955a7da25dbf63829b8e7052e7bf0ceb
Refactor ios_xctest_test template in order to have the main target
correspond to the host application and to have the dynamic module
be a secondary target.
With this change ios_xctest_test("foo") { ... } will now create an
application named foo.app (instead of foo_host.app) and the target
will be correctly named foo (instead of foo_host).
Keep the old target foo_host and the foo_host.app as compatibility
until the downstream bots have been fixed to use the new names.
Rename ios_web_shell_test_host to ios_web_shell_egtests.
BUG=662404
Review-Url: https://codereview.chromium.org/2473103006
Cr-Original-Commit-Position: refs/heads/master@{#430570}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 103ee1e345eb36725297bb35e758cbbd023cb8a8
Add new template compile_plist that merge multiple plist files and
perform variables subsitutions and change info_plist implementation
to use it.
The new template will be used to compile entitlements files that
need different substitutions and do not use the one for Info.plist.
BUG=613543
Review-Url: https://codereview.chromium.org/2475893002
Cr-Original-Commit-Position: refs/heads/master@{#430269}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 7a7cd719032f146447c5b41ee6e243648ec0d397
Both ios_app_bundle and create_signed_bundle now accept another
optional parameter entitlements_targets (incompatible with the
entitlements_path parameter). This allow for generating the
entitlements file to use at build time.
BUG=613543
Review-Url: https://codereview.chromium.org/2473483011
Cr-Original-Commit-Position: refs/heads/master@{#430239}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: a2edd2b924e9f3539c740d5d7323b3ececb54cbb
and //mojo/public/java:system -> :system_java
This removes a naming exception from the android java targets whitelist
within internal_rules.gni.
BUG=620034
Review-Url: https://codereview.chromium.org/2476683002
Cr-Original-Commit-Position: refs/heads/master@{#429941}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: ed37c92f79b0cfa854cb3a9b1a02a6c89e4699c2
Rename build/config/mac/gen_plist.py to build/config/mac/plist_util.py
after splitting the possible action (currently variable substitution and
plist merging).
Extend tweak_info_plist template to add another parameter info_plists
corresponding to a list of path to merge before tweaking (this allow for
adding partial plist files depending on configuration options).
Always pass the --platform variable based on the value of $current_os
to the tweak_info_plist template and make args optional.
Refactor info_plist template to use separate steps for merge and variable
substitution (as the script now implement them as two separate actions).
BUG=613543
Review-Url: https://codereview.chromium.org/2480433002
Cr-Original-Commit-Position: refs/heads/master@{#429830}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 9bb379e5fbd071abaf1359d724eb79b1ff6e7ceb
Removes the build flags in //build/config/features.gni and puts them in a new
file //printing/features/features.gni. A "features" target in that directory
converts these to a BUILDFLAG header. Update users of define to use the new
include, and check BUILDFLAG(...) instead of defined(...).
One define about printing is removed from Blink. This function seems only to
be called by the embedder, and printing code is compiled into Blink either
way. The define seems to not be doing much. if the embedder doesn't want to
print, they should not call the print function.
There is a custom hack for the .rc file due to resource compiler preprocessor limitations.
R=dbeam@chromium.org, dcheng@chromium.org, thestig@chromium.org, thestig, dcheng (third_party/WebKit)
TBR=dbeam (webui), jschuh (ipc messages)
Review URL: https://codereview.chromium.org/2458833005 .
Cr-Original-Commit-Position: refs/heads/master@{#429707}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 65f951ca1dc8c6b3fc5b2dc32e44b4e28a3b86e2
Fix a bug where code signing on iOS would fail if the iPhone developer
identity is not the first item in the output of `security find-identity`
BUG=chromium:661944
Review-Url: https://codereview.chromium.org/2470343002
Cr-Original-Commit-Position: refs/heads/master@{#429561}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 784ae901cc0ee477e57f50d25f801f1ab17882f1
Previously this was in the global features.gni file, and files did an ad-hoc
reference to the debug_devtools config if they needed the define. This is
fragile and will not scale as additional flags are added.
This patch introduces a Blink public features buildflag_header (in the
future I expect we'll also have a Blink-internal one in Source/). The
existing users of debug_devtools are updated to use this.
BUG=
Review-Url: https://codereview.chromium.org/2458573004
Cr-Original-Commit-Position: refs/heads/master@{#429362}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: cb4ab75ac5e94b7857b70a9d6f73eefe9db47a7f
The session service and supervised user flags used to be global build variables and defines.
This patch converts them to use the buildflag system to clean up the dependencies and scope the feature.
R=sky
TBR=dbeam (webui owners)
Review-Url: https://codereview.chromium.org/2468723003
Cr-Original-Commit-Position: refs/heads/master@{#429107}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 9e85ef482ba591482edac786d101d8d37cf4b451
In x64 builds with clang, we also build a 32-bit binary to ship webview
in both 32-bit and 64-bit. The 32-bit part is built twice, once for
the linux host to be able to run v8's mksnapshot, and once for the
android target for the actual binary.
Before this change, both the host toolchain and the target toolchain
were called "clang_x86", and they clobbered each other. (In gcc builds,
the target toolchain was called just "x86" while the host still used
clang, so it happened to work there, mostly by accident.)
BUG=660857,605315
Review-Url: https://codereview.chromium.org/2463143002
Cr-Original-Commit-Position: refs/heads/master@{#428783}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 042f129b96ea6e989df1efe0e4a30dcac09f05a7
Moves it out of the global feature flags and into the net feature flags.
Migrates the flag from a #define to a buildflag.
Review-Url: https://codereview.chromium.org/2460653003
Cr-Original-Commit-Position: refs/heads/master@{#428514}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 5224a189c5968ac267a0c5456846c81495e7dfe3
Write the current framework_version to a file at gen-time, and clobber the
entire framework bundle if it differs from the current value in the file.
This has to be done at gen-time because it is not possible to run a script at
the create_bundle stage before any other dependencies in its tree run. Take
this sample graph:
bundle_data --> shared_library
/
mac_framework_bundle
\
action("clean_framework_version")
It is not possible, from a mac_framework_bundle, to force the
clean_framework_version action to run before the shared_library. When the
action does run, its stamp will have a newer mtime than the shared_library.
Because bundle_data are hard linked into place, the link source file will
have an older mtime than the action, and the build will never stabilize.
BUG=648757
R=dpranke@chromium.org
Originally Committed: https://crrev.com/fed4fc1df8bab7159f19e04ed658c1f417e4e499
Reverted: https://crrev.com/d76ba00e6cc2625000d495e79bdc8d747645405e
Review-Url: https://codereview.chromium.org/2453043002
Cr-Original-Commit-Position: refs/heads/master@{#428366}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: a74b313db5f7444667bcf6530f1b2740884f4bfd
Reason for revert:
rules.gni file is causing the build failure.
------
/b/c/b/Google_Chrome_Mac/src/buildtools/mac/gn gen //out/Release --check
-> returned 1
ERROR at //build/config/mac/rules.gni:313:3: Script returned non-zero exit code.
exec_script("//build/config/mac/prepare_framework_version.py",
^----------
Current dir: /b/c/b/Google_Chrome_Mac/src/out/Release/
Command: python -- /b/c/b/Google_Chrome_Mac/src/build/config/mac/prepare_framework_version.py /b/c/b/Google_Chrome_Mac/src/out/Release/obj/ui/base/ui_unittests_framework_version /b/c/b/Google_Chrome_Mac/src/out/Release/ui_unittests Framework.framework ''
Returned 1.
Original issue's description:
> [Mac/GN] Fix rebuilds when changing framework_version of a mac_framework_bundle.
>
> Write the current framework_version to a file at gen-time, and clobber the
> entire framework bundle if it differs from the current value in the file.
>
> This has to be done at gen-time because it is not possible to run a script at
> the create_bundle stage before any other dependencies in its tree run. Take
> this sample graph:
>
> bundle_data --> shared_library
> /
> mac_framework_bundle
> \
> action("clean_framework_version")
>
> It is not possible, from a mac_framework_bundle, to force the
> clean_framework_version action to run before the shared_library. When the
> action does run, its stamp will have a newer mtime than the shared_library.
> Because bundle_data are hard linked into place, the link source file will
> have an older mtime than the action, and the build will never stabilize.
>
> BUG=648757
> R=dpranke@chromium.org
>
> Committed: https://crrev.com/fed4fc1df8bab7159f19e04ed658c1f417e4e499
> Cr-Commit-Position: refs/heads/master@{#428183}
TBR=dpranke@chromium.org,brettw@chromium.org,rsesek@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=648757
Review-Url: https://codereview.chromium.org/2453933006
Cr-Original-Commit-Position: refs/heads/master@{#428212}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: d76ba00e6cc2625000d495e79bdc8d747645405e
Write the current framework_version to a file at gen-time, and clobber the
entire framework bundle if it differs from the current value in the file.
This has to be done at gen-time because it is not possible to run a script at
the create_bundle stage before any other dependencies in its tree run. Take
this sample graph:
bundle_data --> shared_library
/
mac_framework_bundle
\
action("clean_framework_version")
It is not possible, from a mac_framework_bundle, to force the
clean_framework_version action to run before the shared_library. When the
action does run, its stamp will have a newer mtime than the shared_library.
Because bundle_data are hard linked into place, the link source file will
have an older mtime than the action, and the build will never stabilize.
BUG=648757
R=dpranke@chromium.org
Review-Url: https://codereview.chromium.org/2453043002
Cr-Original-Commit-Position: refs/heads/master@{#428183}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: fed4fc1df8bab7159f19e04ed658c1f417e4e499
This CL adds libgtk3ui.so to supplement libgtk2ui.so so that the
builders can build using gtk3 without having to link the chrome binary
against it (or link against any component that links against it).
The next step is to add the target libgtk3ui to gn_all.
BUG=132847
R=erg@chromium.org,dpranke@chromium.org, sky@chromium.orgTBR=brettw@chromium.org
NOPRESUBMIT=true
Review-Url: https://codereview.chromium.org/2449243002
Cr-Original-Commit-Position: refs/heads/master@{#427927}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 215681db8aa96912f9ce19f9e1fffe38681e1af9
Having this it will be easy for client projects to override
the ignore_elf32_limitations flag that was added in
https://codereview.chromium.org/2395603003 by setting it to true
in their own build_overrides/build.gni.
Then it will still be possible to build with symbol_level=2 as
long as the project isn't affected by the 4GB size limit.
BUG=648948, webrtc:6596
Review-Url: https://codereview.chromium.org/2448453002
Cr-Original-Commit-Position: refs/heads/master@{#427608}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: fd77254d72956d5e469857b2242fefc7f95fc407
Chrome's native heap profiler relies on stack frame pointers to unwind. That
is fast, but requires that all code in a call chain is built with frame pointer
support. Which is not the case for Java / JNI code on Android, so unwinding
stops prematurely once it crosses JNI boundary.
This CL exploits the fact that both JNI stubs (which call into Java) and JNI
callbacks (which are called by Java) are generated. It changes JNI generator
to save stack frame pointer in a JNI stub, and later link saved frame pointer
to a frame pointer of a JNI callback. That repairs broken stack frame chain
and allows unwinder to yield complete trace.
Changes in this CL are active only for profiling builds (ones that build with
enable_profiling=true). Otherwise JNI generator produces exactly the same code
as before (modulo removed empty lines).
Example of a complete trace made possible by this CL:
<.../base.odex>
Java_org_chromium_base_SystemMessageHandler_nativeDoRunLoopOnce
base::MessageLoop::DoWork
base::MessageLoop::DeferOrRunPendingTask
base::MessageLoop::RunTask
base::debug::TaskAnnotator::RunTask
cc::SingleThreadProxy::BeginMainFrame
cc::SingleThreadProxy::DoBeginMainFrame
content::CompositorImpl::UpdateLayerTreeHost..............................#4
<.../base.odex>
Java_org_chromium_chrome_..._ToolbarSceneLayer_nativeUpdateToolbarLayer...#3
android::ToolbarSceneLayer::UpdateToolbarLayer
android::ToolbarLayer::PushResource
ui::ResourceManagerImpl::GetResource......................................#2
<.../base.odex>
Java_org_chromium_ui_resources_ResourceManager_nativeOnResourceReady......#1
ui::ResourceManagerImpl::OnResourceReady
gfx::CreateSkBitmapFromJavaBitmap
...more frames from Chrome...
Previously unwinding would've stopped at #1. Code added by JNI generator links
frames #1->#2 and #3->#4.
BUG=624362
Review-Url: https://codereview.chromium.org/2361353002
Cr-Original-Commit-Position: refs/heads/master@{#427534}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: a8c951effbf899ae4951c67d606a634905f88ab4
Ignore mobile provisioning profile that are expired (or soon going to
expire, i.e. expiration date arrives in less than 1 hour) and warn
about the soon-to-expire mobile provisioning profile.
If two mobile provisioning profile can be used to sign a bundle, use
the one that will expire the latest.
Pass the -u parameter to prevent "security" displaying an error
message when compiling on macOS Sierra.
BUG=659142,657521
Review-Url: https://codereview.chromium.org/2446283002
Cr-Original-Commit-Position: refs/heads/master@{#427408}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: b7c2e30b74d87e45f1aa508c028d9927829b8fd0
clang-cl now implements `#pragma intrinsic` for all commonly used intrinsic, so this warning is no longer emitted.
BUG=644841
Review-Url: https://codereview.chromium.org/2351223002
Cr-Original-Commit-Position: refs/heads/master@{#427388}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 09fa985e68291a078d3bcaeb2d6fc4270cce4d7a
Respect the ios_app_bundle_id_prefix and ios_automatically_manage_certs
when generating the Info.plist file for unit tests targets on iOS.
BUG=613543
Review-Url: https://codereview.chromium.org/2441793002
Cr-Original-Commit-Position: refs/heads/master@{#427057}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: ae44722d0182c5a6aa6e71aa0ed4a53e2cf64341
Add variables to configure the generated bundle identifier prefix (known
as "Organization Identifier" in Xcode) and to enable automatically managed
certs.
Those variables are currently unused in order to avoid breaking the iOS
downstream tree when they land. Once the Chrome on iOS private code has
been updated to override them, they will be connected to the build.
BUG=613543
Review-Url: https://chromiumcodereview.appspot.com/2431423002
Cr-Original-Commit-Position: refs/heads/master@{#426293}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: ff5bbc987d0d57f509a6d191285c9c4c8729ff58
Fix compilation of fat binaries supporting both device and simulator
by always defining the target to generate the embedded entitlement
file in the default toolchain.
Fix native_client_sdk/src/build_tools/build_sdk.py to not override
use_ios_simulator (as this should not be a configurable variable)
and make the variable non configurable.
Note that uber-fat builds cannot be used as-is and require some
processing to tweak the Info.plist file (CFBundleSupportedPlatforms
and DTPlatformName reference the target platform).
BUG=654827
Review-Url: https://chromiumcodereview.appspot.com/2437593005
Cr-Original-Commit-Position: refs/heads/master@{#426285}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 4f7dea0a1f25b46d0d3d5159142f7560dae409ab
Reason for revert:
This may have changed the adb used by adb_logcat_monitor.py & creates a conflict with the one used by telemetry.
BUG=656224
Original issue's description:
> Upgrade to new Android SDK.
>
> BUG=623989
>
> Committed: https://crrev.com/e3c21739bcc8d5df70d2dd011c3f575570085b6d
> Cr-Commit-Position: refs/heads/master@{#425423}
TBR=jbudorick@chromium.org,xunjieli@chromium.org,agrieve@chromium.org,stip@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=623989
Review-Url: https://codereview.chromium.org/2425563002
Cr-Original-Commit-Position: refs/heads/master@{#425604}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 3d5a0fb164db4c2c24e83fe859463aa4268918a4
This flag is only used in Chrome so can be moved to the chrome feature flags.
The root build file reference is removed. This target will be discovered in the
cource of a build with app_list enabled anyway, and having the root file refer
to chrome's features is a layering violation.
This adds several missing dependencies on generated headers in the ChromeOS
build I noticed when testing this patch.
The chrome_grit_defines are now used for all grit targets under //chrome.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation
Review-Url: https://codereview.chromium.org/2406303003
Cr-Original-Commit-Position: refs/heads/master@{#425411}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: d1bc9dafdb5b3cca4e62a84bfbbe8be4145aa6fb
CFG supported on x86 and x64 >= Windows 8.1 Update (KB3000850).
Initial support for Control Flow Guard. "Enable" on chrome.exe to take
advantage of MS system32 dll CFG. Also compile and link chrome_elf with CFG.
NOTE: As ASLR is disabled in debug builds, so too is CFG.
Using the dumpbin tool from the Visual Studio command prompt, run "dumpbin /headers /loadconfig" against chrome.exe or chrome_elf.dll. 1) "DLL characteristics" now includes "Control Flow Guard", and 2) if code was compiled with cfg there will be "load config" for "Guard CF" function table and flags.
BUG=584575
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win10_chromium_x64_rel_ng
Review-Url: https://codereview.chromium.org/2412983006
Cr-Original-Commit-Position: refs/heads/master@{#425226}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: d46842301ebc1f41a92448026bf95e3194538213
This ensures that the hermetic toolchain is only used if use_system_xcode is
false. This CL also causes two changes:
* svn is assumed to be installed on the system. It is not pulled from the
hermetic toolchain.
* mac_sdk_build was used to populate the SDK version in the Info.plist. This
was being populated with a different version than the SDK being used to build
Chrome, which is incorrect.
BUG=651267
Review-Url: https://codereview.chromium.org/2412353003
Cr-Original-Commit-Position: refs/heads/master@{#425170}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 6218c34684254f1c090bf501f6c46b0a69b63ec5
There is already a remoting_enable.gni file in the remoting directory. This
flag should be contained in there rather than in the global feature flags file.
Review-Url: https://codereview.chromium.org/2410973002
Cr-Original-Commit-Position: refs/heads/master@{#424824}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 2b112cd25fcc75ec6d764a789acebfa60022780d
Reduces hot-cache link time from 49s to 23s (gcc) and binary size from 72M to
67M (gcc) -- faster links and a 5MB smaller binary.
(With clang, it's 36s to 19.5s and 75M to 69M.)
It also makes the chrome/android/arm64 config more similar to most other build
configs.
We used to not use this because of
https://sourceware.org/bugzilla/show_bug.cgi?id=18348 , but the gold binary
in NDK r12b (which we currently use) has the flags added in the patches on
that bug, so it should be fine now.
BUG=481855
Review-Url: https://codereview.chromium.org/2410233002
Cr-Original-Commit-Position: refs/heads/master@{#424747}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: a4baf802f3058b66976a2085278f13ab3bcd8092
Newer NDKs define snprintf() (and other functions) to a macro when using clang,
to implement a kind of _FORTIFY_SOURCE support. This means it's impossible to
declare your own base::snprintf(), like base/strings/string_util.h does. A
future NDK will have a better fortify story that doesn't depend on macros,
but for now build with -Dsnprintf=snprintf to tell the NDK that it shouldn't
define snprintf as a macro. This will disable fortify for snprintf.
This matters for 64-bit only because we use NDK 21 for 64-bit builds but
we use NDK 16 for 32-bit builds. NDK 16 never does any fortify stuff, so
while this CL does remove fortify checking for snprintf() (but not for any
other function), 64-bit binaries are still better-protected than 32-bit
binaries. (And ideally this situation is just temporary.)
With this, x64 and mips64el build fine with clang. With this and
https://codereview.chromium.org/2404193003/, arm64 builds fine with
clang. I verified that a clang-built arm64 Chromium starts up fine
on my Pixel XL and can navigate to a few websites.
BUG=539781
Review-Url: https://codereview.chromium.org/2409173004
Cr-Original-Commit-Position: refs/heads/master@{#424729}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 3ae9e5b283ea81dc1605f70970828064deacba2a
Removes the global build flag and #define and converts to a buildflag header in
ppapi/features.
A new target "//third_party/widevine/cdm:headers" was added since
widevine_cdm_version.h was unreferenced in the build. Given that this file now
requires //ppapi/features we really need "gn check" to work on it. I made the
existing users of ":version_h" reference this new target which encompasses the
public headers of the widevine CDM.
TBR=jrummell@chromium.org (original reviewer)
TBR=jschuh@chromium.org (render_messages.h owners)
TBR=ddorwin@chromium.org (widevine owners)
Reland of http://crrev.com/2411433002 with official build fix.
Review-Url: https://codereview.chromium.org/2409423002
Cr-Original-Commit-Position: refs/heads/master@{#424687}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: c5fcdd0ce8d04569d054322ca21f37272d07005a
Moves
enable_captive_portal_detection
enable_hangout_services_extension
enable_plugin_installation
out of the global features.gni files and moves them into chrome/common's
feature flags buildflag header. This increases encapsulation and reduces the
global #defines passed to all compiles.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation
TBR=jschuh (render_messages.h)
Review-Url: https://codereview.chromium.org/2405013002
Cr-Original-Commit-Position: refs/heads/master@{#424659}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: ab78fefbe385452fae85587b505bcc1bac60a17f
Reason for revert:
Broke build https://build.chromium.org/p/chromium.chrome/builders/Google%20Chrome%20Mac/builds/14706
Original issue's description:
> Move ENABLE_PEPPER_CDMS to a buildflag header.
>
> Removes the global build flag and #define and converts to a buildflag header in
> ppapi/features.
>
> A new target "//third_party/widevine/cdm:headers" was added since
> widevine_cdm_version.h was unreferenced in the build. Given that this file now
> requires //ppapi/features we really need "gn check" to work on it. I made the
> existing users of ":version_h" reference this new target which encompasses the
> public headers of the widevine CDM.
>
> TBR=jschuh (render_messages.h)
>
> Committed: https://crrev.com/e23a62a0c4b56618da615698717ed53983854f8d
> Cr-Commit-Position: refs/heads/master@{#424477}
TBR=jrummell@chromium.org,ddorwin@chromium.org,jschuh@chromium.org,brettw@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review-Url: https://codereview.chromium.org/2412493003
Cr-Original-Commit-Position: refs/heads/master@{#424507}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 2d7d8a5e77ba0ee8c4c0e03a2ac4b15977926ca6
Removes the global build flag and #define and converts to a buildflag header in
ppapi/features.
A new target "//third_party/widevine/cdm:headers" was added since
widevine_cdm_version.h was unreferenced in the build. Given that this file now
requires //ppapi/features we really need "gn check" to work on it. I made the
existing users of ":version_h" reference this new target which encompasses the
public headers of the widevine CDM.
TBR=jschuh (render_messages.h)
Review-Url: https://codereview.chromium.org/2411433002
Cr-Original-Commit-Position: refs/heads/master@{#424477}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: e23a62a0c4b56618da615698717ed53983854f8d
clang uses the same compiler binary no matter what arch it's targeting,
so it needs to know where to find the (arch-dependent) linker. It needs
to know this no matter if the linker is BFD ld or gold.
This is needed to make things link in chrome/android/arm64
builds with clang.
use_gold defaults to true on android for x86, x64, and arm, but not for arm64,
see build/config/compiler/compiler.gni. It also doesn't default to true
for mips, but mips had a special-case branch adding --gcc-toolchain
before this change.
(We should probably use gold in arm64 android builds by default too, but
that's for a different CL.)
BUG=539781
Review-Url: https://codereview.chromium.org/2404193003
Cr-Original-Commit-Position: refs/heads/master@{#424441}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 1a11042f1f1a1532bfba1f0cb8fcb9eac23edd06
Revert these two CLs to have monochrome working again on ToT.
Revert "Move PathUtils to use ContextUtils."
commit 7200e9f34aa2e9006d8ea5540035de744b13d27d.
Revert "Reland of Move language pak files to assets."
commit 67101cd0338a409d80689b9c9c875c95ccde7957.
BUG=653771,644377, 529604
TBR==agrieve@chromium.org,tedchoc@chromium.org,slan@chromium.org,xunjieli@chromium.org,torne@chromium.org,nyquist@chromium.org,wnwen@chromium.org, michaelbai@chomium.org, estevenson@chromium.org
Review-Url: https://codereview.chromium.org/2406093002
Cr-Original-Commit-Position: refs/heads/master@{#424345}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 5cb262f964b4a158be02b5497462e2e8d170a59b
Reason for revert:
Breaking monochrome (chrome not booting up)
BUG=652984, 653771
Original issue's description:
> Store only locale paks rather than all assets within BuildConfig.java
>
> This works around Monochrome having diffferent BuildConfig.java for
> 32/64 bit.
>
> BUG=652984
>
> Committed: https://crrev.com/4e09dacc10a8a359785c6f49d75653ce7cfd00ec
> Cr-Commit-Position: refs/heads/master@{#423587}
TBR=tedchoc@chromium.org,michaelbai@chromium.org,agrieve@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=652984
Review-Url: https://codereview.chromium.org/2404043002
Cr-Original-Commit-Position: refs/heads/master@{#424304}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 01fbbca601e78b594cebe62b8eb804ca7d6ff0aa
Add a ignore_elf32_limitations flag in
build/config/compiler/compiler.gni to turn off
assertion for Cronet builds.
This CL additionally adds is_clang to the
assertion per comment in 648948.
BUG=651887,648948
Review-Url: https://codereview.chromium.org/2395603003
Cr-Original-Commit-Position: refs/heads/master@{#423564}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 6d32a26068321e5976494501c51a33636a42c13f
There is only 1 instance in which the bootclasspath variable is
currently used. In this case, adding bootclasspath as an input
sometimes causes an error where GN complains that there is no
path (via public_deps) to the target that generates the input file.
Since public_deps is not supported for java_prebuilt targets, I
think the simplest thing to do is just remove this file from
list of inputs.
BUG=635913
Review-Url: https://codereview.chromium.org/2388153006
Cr-Original-Commit-Position: refs/heads/master@{#423289}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 71fc2fa22d4d1da0cfdcd430f011b4bbf9afebff
This is better for coverage guided fuzzing builds as less optimization
means more branches in the generated code.
BUG=643249
Review-Url: https://codereview.chromium.org/2389923003
Cr-Original-Commit-Position: refs/heads/master@{#423217}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: aaa26c162de624ebcf7a120e85fef3e19ec02151
When code signing is disabled, the embedded.mobileprovision file
should not be copied into the generated bundle, so move the copy
after the check of --disable-code-signature.
Remove the embedded.mobileprovision from the bundle if it exists
so that switching ios_enable_code_signing from true to false works.
BUG=None
Review-Url: https://codereview.chromium.org/2397433002
Cr-Original-Commit-Position: refs/heads/master@{#423111}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 98ca7be1e2734af19697a244879bac6a059db148
The original CL is here: https://codereview.chromium.org/2367673002/
It was reverted because of compile failure with gn flags:
is_debug=false
is_component_build=true
target_os="android"
The reason is gvr uses API that only available in Android N SDK. For
release build, proguard detected the dependancy and results a compile
error. N SDK is in the process of rolling to chromium
https://codereview.chromium.org/2350013004/
In this CL, I restricted WebVr to debug build only. This could unblock
us. And I will remove the is_debug restriction once N is in Chromium
BUG=389343
TBR=dtrainor@
Review-Url: https://codereview.chromium.org/2396663002
Cr-Original-Commit-Position: refs/heads/master@{#423005}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 511e7f727be80e20d41fc5fd07cf8b5244cafbf0