Add ScopedAllowBaseSyncPrimitivesForTesting to Webrtc.

Chromium requires that all code that waits on a sync primitive be
annotated with ScopedAllowBaseSyncPrimitives(ForTesting). Webrtc
already imports ScopedAllowBaseSyncPrimitives.
ScopedAllowBaseSyncPrimitivesForTesting is equivalent but can only
be used in tests and doesn't required adding a friend declaration to
thread_restrictions.h.

Previously, the code that is annotated with
ScopedAllowBaseSyncPrimitivesForTesting in this CL didn't fail because
it ran on a TaskRunner annotated with the deprecated
WithBaseSyncPrimitives() trait (cf.
https://cs.chromium.org/chromium/src/content/renderer/media/webrtc/task_queue_factory_unittest.cc?l=23&rcl=362f3723ac358d932ea2e3af65512a1243697a31).

Change-Id: Id7cfa2ea108870de86dc887458ae783c807791cc
Bug: chromium:889029
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128823
Commit-Queue: Francois Pierre Doray <fdoray@chromium.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27339}
diff --git a/api/task_queue/task_queue_test.cc b/api/task_queue/task_queue_test.cc
index e78dbd2..8d02ed6 100644
--- a/api/task_queue/task_queue_test.cc
+++ b/api/task_queue/task_queue_test.cc
@@ -204,8 +204,10 @@
     // So here we post a total of 0xffff+1 messages, which triggers a failure
     // case inside of the libevent queue implementation.
 
-    queue->PostTask(
-        ToQueuedTask([&event] { event.Wait(rtc::Event::kForever); }));
+    queue->PostTask(ToQueuedTask([&event] {
+      rtc::ScopedAllowBaseSyncPrimitivesForTesting allow_base_sync_primitives;
+      event.Wait(rtc::Event::kForever);
+    }));
     for (int i = 0; i < kTaskCount; ++i)
       queue->PostTask(
           ToQueuedTask([&tasks_executed] { ++tasks_executed; },