Rename BEGIN_PROXY_MAP --> BEGIN_SIGNALLING_PROXY_MAP.

And BEGIN_WORKER_PROXY_MAP --> BEGIN_PROXY_MAP.

This rename was suggested by Tommi, with the idea that a proxy
invoking methods on the worker thread should be the common case.
It's a followup to https://codereview.webrtc.org/1861633002/

This cl also adds unittests for proxy calls to the
worker thread.

BUG=webrtc:5426

Review URL: https://codereview.webrtc.org/1871833002

Cr-Original-Commit-Position: refs/heads/master@{#12374}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: 72c8d2b708d442d16700229fe22918d187534430
diff --git a/api/datachannel.h b/api/datachannel.h
index b8830be..3fb400b 100644
--- a/api/datachannel.h
+++ b/api/datachannel.h
@@ -260,7 +260,7 @@
 };
 
 // Define proxy for DataChannelInterface.
-BEGIN_PROXY_MAP(DataChannel)
+BEGIN_SIGNALING_PROXY_MAP(DataChannel)
   PROXY_METHOD1(void, RegisterObserver, DataChannelObserver*)
   PROXY_METHOD0(void, UnregisterObserver)
   PROXY_CONSTMETHOD0(std::string, label)
@@ -275,7 +275,7 @@
   PROXY_CONSTMETHOD0(uint64_t, buffered_amount)
   PROXY_METHOD0(void, Close)
   PROXY_METHOD1(bool, Send, const DataBuffer&)
-END_PROXY()
+END_SIGNALING_PROXY()
 
 }  // namespace webrtc
 
diff --git a/api/dtmfsender.h b/api/dtmfsender.h
index ae8aa44..2523d68 100644
--- a/api/dtmfsender.h
+++ b/api/dtmfsender.h
@@ -103,7 +103,7 @@
 };
 
 // Define proxy for DtmfSenderInterface.
-BEGIN_PROXY_MAP(DtmfSender)
+BEGIN_SIGNALING_PROXY_MAP(DtmfSender)
   PROXY_METHOD1(void, RegisterObserver, DtmfSenderObserverInterface*)
   PROXY_METHOD0(void, UnregisterObserver)
   PROXY_METHOD0(bool, CanInsertDtmf)
@@ -112,7 +112,7 @@
   PROXY_CONSTMETHOD0(std::string, tones)
   PROXY_CONSTMETHOD0(int, duration)
   PROXY_CONSTMETHOD0(int, inter_tone_gap)
-END_PROXY()
+END_SIGNALING_PROXY()
 
 // Get DTMF code from the DTMF event character.
 bool GetDtmfCode(char tone, int* code);
diff --git a/api/mediastreamproxy.h b/api/mediastreamproxy.h
index 645b28a..06f8eb3 100644
--- a/api/mediastreamproxy.h
+++ b/api/mediastreamproxy.h
@@ -16,7 +16,7 @@
 
 namespace webrtc {
 
-BEGIN_PROXY_MAP(MediaStream)
+BEGIN_SIGNALING_PROXY_MAP(MediaStream)
   PROXY_CONSTMETHOD0(std::string, label)
   PROXY_METHOD0(AudioTrackVector, GetAudioTracks)
   PROXY_METHOD0(VideoTrackVector, GetVideoTracks)
@@ -30,7 +30,7 @@
   PROXY_METHOD1(bool, RemoveTrack, VideoTrackInterface*)
   PROXY_METHOD1(void, RegisterObserver, ObserverInterface*)
   PROXY_METHOD1(void, UnregisterObserver, ObserverInterface*)
-END_PROXY()
+END_SIGNALING_PROXY()
 
 }  // namespace webrtc
 
