Before reformatting GN files (see [1] for why this is needed), the
presubmit check to ensure targets are not violating package boundaries
needs to be fixed because its regular expressions don't always work with
the new format.
This CL removes the parsing of line numbers to relax the regular
expressions without losing any functionality.
Error before this CL:
***************
<PATH>/webrtc/src/BUILD.gn:674 in target 'android_junit_tests':
Source file 'examples/androidjunit/src/org/appspot/apprtc/BluetoothManagerTest.java'
crosses boundary of package 'examples'.
<PATH>/webrtc/src/BUILD.gn:675 in target 'android_junit_tests':
Source file 'examples/androidjunit/src/org/appspot/apprtc/DirectRTCClientTest.java'
crosses boundary of package 'examples'.
<PATH>/webrtc/src/BUILD.gn:676 in target 'android_junit_tests':
Source file 'examples/androidjunit/src/org/appspot/apprtc/TCPChannelClientTest.java'
crosses boundary of package 'examples'.
<PATH>/webrtc/src/BUILD.gn:677 in target 'android_junit_tests':
Source file 'sdk/android/tests/src/org/webrtc/AndroidVideoDecoderTest.java'
crosses boundary of package 'sdk'.
<PATH>/webrtc/src/BUILD.gn:678 in target 'android_junit_tests':
Source file 'sdk/android/tests/src/org/webrtc/CameraEnumerationTest.java'
crosses boundary of package 'sdk'.
***************
Error after this CL:
***************
<PATH>/webrtc/src/BUILD.gn in target 'android_junit_tests':
Source file 'examples/androidjunit/src/org/appspot/apprtc/BluetoothManagerTest.java'
crosses boundary of package 'examples'.
<PATH>/webrtc/src/BUILD.gn in target 'android_junit_tests':
Source file 'examples/androidjunit/src/org/appspot/apprtc/DirectRTCClientTest.java'
crosses boundary of package 'examples'.
<PATH>/webrtc/src/BUILD.gn in target 'android_junit_tests':
Source file 'examples/androidjunit/src/org/appspot/apprtc/TCPChannelClientTest.java'
crosses boundary of package 'examples'.
<PATH>/webrtc/src/BUILD.gn in target 'android_junit_tests':
Source file 'sdk/android/tests/src/org/webrtc/AndroidVideoDecoderTest.java'
crosses boundary of package 'sdk'.
<PATH>/webrtc/src/BUILD.gn in target 'android_junit_tests':
Source file 'sdk/android/tests/src/org/webrtc/CameraEnumerationTest.java'
crosses boundary of package 'sdk'.
***************
[1] - https://gn-review.googlesource.com/c/gn/+/6860
Bug: webrtc:11302
Change-Id: Ia39387d089a0c56a2c3ad9a7264c20eb5a38ac93
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166535
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30331}
This script will be used when tests write proto-backed JSON. It still
has to reside source-side because we need to access the catapult Python
API to get at HistogramSet and reserved_infos, etc.
WebRTC tests will write proto-backed JSON, and this script can read
it because the Histogram class has been made capable of doing it.
Build information diagnostics are added, and then we upload in the
old JSON format (the dashboard can read the new format as well, but
there's no reason to implement export to the new format at this point).
We could imagine more outlandish solutions where the test binaries
themselves do the uploading, but then we would have to pass the
build information to them, and they would have to upload from the
shards. Alternatively, we could pass build information to tests so
they write it right into the histograms.
This solution is probably the best one for now since it's
1) consistent with how Chromium does it
2) flexible in the right ways
3) we don't have to worry if uploading from shards even works.
Bug: webrtc:11084
Change-Id: I8888ce9f24e0ca58f984d2c2e9af7740ee5e89b6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166464
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30301}
Defects are newly detected by the latest clang version.
This CL mutes them.
Rationale:
* They concern third party code we cannot update here.
* They block chromium roll (containing said clang version).
Bug: webrtc:11110
Change-Id: I7abdfee7e42fd8e89d2296f18690fbda449509d1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160081
Commit-Queue: Yves Gerey <yvesg@google.com>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29860}
This is a manual roll of [1]:
"""
Moved from manual deps into //third_party/android_deps:
* Guava-jre
* AutoService
* ErrorProne
It looks like this CL adds other libraries, but they are just those
that already existed within errorprone-ant.jar.
This updates how ErrorProne is invoked to the JDK9+ method of being a
proper javac plugin. This move necessitated moving the above libraries
into android_deps, because the version of Guava that was already in
android_deps was conflicting with our non-android_deps one.
"""
On top of that, errorprone flags have been removed,
since they aren't recognized anymore:
"error: invalid flag: -Xep:ParameterNotNullable:ERROR"
A follow-up CL will re-activate them with proper invokation.
[1] https://chromium-review.googlesource.com/c/chromium/src/+/1885951
Manual chromium roll: Compile using JDK 11.
Bug: webrtc:11102, chromium:693079
Change-Id: I6fdc700e71bcf39efae948d6195c97700c9cb978
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160011
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Yves Gerey <yvesg@google.com>
Cr-Commit-Position: refs/heads/master@{#29842}
Due to a copy/paste error, the bot was compiling in x86.
Bug: webrtc:11097
Change-Id: I55b013f20707915886fa04956a37fb3fec0477b0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159931
Reviewed-by: Edward Lemur <ehmaldonado@webrtc.org>
Commit-Queue: Yves Gerey <yvesg@google.com>
Cr-Commit-Position: refs/heads/master@{#29825}
This effectively makes WebRTC upload histogram sets instead of Chart
JSON. Histogram sets is the newest format used by Chromium. I'm doing
this because it's nice to use the most modern thing, but mostly because
it's the default for PinPoint. This means I don't have to implement and
support a new read quest for Chart JSON.
This script has to be source side, because we need third_party/catapult
to write correct histograms. This script will be called from recipes.
I also considered generating histogram JSON directly in
test/testsupport/perf_test.cc, which could have avoided this conversion
from Chart JSON to histogram sets, but I can't because there is no C++
API for histogram sets.
Bug: webrtc:11084
Change-Id: If0d2315d2057112b3c2d54a9cfd12e59b5858a18
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159780
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29818}
Static libraries don't guarantee that an exported symbol gets linked
into a shared library (and in order to support Chromium's component
build mode, WebRTC needs to be linked as a shared library).
Source sets always pass all the object files to the linker.
On the flip side, source_sets link more object files in release builds
and to avoid this, this CL introduces a the GN template "rtc_library" that
expands to static_library during release builds and to source_set during
component builds.
See: https://gn.googlesource.com/gn/+/master/docs/reference.md#func_source_set
Bug: webrtc:9419
Change-Id: I4667e820c2b3fcec417becbd2034acc13e4f04fe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157168
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#29525}
This is the last CL required to migrate WebRTC to ABSL_FLAG, rtc::Flag
will be removed soon after this one lands.
Bug: webrtc:10616
Change-Id: I2807cec39e28a2737d2c49e2dc23f2a6f98d08f0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145727
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28606}
This is a reland of bd33ce26202272177af6c52e195e7c13f0d1bf23
Now it doesn't apply flags_compatibility to Android, because the device runner actually requires it to be dashes (so it can intercept the flag and substitute it with an Android-local file path), but that's OK because the runner also already passes the flag with underscores: https://cs.chromium.org/?q=%22--isolated_script_test_perf_output%22
Original change's description:
> Reland "Add wrapper to normalize flags."
>
> This is a reland of 642a49d1eb20b8c5744e745de79ddb585e0f7472
>
> The change has the same effect but is now implemented through mb, rather than specifying a 'script', so that Android's special handling is not skipped.
>
> Original change's description:
> > Add wrapper to normalize flags.
> >
> > Bug: None
> > Change-Id: I9d43602cc66198a29dbc0e7586d948ee76c5ec84
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145204
> > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> > Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#28532}
>
> Bug: webrtc:10616
> Change-Id: I60ebd4891dbe8de18c653f8af88181ea966307de
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145409
> Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28572}
Bug: webrtc:10616
Change-Id: I56aae5475aed62f069c5cecc01b75d7d6ffcf568
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145920
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28589}
This is a reland of 642a49d1eb20b8c5744e745de79ddb585e0f7472
The change has the same effect but is now implemented through mb, rather than specifying a 'script', so that Android's special handling is not skipped.
Original change's description:
> Add wrapper to normalize flags.
>
> Bug: None
> Change-Id: I9d43602cc66198a29dbc0e7586d948ee76c5ec84
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145204
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28532}
Bug: webrtc:10616
Change-Id: I60ebd4891dbe8de18c653f8af88181ea966307de
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145409
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28572}
In https://chromium-review.googlesource.com/1650265 attributes like minSdkVersion were moved from AndroidManifest.xml to GN files. For WebRTC there were a few problems with that.
* We don't want to suppress UsesMinSdkAttributes lint but now there are these "invalid" manifest files that we can't exclude or discern. So disable this lint error.
https://chromium-review.googlesource.com/c/chromium/src/+/1650265/14/build/android/AndroidManifest.xml
* We should specify the versions in GN files, so I did that here (by exactly copying the versions that are already in the targets' corresponding XML files), but we never want to get rid of them in the XML files. For now this information will just be duplicated (without any synchronicity check!) so there should be followup to this.
Change log: 6ae0f0cd4c..bf62d746a4
Full diff: 6ae0f0cd4c..bf62d746a4
Changed dependencies
* src/base: 9e5e9332df..e5a1d1f652
* src/build: 5a031748ec..2ef566e990
* src/buildtools: 6ae683be2f..6f3775ad6e
* src/buildtools/linux64: git_revision:8c7f49102234f4f4b9349dcb258554675475e596..git_revision:81ee1967d3fcbc829bac1c005c3da59739c88df9
* src/buildtools/mac: git_revision:8c7f49102234f4f4b9349dcb258554675475e596..git_revision:81ee1967d3fcbc829bac1c005c3da59739c88df9
* src/buildtools/win: git_revision:8c7f49102234f4f4b9349dcb258554675475e596..git_revision:81ee1967d3fcbc829bac1c005c3da59739c88df9
* src/ios: 2f5c817266..7f1a97d593
* src/testing: 1d4247de57..b1b36ff0d4
* src/third_party: 6f7cbf7c46..42e96c4074
* src/third_party/android_sdk/public: ki7EDQRAiZAUYlnTWR1XmI6cJTk65fJ-DNZUU1zrtS8C..xhyuoquVvBTcJelgRjMKZeoBVSQRjB7pLVJPt5C9saIC
* src/third_party/android_sdk/public: iIwhhDox5E-mHgwUhCz8JACWQCpUjdqt5KTY9VLugKQC..ppQ4TnqDvBHQ3lXx5KPq97egzF5X2FFyOrVHkGmiTMQC
* src/third_party/android_sdk/public: 4Y2Cb2LGzoc-qt-oIUIlhySotJaKeE3ELFedSVe6Uk8C..MSnxgXN7IurL-MQs1RrTkSFSb8Xd1UtZjLArI8Ty1FgC
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/ed9fcf3f70..9e5dbd8b46
* src/tools: f58f33bca1..a9a4b8fc7b
DEPS diff: 6ae0f0cd4c..bf62d746a4/DEPS
No update to Clang.
Bug: chromium:891996
Change-Id: I773d6fa90e8083d934c84eecc1cb9d7d4496eca0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/142235
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28311}
This CL makes it easy to invoke the tool for single cc files,
without having to install or configure anything.
It boils down to:
% tools_webrtc/clang_tidy.py path/to/file.cc [clang-tidy-args...]
If any issue is encountered, a colored diagnostic will be printed.
By default, it also includes checks from clang analyzer.
Warning! This is linux-only, and uses an old version of
clang-tidy based on LLVM 5.0. USE WITH CARE.
bug: webrtc:8793
Change-Id: I8964f2b939408326cc349c5f0ac0dfcff2da24c5
Reviewed-on: https://webrtc-review.googlesource.com/c/120221
Commit-Queue: Yves Gerey <yvesg@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26858}