Remove locks from BufferQueue (not needed).

Also remove test code that can cause leaks into production.
Add sequence checkers.

Bug: webrtc:11988
Change-Id: I67b4cec6ee77d73ccffbbc88c9081ebb3c3cc423
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/185503
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32228}
diff --git a/rtc_base/ssl_stream_adapter_unittest.cc b/rtc_base/ssl_stream_adapter_unittest.cc
index c1017b7..bfbaf0f 100644
--- a/rtc_base/ssl_stream_adapter_unittest.cc
+++ b/rtc_base/ssl_stream_adapter_unittest.cc
@@ -231,10 +231,10 @@
       : SSLDummyStreamBase(test, side, in, out) {}
 };
 
-class BufferQueueStream : public rtc::BufferQueue, public rtc::StreamInterface {
+class BufferQueueStream : public rtc::StreamInterface {
  public:
   BufferQueueStream(size_t capacity, size_t default_size)
-      : rtc::BufferQueue(capacity, default_size) {}
+      : buffer_(capacity, default_size) {}
 
   // Implementation of abstract StreamInterface methods.
 
@@ -246,9 +246,13 @@
                          size_t buffer_len,
                          size_t* read,
                          int* error) override {
-    if (!ReadFront(buffer, buffer_len, read)) {
+    const bool was_writable = buffer_.is_writable();
+    if (!buffer_.ReadFront(buffer, buffer_len, read))
       return rtc::SR_BLOCK;
-    }
+
+    if (!was_writable)
+      NotifyWritableForTest();
+
     return rtc::SR_SUCCESS;
   }
 
@@ -257,9 +261,13 @@
                           size_t data_len,
                           size_t* written,
                           int* error) override {
-    if (!WriteBack(data, data_len, written)) {
+    const bool was_readable = buffer_.is_readable();
+    if (!buffer_.WriteBack(data, data_len, written))
       return rtc::SR_BLOCK;
-    }
+
+    if (!was_readable)
+      NotifyReadableForTest();
+
     return rtc::SR_SUCCESS;
   }
 
@@ -267,9 +275,12 @@
   void Close() override {}
 
  protected:
-  void NotifyReadableForTest() override { PostEvent(rtc::SE_READ, 0); }
+  void NotifyReadableForTest() { PostEvent(rtc::SE_READ, 0); }
 
-  void NotifyWritableForTest() override { PostEvent(rtc::SE_WRITE, 0); }
+  void NotifyWritableForTest() { PostEvent(rtc::SE_WRITE, 0); }
+
+ private:
+  rtc::BufferQueue buffer_;
 };
 
 class SSLDummyStreamDTLS : public SSLDummyStreamBase {