diff --git a/api/mediastreamtrackproxy.h b/api/mediastreamtrackproxy.h
index 6ca6dbb..12fdc36 100644
--- a/api/mediastreamtrackproxy.h
+++ b/api/mediastreamtrackproxy.h
@@ -19,7 +19,7 @@
 
 namespace webrtc {
 
-BEGIN_PROXY_MAP(AudioTrack)
+BEGIN_SIGNALING_PROXY_MAP(AudioTrack)
   PROXY_CONSTMETHOD0(std::string, kind)
   PROXY_CONSTMETHOD0(std::string, id)
   PROXY_CONSTMETHOD0(TrackState, state)
@@ -33,9 +33,9 @@
   PROXY_METHOD1(bool, set_enabled, bool)
   PROXY_METHOD1(void, RegisterObserver, ObserverInterface*)
   PROXY_METHOD1(void, UnregisterObserver, ObserverInterface*)
-END_PROXY()
+END_SIGNALING_PROXY()
 
-BEGIN_WORKER_PROXY_MAP(VideoTrack)
+BEGIN_PROXY_MAP(VideoTrack)
   PROXY_CONSTMETHOD0(std::string, kind)
   PROXY_CONSTMETHOD0(std::string, id)
   PROXY_CONSTMETHOD0(TrackState, state)
@@ -52,7 +52,7 @@
 
   PROXY_METHOD1(void, RegisterObserver, ObserverInterface*)
   PROXY_METHOD1(void, UnregisterObserver, ObserverInterface*)
-END_WORKER_PROXY()
+END_PROXY()
 
 }  // namespace webrtc
 
diff --git a/api/peerconnectionfactoryproxy.h b/api/peerconnectionfactoryproxy.h
index a25e93b..ef47cdb 100644
--- a/api/peerconnectionfactoryproxy.h
+++ b/api/peerconnectionfactoryproxy.h
@@ -20,7 +20,7 @@
 
 namespace webrtc {
 
-BEGIN_PROXY_MAP(PeerConnectionFactory)
+BEGIN_SIGNALING_PROXY_MAP(PeerConnectionFactory)
   PROXY_METHOD1(void, SetOptions, const Options&)
   // Can't use PROXY_METHOD5 because scoped_ptr must be moved.
   // TODO(tommi,hbos): Use of templates to support scoped_ptr?
@@ -93,7 +93,7 @@
     return c_->CreatePeerConnection(a1, std::move(ptr_a3), std::move(ptr_a4),
                                     a5);
   }
-  END_PROXY()
+  END_SIGNALING_PROXY()
 
 }  // namespace webrtc
 
diff --git a/api/peerconnectionproxy.h b/api/peerconnectionproxy.h
index 1183e61..d35d5ba 100644
--- a/api/peerconnectionproxy.h
+++ b/api/peerconnectionproxy.h
@@ -17,7 +17,7 @@
 namespace webrtc {
 
 // Define proxy for PeerConnectionInterface.
-BEGIN_PROXY_MAP(PeerConnection)
+BEGIN_SIGNALING_PROXY_MAP(PeerConnection)
   PROXY_METHOD0(rtc::scoped_refptr<StreamCollectionInterface>,
                 local_streams)
   PROXY_METHOD0(rtc::scoped_refptr<StreamCollectionInterface>,
@@ -75,7 +75,7 @@
   PROXY_METHOD0(IceConnectionState, ice_connection_state)
   PROXY_METHOD0(IceGatheringState, ice_gathering_state)
   PROXY_METHOD0(void, Close)
-END_PROXY()
+END_SIGNALING_PROXY()
 
 }  // namespace webrtc
 
diff --git a/api/proxy.h b/api/proxy.h
index b5a8071..663e6c8 100644
--- a/api/proxy.h
+++ b/api/proxy.h
@@ -18,7 +18,7 @@
 //  public:
 //   std::string FooA() = 0;
 //   std::string FooB(bool arg1) const = 0;
-//   std::string FooC(bool arg1)= 0;
+//   std::string FooC(bool arg1) = 0;
 //  };
 //
 // Note that return types can not be a const reference.
@@ -30,10 +30,19 @@
 // BEGIN_PROXY_MAP(Test)
 //   PROXY_METHOD0(std::string, FooA)
 //   PROXY_CONSTMETHOD1(std::string, FooB, arg1)
-//   PROXY_METHOD1(std::string, FooC, arg1)
+//   PROXY_WORKER_METHOD1(std::string, FooC, arg1)
 // END_PROXY()
 //
-// The proxy can be created using TestProxy::Create(Thread*, TestInterface*).
+// where the first two methods are invoked on the signaling thread,
+// and the third is invoked on the worker thread.
+//
+// The proxy can be created using
+//
+//   TestProxy::Create(Thread* signaling_thread, Thread* worker_thread,
+//                     TestInterface*).
+//
+// The variant defined with BEGIN_SIGNALING_PROXY_MAP is unaware of
+// the worker thread, and invokes all methods on the signaling thread.
 
 #ifndef WEBRTC_API_PROXY_H_
 #define WEBRTC_API_PROXY_H_
@@ -295,26 +304,25 @@
   T5 a5_;
 };
 
