This reverts commit 0f2ce5cc1c779f9bf33f51f29bfffbcbe105d1b1. Reason for revert: Downstream infrastructure should be ready now Original change's description: > Revert "Migrate WebRTC documentation to new renderer" > > This reverts commit 3eceaf46695518f25bef43f155f82ed174827197. > > Reason for revert: > > Original change's description: > > Migrate WebRTC documentation to new renderer > > > > Bug: b/258408932 > > Change-Id: Ib96f39fe0c3912f9746bcc09d079097a145d6115 > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/290987 > > Reviewed-by: Harald Alvestrand <hta@webrtc.org> > > Commit-Queue: Artem Titov <titovartem@webrtc.org> > > Cr-Commit-Position: refs/heads/main@{#39205} > > Bug: b/258408932 > Change-Id: I16cb4088bee3fc15c2bb88bd692c592b3a7db9fe > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/291560 > Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com> > Owners-Override: Artem Titov <titovartem@webrtc.org> > Commit-Queue: Artem Titov <titovartem@webrtc.org> > Cr-Commit-Position: refs/heads/main@{#39209} Bug: b/258408932 Change-Id: Ia172e4a6ad1cc7953b48eed08776e9d1e44eb074 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/291660 Owners-Override: Artem Titov <titovartem@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Artem Titov <titovartem@webrtc.org> Cr-Commit-Position: refs/heads/main@{#39231}
2.9 KiB
Using Abseil in WebRTC
You may use a subset of the utilities provided by the Abseil library when writing WebRTC C++ code. Below, we list the explicitly allowed and the explicitly disallowed subsets of Abseil; if you find yourself in need of something that isn’t in either subset, please add it to the allowed subset in this doc in the same CL that adds the first use.
How to depend on Abseil
For build targets of type rtc_library, rtc_source_set and
rtc_static_library, dependencies on Abseil need to be listed in absl_deps
instead of deps.
This is needed in order to support the Abseil component build in Chromium. In that build mode, WebRTC will depend on a monolithic Abseil build target that will generate a shared library.
Allowed
absl::AnyInvocableabsl::bind_frontabsl::Cleanupabsl::InlinedVectorabsl::WrapUniqueabsl::optionaland related stuff fromabsl/types/optional.h.absl::string_view- The functions in
absl/strings/ascii.h,absl/strings/match.h, andabsl/strings/str_replace.h. - The functions in
absl/strings/escaping.h. absl::is_trivially_copy_constructible,absl::is_trivially_copy_assignable, andabsl::is_trivially_destructiblefromabsl/meta/type_traits.h.absl::variantand related stuff fromabsl/types/variant.h.- The functions in
absl/algorithm/algorithm.handabsl/algorithm/container.h. absl/base/const_init.hfor mutex initialization.- The macros in
absl/base/attributes.h,absl/base/config.handabsl/base/macros.h. absl/numeric/bits.h
Disallowed
absl::make_unique
Use std::make_unique instead.
absl::Mutex
Use webrtc::Mutex instead.
Chromium has a ban on new static initializers, and absl::Mutex uses
one. To make absl::Mutex available, we would need to nicely ask the
Abseil team to remove that initializer (like they already did for a
spinlock initializer). Additionally, absl::Mutex handles time in a
way that may not be compatible with the rest of WebRTC.
absl::Span
Use rtc::ArrayView instead.
absl::Span differs from rtc::ArrayView on several points, and both
of them differ from the std::span that was voted into
C++20—and std::span is likely to undergo further changes
before C++20 is finalized. We should just keep using rtc::ArrayView
and avoid absl::Span until C++20 is finalized and the Abseil team
has decided if they will change absl::Span to match.
Bug.
absl::StrCat, absl::StrAppend, absl::StrJoin, absl::StrSplit
Use rtc::SimpleStringBuilder to build strings.
These are optimized for speed, not binary size. Even StrCat calls
with a modest number of arguments can easily add several hundred bytes
to the binary.