Make rtc_json poisonous in WebRTC This does not help the attached bugs, but it does allow greater control over what JSON code is running where. Long-term, the JSON library used for parsing configuration should likely be a library already present in Chromium builds, to avoid duplication. And if that happens, then WebRTC bug 9804 may be passé. Note that this CL also sorts our poisons alphabetically. Bug: chromium:895814, webrtc:9804 Change-Id: I70c3efe05a0eba9212895407f73978d8216df920 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158400 Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Commit-Queue: Sam Zackrisson <saza@webrtc.org> Cr-Commit-Position: refs/heads/master@{#29615}
diff --git a/BUILD.gn b/BUILD.gn index a0eda8f..5cef130 100644 --- a/BUILD.gn +++ b/BUILD.gn
@@ -711,8 +711,11 @@ group("poison_audio_codecs") { } -group("poison_software_video_codecs") { +group("poison_default_task_queue") { } -group("poison_default_task_queue") { +group("poison_rtc_json") { +} + +group("poison_software_video_codecs") { }
diff --git a/api/audio/BUILD.gn b/api/audio/BUILD.gn index bc68190..9ea145b 100644 --- a/api/audio/BUILD.gn +++ b/api/audio/BUILD.gn
@@ -52,6 +52,7 @@ rtc_library("aec3_config_json") { visibility = [ "*" ] + allow_poison = [ "rtc_json" ] sources = [ "echo_canceller3_config_json.cc", "echo_canceller3_config_json.h",
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn index acd54b9..0115429 100644 --- a/rtc_base/BUILD.gn +++ b/rtc_base/BUILD.gn
@@ -615,6 +615,7 @@ rtc_library("rtc_json") { public_configs = [ ":rtc_json_suppressions" ] + poisonous = [ "rtc_json" ] defines = [] sources = [ "strings/json.cc",
diff --git a/webrtc.gni b/webrtc.gni index 6033764..4e0f364 100644 --- a/webrtc.gni +++ b/webrtc.gni
@@ -366,11 +366,14 @@ # Encoders and decoders for specific audio codecs such as Opus and iSAC. "audio_codecs", - # Software video codecs (VP8 and VP9 through libvpx). - "software_video_codecs", - # Default task queue implementation. "default_task_queue", + + # JSON parsing should not be needed in the "slim and modular" WebRTC. + "rtc_json", + + # Software video codecs (VP8 and VP9 through libvpx). + "software_video_codecs", ] absl_include_config = "//third_party/abseil-cpp:absl_include_config"