-// TODO(nisse): Rename this to {BEGIN|END}_SIGNALLING_PROXY_MAP, and
-// the below to {BEGIN|END}_PROXY_MAP. Also rename the class to
-// c##SignallingProxy.
-#define BEGIN_PROXY_MAP(c)                                                \
+#define BEGIN_SIGNALING_PROXY_MAP(c)                                     \
   class c##Proxy : public c##Interface {                                  \
    protected:                                                             \
     typedef c##Interface C;                                               \
     c##Proxy(rtc::Thread* signaling_thread, C* c)                         \
       : signaling_thread_(signaling_thread), c_(c) {}                     \
     ~c##Proxy() {                                                         \
-      MethodCall0<c##Proxy, void> call(this, &c##Proxy::Release_s);       \
+      MethodCall0<c##Proxy, void> call(                                   \
+          this, &c##Proxy::Release_s);                                    \
       call.Marshal(signaling_thread_);                                    \
     }                                                                     \
                                                                           \
    public:                                                                \
     static rtc::scoped_refptr<C> Create(rtc::Thread* signaling_thread, C* c) { \
-      return new rtc::RefCountedObject<c##Proxy>(signaling_thread, c);    \
+      return new rtc::RefCountedObject<c##Proxy>(                         \
+          signaling_thread, c);                                           \
     }
 
-#define BEGIN_WORKER_PROXY_MAP(c)                                       \
+#define BEGIN_PROXY_MAP(c)                                              \
   class c##Proxy : public c##Interface {                                \
    protected:                                                           \
     typedef c##Interface C;                                             \
@@ -397,16 +405,16 @@
     return call.Marshal(worker_thread_);                          \
   }
 
-#define END_PROXY() \
+#define END_SIGNALING_PROXY() \
    private:\
     void Release_s() {\
       c_ = NULL;\
     }\
     mutable rtc::Thread* signaling_thread_;\
     rtc::scoped_refptr<C> c_;\
-  };\
+  };
 
-#define END_WORKER_PROXY()                           \
+#define END_PROXY()                                  \
    private:                                          \
     void Release_s() {                               \
       c_ = NULL;                                     \
diff --git a/api/proxy_unittest.cc b/api/proxy_unittest.cc
index 2578e9b..557c85b 100644
--- a/api/proxy_unittest.cc
+++ b/api/proxy_unittest.cc
@@ -40,16 +40,6 @@
   ~FakeInterface() {}
 };
 
-// Proxy for the test interface.
-BEGIN_PROXY_MAP(Fake)
-  PROXY_METHOD0(void, VoidMethod0)
-  PROXY_METHOD0(std::string, Method0)
-  PROXY_CONSTMETHOD0(std::string, ConstMethod0)
-  PROXY_METHOD1(std::string, Method1, std::string)
-  PROXY_CONSTMETHOD1(std::string, ConstMethod1, std::string)
-  PROXY_METHOD2(std::string, Method2, std::string, std::string)
-END_PROXY()
-
 // Implementation of the test interface.
 class Fake : public FakeInterface {
  public:
@@ -71,60 +61,156 @@
   ~Fake() {}
 };
 
