[PeerConnection] Implement parameterless SetLocalDescription().
For background, motivation, requirements and implementation notes, see
https://docs.google.com/document/d/1XLwNN2kUIGGTwz9LQ0NwJNkcybi9oKnynUEZB1jGA14/edit?usp=sharing
The parameterless SetLocalDescription() will implicitly create an
offer or answer to be set by chaining create offer or answer with
setting the session description, as per spec:
https://w3c.github.io/webrtc-pc/#dom-peerconnection-setlocaldescription
Bug: chromium:980885
Change-Id: Ia430160869df18fd47b756b9adf9e7e23ba8e969
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157444
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29653}
diff --git a/api/peer_connection_interface.h b/api/peer_connection_interface.h
index cc2fa46..55cc593 100644
--- a/api/peer_connection_interface.h
+++ b/api/peer_connection_interface.h
@@ -991,6 +991,11 @@
// that this method always takes ownership of it.
virtual void SetLocalDescription(SetSessionDescriptionObserver* observer,
SessionDescriptionInterface* desc) = 0;
+ // Implicitly creates an offer or answer (depending on the current signaling
+ // state) and performs SetLocalDescription() with the newly generated session
+ // description.
+ // TODO(hbos): Make pure virtual when implemented by downstream projects.
+ virtual void SetLocalDescription(SetSessionDescriptionObserver* observer) {}
// Sets the remote session description.
// The PeerConnection takes the ownership of |desc| even if it fails.
// The |observer| callback will be called when done.
diff --git a/api/peer_connection_proxy.h b/api/peer_connection_proxy.h
index 551af48..3b9cf79 100644
--- a/api/peer_connection_proxy.h
+++ b/api/peer_connection_proxy.h
@@ -100,6 +100,7 @@
SetLocalDescription,
SetSessionDescriptionObserver*,
SessionDescriptionInterface*)
+PROXY_METHOD1(void, SetLocalDescription, SetSessionDescriptionObserver*)
PROXY_METHOD2(void,
SetRemoteDescription,
SetSessionDescriptionObserver*,