As suggested by thakis@, this avoids adding yet another build argument
which can potentially be set inconsistently with other things.
Since ChromeOS needs frame-pointers enabled in x64 builds, to support
CWP, and temporarily in ARM/Thumb builds, to avoid CPU errata, we now
always enable them under ChromeOS. The ChromeOS toolchain already set
frame-pointers always on so this restores the pre-M59 behaviour.
BUG=BUG=710131, 706654, 711784
Review-Url: https://codereview.chromium.org/2845433002
Cr-Original-Commit-Position: refs/heads/master@{#467386}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 8f2e1bde3eb4c84fcfe13962a2f6b48223526f9b
We already don't pass it for blink's PCHs and it seems to work fine there.
No intended behavior change, please revert if this breaks you.
BUG=none
Review-Url: https://codereview.chromium.org/2830733006
Cr-Original-Commit-Position: refs/heads/master@{#467353}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: d7119231dcd23626b491d050706871c2729601a3
Reason for revert:
This optimization was buggy and broke the ninja parsing.
Original issue's description:
> Optimize check_gn_headers.py for speed
>
> Process the output of 'ninja' live through the pipe rather than waiting
> for it to finish.
>
> Before:
> 20.74user 16.36system 0:24.57elapsed 151%CPU
>
> After:
> 16.63user 9.24system 0:13.94elapsed 185%CPU
>
> BUG=661774
>
> Review-Url: https://codereview.chromium.org/2842513003
> Cr-Commit-Position: refs/heads/master@{#466900}
> Committed: 6b609383cfTBR=dpranke@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=661774
Review-Url: https://codereview.chromium.org/2844623002
Cr-Original-Commit-Position: refs/heads/master@{#467231}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: c219b8a1823f884703c3546bf2cb7c17fb737d67
Splitting the ChildProcessConnectionImpl class in 2 and changing it to
an abstract class instead of an interface.
ChildProcessConnections can now be either:
- ImportantChildProcessConnection: bound BIND_IMPORTANT and used for
the GPU process. This is equivalent to the previous
alwaysInForeground ChildProcessConnectionImpl.
- ManagedChildProcessConnection: managed by the BindingManager.
With that split, only ManagedChildProcessConnection are now passed to
the BindingManager.
Also changing the ChildProcessLauncherHelper to keep a reference to the
ChildProcessConnection so that it can determine if it is OOM protected
without the help of the BindingManager. As a result, the BindingManager
does not keep ChildProcessConnections around when they are cleared.
Also changed BindingManagerImplTest to exercise the actual connection
code (instead of mocking some of the logic in the test).
BUG=689758
Review-Url: https://codereview.chromium.org/2828793002
Cr-Original-Commit-Position: refs/heads/master@{#467166}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: faaae321d190728d93ff5b51c961c3d28c016ae5
This allows the linker to apply --gc-sections to object files created
during LTO. This yields a >8MB reduction in stripped binary size for
official binaries built with ThinLTO.
This change increases the size of an official binary built with regular
LTO by 8192 bytes, but this probably isn't worth worrying about.
BUG=660216,607968
R=thakis@chromium.org,krasin@chromium.org
Review-Url: https://codereview.chromium.org/2840723003
Cr-Original-Commit-Position: refs/heads/master@{#467129}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: deda22b114bc8308ad1ae888727a66ceda9189aa
In order to enable a script for swarming, a script has to enfore a
certain API. Therefore I am changing test_results_presentation to suite
this API.
BUG=605572
Review-Url: https://codereview.chromium.org/2821533005
Cr-Original-Commit-Position: refs/heads/master@{#467064}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: a71da5150bbafbf33e18c97c837dd4f10dc39d49
Add a variable ios_code_signing_identity_description variable to
control how the codesigning identity is selected (defaults to the
old pattern "iPhone Developer").
This can be used to select a specific codesigning identity by name
when a developer has multiple codesigning identities certificates
installed on their machine (using a selection by name means there
is nothing to change when the certificates are refreshed and the
identifier is changed).
BUG=714605
Review-Url: https://codereview.chromium.org/2835893004
Cr-Original-Commit-Position: refs/heads/master@{#467002}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 5ef9538469f035211a39b09d5f599d553acc23d3
When cross-compiling in the ChromiumOS chroot, it's possible for
host-based compiled_actions targets to pick up libraries in the board
sysroot which causes linker warnings (converted to errors via
--fatal-warnings). To address this, introduce a host_pkg_config
variable, which can override pkg_config when building tools used on
the host as part of the build process.
BUG=710841
Review-Url: https://codereview.chromium.org/2818523002
Cr-Original-Commit-Position: refs/heads/master@{#466947}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 0dbb630385d7bd387348b00437e72b611287cb49
Process the output of 'ninja' live through the pipe rather than waiting
for it to finish.
Before:
20.74user 16.36system 0:24.57elapsed 151%CPU
After:
16.63user 9.24system 0:13.94elapsed 185%CPU
BUG=661774
Review-Url: https://codereview.chromium.org/2842513003
Cr-Original-Commit-Position: refs/heads/master@{#466900}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 6b609383cf3669b0670b567249ff868ea4b26e43
Reason for revert:
Code size increase: https://chromeperf.appspot.com/report?sid=7826328365affe1842778994c934cbe08c7f9b78ef5d8895ec85d3094bb8972d&start_rev=466555&end_rev=466782
Postmortem is coming. TL;DR: worse dead code elimination in ThinLTO
Original issue's description:
> Enable ThinLTO and LLD for POSIX LTO by default on Linux.
>
> Eventually, we will enable LLD on Linux even for regular
> builds, but it's natural to make incremental steps here.
>
> ThinLTO brings multi-threaded linking for LinkTimeOptimization
> builds, which allows to speed up codegen considerably (up to 4x).
> ThinLTO also manages a cache inside out/<gn-config>/thinlto-cache
> directory, that improves incremental linking as well.
>
> There's a cache pruning policy that will prevent the cache from
> growing indefinitely. The policy is not yet finalized, and
> complaints / suggestions are welcome.
>
> BUG=660216,607968
>
> Review-Url: https://codereview.chromium.org/2831213006
> Cr-Commit-Position: refs/heads/master@{#466732}
> Committed: 7997bbe88aTBR=dpranke@chromium.org,thakis@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=660216,607968
Review-Url: https://codereview.chromium.org/2842683002
Cr-Original-Commit-Position: refs/heads/master@{#466842}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 6aee4d67dcc67850c8ec7b9fc181cb7d91b55734
Eventually, we will enable LLD on Linux even for regular
builds, but it's natural to make incremental steps here.
ThinLTO brings multi-threaded linking for LinkTimeOptimization
builds, which allows to speed up codegen considerably (up to 4x).
ThinLTO also manages a cache inside out/<gn-config>/thinlto-cache
directory, that improves incremental linking as well.
There's a cache pruning policy that will prevent the cache from
growing indefinitely. The policy is not yet finalized, and
complaints / suggestions are welcome.
BUG=660216,607968
Review-Url: https://codereview.chromium.org/2831213006
Cr-Original-Commit-Position: refs/heads/master@{#466732}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 7997bbe88aef7eeca37111dcb8426f0430347fb5
Conditionally disable the warning based on the value of the
"xcode_version" variable. To be reverted when all bots are on 8.3.
BUG=712731
Review-Url: https://codereview.chromium.org/2833833002
Cr-Original-Commit-Position: refs/heads/master@{#466157}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: b1eb09e2deb0335502f6b744a902dd0251a209f3
This replaces the quick-fix in crrev.com/2820803003, to address issues
with ARM32 builds when frame pointers are disabled.
This CL explicitly enables frame pointers in ARM32 builds, and pulls out
the ARM32 and ARM64 special-cases to be handling separately from Debug,
profiling and sanitizer build configurations, for clarity.
BUG=710131, 706654, 711784
Review-Url: https://codereview.chromium.org/2829433003
Cr-Original-Commit-Position: refs/heads/master@{#466080}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 38f02400540606a7c418f9fa5148d3a07fd8b4fa
It was set to false only on iOS and cast, but the define is mostly used
in chrome/ which isn't used in neither iOS nor cast builds.
No intended behavior change.
BUG=461815,704958
TBR=cpu
Review-Url: https://codereview.chromium.org/2760403003
Cr-Original-Commit-Position: refs/heads/master@{#466043}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 678822e951c8943cc2b80657eeaec130d82b7385
I'm working on a change that will require android_apk clients to
pass the actual package name (e.g. "org.chromium.base") to support
a java_cpp_template client that requires the package name. This CL
should prevent confusion or suboptimal names.
BUG=710811
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_cronet_tester
Review-Url: https://codereview.chromium.org/2822343002
Cr-Original-Commit-Position: refs/heads/master@{#466015}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 1e5e1dcfccdb9ec8625bda61a0afda98bf05ffb1
Update the GMS preprocessing script to enumerate the proguard files that
come with the client libs, and put them in a generated .gni file. Use
the generated file to pull in the recommended flags, and remove them
from apk_proguard.flags. This will preclude some human error in the GMS
roll process.
In v9, each GMS client has its own proguard.txt file, with common flags
duplicated accross clients. In v10, most clients don't have their own
proguard.txt, with common flags only in the "basement" client.
BUG=708349
Review-Url: https://codereview.chromium.org/2827793005
Cr-Original-Commit-Position: refs/heads/master@{#465814}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 3278d07f94c85839bac14d4f9495056c82977b56
Chrome's tests sometimes symbolize call stacks. In order to support new
PDB formats such as PDB's generated by VS 2017's updated /debug:fastlink
we need to use a recent version of dbghelp.dll. This change restores a
modified version of _CopyDebugger that was removed a few weeks ago, thus
avoiding a CPU busy hang in the system version of dbghelp.dll.
R=jochen@chromium.org
BUG=712905
Review-Url: https://codereview.chromium.org/2834513003
Cr-Original-Commit-Position: refs/heads/master@{#465784}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 6db4113f95a5fd90ec2e0df495ba1982c651ccee
Now that blink lives in the src repo, there's no need to generate a
separate LASTCHANGE file for it.
The LASTCHANGE line makes it into the user agent. LASTCHANGE.blink
used --git-hash-only to only have the git hash in there. Remove
that now-unused flag and use version.py's -e flag to get the same
effect for webkit_version.h
Reverts parts of https://chromiumcodereview.appspot.com/14973005/
No intended behavior change.
BUG=none
Review-Url: https://codereview.chromium.org/1982423002
Cr-Original-Commit-Position: refs/heads/master@{#465739}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 69e2570d4b5e50cd708e4c467e567d810c4b2134
Adding all sources to a "_all" pseudo module fixes Studio's code analysis
functions (imports, refactoring).
In order to have things build properly in gradle, the "_all" module has
all sources excluded (gradle applies the filters, studio does not).
Also fix "--all" targets to include tests. Make it easier to make sweeping
java refactors in Android Studio.
BUG=620034
Review-Url: https://codereview.chromium.org/2812133003
Cr-Original-Commit-Position: refs/heads/master@{#465700}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 03427bcc41560b36b5c595eda92e35f563a6303e
This benchmark has been failing (timing out) for months now, so removing it won't affect the performance.
The issue seem to be that Speedometer takes a while to tun, and it's much slower in a PGI build, so we timeout after 10 minutes and at this
point the benchmark is still running. We could increase the timeout
but as mentioned above this has been failing for months and we haven't noticed a performance regression.
BUG=650432
Review-Url: https://codereview.chromium.org/2814103003
Cr-Original-Commit-Position: refs/heads/master@{#465682}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: aa335b32311ded1c056247d4a8baca404de732c6
bc7c6e235d64 mac: Prevent the same report from being uploaded multiple
times
5d07d81458dc Fix Doxygen warnings after 30385d4e4772
2ec34e32c2f4 linux: Support 4.10 format for empty Groups: lines in
/proc/pid/status
8297b19a5e85 Don’t attempt to do periodic tasks in a secondary
crashpad_handler
c64fd3f9b4d5 Update mini_chromium to dc3d480305b2
ddcc74f08f4f mac: Tolerate dead names for reply ports in the exception
handler server
b8aaa2290530 mac handler: Record a file-limits annotation (temporarily)
BUG=crashpad:30,crashpad:143,crashpad:167,crashpad:180
Review-Url: https://codereview.chromium.org/2825103002
Cr-Original-Commit-Position: refs/heads/master@{#465308}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 22d1fa7cd581238076db274a3932ae45a9966cd5
Reason for revert:
Appears to be breaking chrome_junit_tests: https://build.chromium.org/p/chromium.linux/builders/Android%20Tests/builds/40695
Stack trace from failed tests:
android.content.res.Resources$NotFoundException: Resource ID #0x7f0a0153
at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:190)
at android.content.res.Resources.getDimensionPixelSize(Resources.java:667)
at org.chromium.chrome.browser.suggestions.TileGroup.<init>(TileGroup.java:192)
at org.chromium.chrome.browser.suggestions.TileGroupTest.testReceiveNewTilesWithoutChanges(TileGroupTest.java:110)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:52)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.robolectric.RobolectricTestRunner$HelperTestRunner$1.evaluate(RobolectricTestRunner.java:515)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:316)
at org.robolectric.RobolectricTestRunner.runChild(RobolectricTestRunner.java:236)
at org.robolectric.RobolectricTestRunner.runChild(RobolectricTestRunner.java:41)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:176)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.chromium.testing.local.GtestComputer$GtestSuiteRunner.run(GtestComputer.java:46)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:27)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
at org.chromium.testing.local.JunitTestMain.main(JunitTestMain.java:105)
Original issue's description:
> (Reland) Expose resources in Robolectric/JUnit tests.
>
> Will let people use Android resources in Robolectric tests.
> To use, specify package_name GN variable in junit_binary
> targets with your apps package name.
>
> This change will also (basically) require that you use the
> generated wrappers from out_dir/bin/run_<suite name> to run
> the tests since GN will be generating many arguments to
> pass along to the test runner.
>
> BUG=693573
>
> Review-Url: https://codereview.chromium.org/2819983002
> Cr-Commit-Position: refs/heads/master@{#464973}
> Committed: 30bba37e58TBR=jbudorick@chromium.org,nyquist@chromium.org,mikecase@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=693573
Review-Url: https://codereview.chromium.org/2824863002
Cr-Original-Commit-Position: refs/heads/master@{#465027}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 3781c029a68e4ea22f3e36db45a561723b610667
Will let people use Android resources in Robolectric tests.
To use, specify package_name GN variable in junit_binary
targets with your apps package name.
This change will also (basically) require that you use the
generated wrappers from out_dir/bin/run_<suite name> to run
the tests since GN will be generating many arguments to
pass along to the test runner.
BUG=693573
Review-Url: https://codereview.chromium.org/2819983002
Cr-Original-Commit-Position: refs/heads/master@{#464973}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 30bba37e58b51483b1ec77bc3f697deb8e4033c1
-fomit_frame_pointer causes the assembly generated from SkEdge::setLine
to trigger a CPU errata in ARM A12/A17 devices, so we are temporarily
removing the flag until the toolchain can be fixed to avoid that.
Revert this when issue 711784 is resolved.
BUG=710131, 706654, 711784
Review-Url: https://codereview.chromium.org/2820803003
Cr-Original-Commit-Position: refs/heads/master@{#464832}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: bec44505ea17b6b8fbd366ab22ca724f3c448fe6
Since the Blink rename, enum entry names now use the kCamelCase naming
convention instead of SHOUTY_CASE. This doesn't match well with Java
naming conventions and Java constants created by java_cpp_enum.py look
out of place with the rest of the Java codebase.
This CL modifies java_cpp_enum.py so that C++ enum naming conventions
don't leak into the Java side, specifically translating kCamelCase and
CamelCase enum entries to SHOUTY_CASE.
BUG=710335
Review-Url: https://codereview.chromium.org/2815103004
Cr-Original-Commit-Position: refs/heads/master@{#464661}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 23b8f65ce75fc2ff04a28cb5a940861c134e0797
Adjust GN configs to only link with Control Flow Guard for executables.
This will still support CFG compiled into Microsoft system DLLs, in all
Chromium processes (e.g. chrome.exe).
This should prevent sporadic official clang build problems in DLLs, related
to CFG. Further investigation/fixes to follow.
TEST=CFGSupportTests.MsIndirectFailure in sbox_integration_tests suite.
BUG=584575,708098
Review-Url: https://codereview.chromium.org/2813823006
Cr-Original-Commit-Position: refs/heads/master@{#464475}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 723503ec2956cc8b66e53a5ee97985ec262a599d