-class ProxyTest: public testing::Test {
+// Proxies for the test interface.
+BEGIN_PROXY_MAP(Fake)
+  PROXY_METHOD0(void, VoidMethod0)
+  PROXY_METHOD0(std::string, Method0)
+  PROXY_CONSTMETHOD0(std::string, ConstMethod0)
+  PROXY_WORKER_METHOD1(std::string, Method1, std::string)
+  PROXY_CONSTMETHOD1(std::string, ConstMethod1, std::string)
+  PROXY_WORKER_METHOD2(std::string, Method2, std::string, std::string)
+END_PROXY()
+
+// Preprocessor hack to get a proxy class a name different than FakeProxy.
+#define FakeProxy FakeSignalingProxy
+BEGIN_SIGNALING_PROXY_MAP(Fake)
+  PROXY_METHOD0(void, VoidMethod0)
+  PROXY_METHOD0(std::string, Method0)
+  PROXY_CONSTMETHOD0(std::string, ConstMethod0)
+  PROXY_METHOD1(std::string, Method1, std::string)
+  PROXY_CONSTMETHOD1(std::string, ConstMethod1, std::string)
+  PROXY_METHOD2(std::string, Method2, std::string, std::string)
+END_SIGNALING_PROXY()
+#undef FakeProxy
+
+class SignalingProxyTest : public testing::Test {
  public:
-  // Checks that the functions is called on the |signaling_thread_|.
-  void CheckThread() {
-    EXPECT_EQ(rtc::Thread::Current(), signaling_thread_.get());
-  }
+  // Checks that the functions are called on the right thread.
+  void CheckSignalingThread() { EXPECT_TRUE(signaling_thread_->IsCurrent()); }
 
  protected:
-  virtual void SetUp() {
+  void SetUp() override {
     signaling_thread_.reset(new rtc::Thread());
     ASSERT_TRUE(signaling_thread_->Start());
     fake_ = Fake::Create();
-    fake_proxy_ = FakeProxy::Create(signaling_thread_.get(), fake_.get());
+    fake_signaling_proxy_ =
+        FakeSignalingProxy::Create(signaling_thread_.get(), fake_.get());
   }
 
  protected:
   rtc::scoped_ptr<rtc::Thread> signaling_thread_;
-  rtc::scoped_refptr<FakeInterface> fake_proxy_;
+  rtc::scoped_refptr<FakeInterface> fake_signaling_proxy_;
   rtc::scoped_refptr<Fake> fake_;
 };
 
+TEST_F(SignalingProxyTest, VoidMethod0) {
+  EXPECT_CALL(*fake_, VoidMethod0())
+      .Times(Exactly(1))
+      .WillOnce(
+          InvokeWithoutArgs(this, &SignalingProxyTest::CheckSignalingThread));
+  fake_signaling_proxy_->VoidMethod0();
+}
+
+TEST_F(SignalingProxyTest, Method0) {
+  EXPECT_CALL(*fake_, Method0())
+      .Times(Exactly(1))
+      .WillOnce(DoAll(
+          InvokeWithoutArgs(this, &SignalingProxyTest::CheckSignalingThread),
+          Return("Method0")));
+  EXPECT_EQ("Method0", fake_signaling_proxy_->Method0());
+}
+
+TEST_F(SignalingProxyTest, ConstMethod0) {
+  EXPECT_CALL(*fake_, ConstMethod0())
+      .Times(Exactly(1))
+      .WillOnce(DoAll(
+          InvokeWithoutArgs(this, &SignalingProxyTest::CheckSignalingThread),
+          Return("ConstMethod0")));
+  EXPECT_EQ("ConstMethod0", fake_signaling_proxy_->ConstMethod0());
+}
+
+TEST_F(SignalingProxyTest, Method1) {
+  const std::string arg1 = "arg1";
+  EXPECT_CALL(*fake_, Method1(arg1))
+      .Times(Exactly(1))
+      .WillOnce(DoAll(
+          InvokeWithoutArgs(this, &SignalingProxyTest::CheckSignalingThread),
+          Return("Method1")));
+  EXPECT_EQ("Method1", fake_signaling_proxy_->Method1(arg1));
+}
+
+TEST_F(SignalingProxyTest, ConstMethod1) {
+  const std::string arg1 = "arg1";
+  EXPECT_CALL(*fake_, ConstMethod1(arg1))
+      .Times(Exactly(1))
+      .WillOnce(DoAll(
+          InvokeWithoutArgs(this, &SignalingProxyTest::CheckSignalingThread),
+          Return("ConstMethod1")));
+  EXPECT_EQ("ConstMethod1", fake_signaling_proxy_->ConstMethod1(arg1));
+}
+
+TEST_F(SignalingProxyTest, Method2) {
+  const std::string arg1 = "arg1";
+  const std::string arg2 = "arg2";
+  EXPECT_CALL(*fake_, Method2(arg1, arg2))
+      .Times(Exactly(1))
+      .WillOnce(DoAll(
+          InvokeWithoutArgs(this, &SignalingProxyTest::CheckSignalingThread),
+          Return("Method2")));
+  EXPECT_EQ("Method2", fake_signaling_proxy_->Method2(arg1, arg2));
+}
+
+class ProxyTest : public SignalingProxyTest {
+ public:
+  // Checks that the functions are called on the right thread.
+  void CheckWorkerThread() { EXPECT_TRUE(worker_thread_->IsCurrent()); }
+
+ protected:
+  void SetUp() override {
+    SignalingProxyTest::SetUp();
+    worker_thread_.reset(new rtc::Thread());
+    ASSERT_TRUE(worker_thread_->Start());
+    fake_proxy_ = FakeProxy::Create(signaling_thread_.get(),
+                                    worker_thread_.get(), fake_.get());
+  }
+
+ protected:
+  rtc::scoped_ptr<rtc::Thread> worker_thread_;
+  rtc::scoped_refptr<FakeInterface> fake_proxy_;
+};
+
 TEST_F(ProxyTest, VoidMethod0) {
   EXPECT_CALL(*fake_, VoidMethod0())
-            .Times(Exactly(1))
-            .WillOnce(InvokeWithoutArgs(this, &ProxyTest::CheckThread));
+      .Times(Exactly(1))
+      .WillOnce(InvokeWithoutArgs(this, &ProxyTest::CheckSignalingThread));
   fake_proxy_->VoidMethod0();
 }
 
 TEST_F(ProxyTest, Method0) {
   EXPECT_CALL(*fake_, Method0())
-            .Times(Exactly(1))
-            .WillOnce(
-                DoAll(InvokeWithoutArgs(this, &ProxyTest::CheckThread),
-                      Return("Method0")));
+      .Times(Exactly(1))
+      .WillOnce(
+          DoAll(InvokeWithoutArgs(this, &ProxyTest::CheckSignalingThread),
+                Return("Method0")));
   EXPECT_EQ("Method0",
             fake_proxy_->Method0());
 }
 
 TEST_F(ProxyTest, ConstMethod0) {
   EXPECT_CALL(*fake_, ConstMethod0())
-            .Times(Exactly(1))
-            .WillOnce(
-                DoAll(InvokeWithoutArgs(this, &ProxyTest::CheckThread),
-                      Return("ConstMethod0")));
+      .Times(Exactly(1))
+      .WillOnce(
+          DoAll(InvokeWithoutArgs(this, &ProxyTest::CheckSignalingThread),
+                Return("ConstMethod0")));
   EXPECT_EQ("ConstMethod0",
             fake_proxy_->ConstMethod0());
 }
 
-TEST_F(ProxyTest, Method1) {
+TEST_F(ProxyTest, WorkerMethod1) {
   const std::string arg1 = "arg1";
   EXPECT_CALL(*fake_, Method1(arg1))
-            .Times(Exactly(1))
-            .WillOnce(
-                DoAll(InvokeWithoutArgs(this, &ProxyTest::CheckThread),
+      .Times(Exactly(1))
+      .WillOnce(DoAll(InvokeWithoutArgs(this, &ProxyTest::CheckWorkerThread),
                       Return("Method1")));
   EXPECT_EQ("Method1", fake_proxy_->Method1(arg1));
 }
@@ -132,20 +218,19 @@
 TEST_F(ProxyTest, ConstMethod1) {
   const std::string arg1 = "arg1";
   EXPECT_CALL(*fake_, ConstMethod1(arg1))
-            .Times(Exactly(1))
-            .WillOnce(
-                DoAll(InvokeWithoutArgs(this, &ProxyTest::CheckThread),
-                      Return("ConstMethod1")));
+      .Times(Exactly(1))
+      .WillOnce(
+          DoAll(InvokeWithoutArgs(this, &ProxyTest::CheckSignalingThread),
+                Return("ConstMethod1")));
   EXPECT_EQ("ConstMethod1", fake_proxy_->ConstMethod1(arg1));
 }
 
-TEST_F(ProxyTest, Method2) {
+TEST_F(ProxyTest, WorkerMethod2) {
   const std::string arg1 = "arg1";
   const std::string arg2 = "arg2";
   EXPECT_CALL(*fake_, Method2(arg1, arg2))
-            .Times(Exactly(1))
-            .WillOnce(
-                DoAll(InvokeWithoutArgs(this, &ProxyTest::CheckThread),
+      .Times(Exactly(1))
+      .WillOnce(DoAll(InvokeWithoutArgs(this, &ProxyTest::CheckWorkerThread),
                       Return("Method2")));
   EXPECT_EQ("Method2", fake_proxy_->Method2(arg1, arg2));
 }
diff --git a/api/rtpreceiverinterface.h b/api/rtpreceiverinterface.h
index 5c7790d..c2a579b 100644
--- a/api/rtpreceiverinterface.h
+++ b/api/rtpreceiverinterface.h
@@ -38,11 +38,11 @@
 };
 
 // Define proxy for RtpReceiverInterface.
-BEGIN_PROXY_MAP(RtpReceiver)
+BEGIN_SIGNALING_PROXY_MAP(RtpReceiver)
 PROXY_CONSTMETHOD0(rtc::scoped_refptr<MediaStreamTrackInterface>, track)
 PROXY_CONSTMETHOD0(std::string, id)
 PROXY_METHOD0(void, Stop)
-END_PROXY()
+END_SIGNALING_PROXY()
 
 }  // namespace webrtc
 
diff --git a/api/rtpsenderinterface.h b/api/rtpsenderinterface.h
index 776d01a..2291bb4 100644
--- a/api/rtpsenderinterface.h
+++ b/api/rtpsenderinterface.h
@@ -60,7 +60,7 @@
 };
 
 // Define proxy for RtpSenderInterface.
-BEGIN_PROXY_MAP(RtpSender)
+BEGIN_SIGNALING_PROXY_MAP(RtpSender)
 PROXY_METHOD1(bool, SetTrack, MediaStreamTrackInterface*)
 PROXY_CONSTMETHOD0(rtc::scoped_refptr<MediaStreamTrackInterface>, track)
 PROXY_METHOD1(void, SetSsrc, uint32_t)
@@ -72,7 +72,7 @@
 PROXY_METHOD0(void, Stop)
 PROXY_CONSTMETHOD0(RtpParameters, GetParameters);
 PROXY_METHOD1(bool, SetParameters, const RtpParameters&)
-END_PROXY()
+END_SIGNALING_PROXY()
 
 }  // namespace webrtc
 
diff --git a/api/videosourceproxy.h b/api/videosourceproxy.h
index 0a34967..6d4dfcb 100644
--- a/api/videosourceproxy.h
+++ b/api/videosourceproxy.h
@@ -20,7 +20,7 @@
 // implementation is
 // destroyed on the signaling thread and marshals all method calls to the
 // signaling thread.
-BEGIN_WORKER_PROXY_MAP(VideoTrackSource)
+BEGIN_PROXY_MAP(VideoTrackSource)
   PROXY_CONSTMETHOD0(SourceState, state)
   PROXY_CONSTMETHOD0(bool, remote)
   PROXY_METHOD0(void, Stop)
@@ -37,7 +37,7 @@
                        rtc::VideoSinkInterface<cricket::VideoFrame>*)
   PROXY_METHOD1(void, RegisterObserver, ObserverInterface*)
   PROXY_METHOD1(void, UnregisterObserver, ObserverInterface*)
-END_WORKER_PROXY()
+END_PROXY()
 
 }  // namespace webrtc