Review abseil-in-webrtc for freshness
Remove mention of absl_deps - it is history already.
Rewrite motiviation of banning absl::Span to be up to date with c++20 state.
Remove motivation of banning absl::Mutex as it likely no longer accurate, and that ban might be re-evaluated.
Ensure allow list matches what is in root DEPS
No-Try: True
Bug: b/363943024, webrtc:342905193
Change-Id: I890a87511bafac7c51355d8f49e0237352eee7b9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361302
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42914}
diff --git a/DEPS b/DEPS
index 663ef80..33b6531 100644
--- a/DEPS
+++ b/DEPS
@@ -2457,7 +2457,6 @@
"+absl/strings/match.h",
"+absl/strings/str_replace.h",
"+absl/strings/string_view.h",
- "+absl/types/optional.h",
"+absl/types/variant.h",
# Abseil flags are allowed in tests and tools.
diff --git a/api/voip/DEPS b/api/voip/DEPS
index 3845dff..a36df41 100644
--- a/api/voip/DEPS
+++ b/api/voip/DEPS
@@ -1,8 +1,4 @@
specific_include_rules = {
- ".*\.h": [
- "+third_party/absl/types/optional.h",
- ],
-
"voip_engine_factory.h": [
"+modules/audio_device/include/audio_device.h",
"+modules/audio_processing/include/audio_processing.h",
diff --git a/g3doc/abseil-in-webrtc.md b/g3doc/abseil-in-webrtc.md
index f6c7f2e..7798f24 100644
--- a/g3doc/abseil-in-webrtc.md
+++ b/g3doc/abseil-in-webrtc.md
@@ -1,5 +1,5 @@
<!-- go/cmark -->
-<!--* freshness: {owner: 'danilchap' reviewed: '2021-05-12'} *-->
+<!--* freshness: {owner: 'danilchap' reviewed: '2024-09-02'} *-->
# Using Abseil in WebRTC
@@ -22,8 +22,6 @@
used within Chromium or standalone. In that build mode, WebRTC will depend
on a monolithic Abseil build target that will generate a shared library.
-Previously, `absl_deps` was used but been deprecated in May 2024.
-
## **Allowed**
* `absl::AnyInvocable`
@@ -47,6 +45,8 @@
`absl/base/macros.h`.
* `absl/numeric/bits.h`
+* ABSL_FLAG is allowed in tests and tools, but disallowed in in non-test code.
+
## **Disallowed**
@@ -58,12 +58,6 @@
*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::optional`
*Use `std::optional` instead.*
@@ -73,12 +67,9 @@
*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](https://bugs.webrtc.org/9214).
+of them differ from the `std::span` introduced in C++20. We should just keep
+using `rtc::ArrayView` and avoid `absl::Span`. When WebRTC switches to C++20,
+we will consider replacing `rtc::ArrayView` with `std::span`.
### `absl::StrCat`, `absl::StrAppend`, `absl::StrJoin`, `absl::StrSplit`