Enable use of rtc::SystemTimeNanos() provided by Chromium

This is the third CL out of three to enable overriding
of the function SystemTimeNanos() in rtc_base/system_time.cc

When WebRTC is built as part of Chromium the rtc::SystemTimeNanos()
function provided by Chromium will be used. This is controlled
by the build argument rtc_exclude_system_time which directly
maps to the macro WEBRTC_EXCLUDE_SYSTEM_TIME.

By doing this we are making sure that the WebRTC and Chromium
clocks are the same.

Bug: chromium:516700
Change-Id: If7f749c4aadefb1cfc07ba4c7e3f45dc6c31118b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208223
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33337}
This commit is contained in:
Johannes Kron 2021-02-24 17:05:12 +01:00 committed by Commit Bot
parent dac39c5b1e
commit dfe19719e5
4 changed files with 16 additions and 1 deletions

View File

@ -407,6 +407,10 @@ rtc_library("timeutils") {
":stringutils",
"system:rtc_export",
]
if (rtc_exclude_system_time) {
defines = [ "WEBRTC_EXCLUDE_SYSTEM_TIME" ]
}
libs = []
if (is_win) {
libs += [ "winmm.lib" ]

View File

@ -8,6 +8,10 @@
* be found in the AUTHORS file in the root of the source tree.
*/
// If WEBRTC_EXCLUDE_SYSTEM_TIME is set, an implementation of
// rtc::SystemTimeNanos() must be provided externally.
#ifndef WEBRTC_EXCLUDE_SYSTEM_TIME
#include <stdint.h>
#include <limits>
@ -90,3 +94,4 @@ int64_t SystemTimeNanos() {
}
} // namespace rtc
#endif // WEBRTC_EXCLUDE_SYSTEM_TIME

View File

@ -136,6 +136,12 @@ rtc_executable("frame_analyzer") {
"//third_party/abseil-cpp/absl/flags:parse",
"//third_party/abseil-cpp/absl/strings",
]
if (build_with_chromium) {
# When building from Chromium, WebRTC's metrics and field trial
# implementations need to be replaced by the Chromium ones.
deps += [ "//third_party/webrtc_overrides:webrtc_component" ]
}
}
# TODO(bugs.webrtc.org/11474): Enable this on win if needed. For now it

View File

@ -63,7 +63,7 @@ declare_args() {
# will tell the pre-processor to remove the default definition of the
# SystemTimeNanos() which is defined in rtc_base/system_time.cc. In
# that case a new implementation needs to be provided.
rtc_exclude_system_time = false
rtc_exclude_system_time = build_with_chromium
# Setting this to false will require the API user to pass in their own
# SSLCertificateVerifier to verify the certificates presented from a