Bug 1476750: Updated preferences controlling Rust SDP Parse behavior, r=dminor draft
authorJohannes Willbold <j.willbold@mozilla.com>
Tue, 24 Jul 2018 12:36:23 -0700
changeset 824374 7ebe5f3c721e4c765e51536136c71b2c6acde32b
parent 823786 0e816b4f580a6ccdae161c80f57f51128b98f021
child 824380 9b03f1a8d0655926af1e561cc27e5549490616b2
push id117885
push userbmo:johannes.willbold@rub.de
push dateMon, 30 Jul 2018 18:42:35 +0000
reviewersdminor
bugs1476750
milestone63.0a1
Bug 1476750: Updated preferences controlling Rust SDP Parse behavior, r=dminor Renamed the pref media.webrtc.rsdparsa_enabled to media.peerconnection.sdp.rust.compare Added the pref media.peerconnection.sdp.rust.enabled Added both to all.js media.peerconnection.sdp.rust.compare: Controls whether the parsing result comparer for sipcc and rsdparsa runs or not. media.peerconnection.sdp.rust.enabled: Controls whether the rsdparsa runs in parallel to the sipcc parser. MozReview-Commit-ID: Ac5P7T2NBYD
media/webrtc/signaling/src/jsep/JsepSessionImpl.cpp
media/webrtc/signaling/src/jsep/JsepSessionImpl.h
modules/libpref/init/all.js
--- a/media/webrtc/signaling/src/jsep/JsepSessionImpl.cpp
+++ b/media/webrtc/signaling/src/jsep/JsepSessionImpl.cpp
@@ -63,17 +63,20 @@ JsepSessionImpl::Init()
   MOZ_ASSERT(!mSessionId, "Init called more than once");
 
   nsresult rv = SetupIds();
   NS_ENSURE_SUCCESS(rv, rv);
 
   SetupDefaultCodecs();
   SetupDefaultRtpExtensions();
 
-  mRunRustParser = Preferences::GetBool("media.webrtc.rsdparsa_enabled", false);
+  mRunRustParser = Preferences::GetBool("media.peerconnection.sdp.rust.enabled",
+                                        false);
+  mRunSdpComparer = Preferences::GetBool("media.peerconnection.sdp.rust.compare",
+                                         false);
 
   return NS_OK;
 }
 
 nsresult
 JsepSessionImpl::AddTransceiver(RefPtr<JsepTransceiver> transceiver)
 {
   mLastError.clear();
@@ -1284,18 +1287,20 @@ JsepSessionImpl::CopyPreviousMsid(const 
 }
 
 nsresult
 JsepSessionImpl::ParseSdp(const std::string& sdp, UniquePtr<Sdp>* parsedp)
 {
   UniquePtr<Sdp> parsed = mSipccParser.Parse(sdp);
   if (mRunRustParser) {
     UniquePtr<Sdp> rustParsed = mRsdparsaParser.Parse(sdp);
-    ParsingResultComparer comparer;
-    comparer.Compare(*rustParsed, *parsed, sdp);
+    if (mRunSdpComparer) {
+    	ParsingResultComparer comparer;
+    	comparer.Compare(*rustParsed, *parsed, sdp);
+    }
   }
   if (!parsed) {
     std::string error = "Failed to parse SDP: ";
     mSdpHelper.appendSdpParseErrors(mSipccParser.GetParseErrors(), &error);
     JSEP_SET_ERROR(error);
     return NS_ERROR_INVALID_ARG;
   }
 
--- a/media/webrtc/signaling/src/jsep/JsepSessionImpl.h
+++ b/media/webrtc/signaling/src/jsep/JsepSessionImpl.h
@@ -39,17 +39,18 @@ public:
         mLocalIceIsRestarting(false),
         mRemoteIsIceLite(false),
         mRemoteIceIsRestarting(false),
         mBundlePolicy(kBundleBalanced),
         mSessionId(0),
         mSessionVersion(0),
         mUuidGen(std::move(uuidgen)),
         mSdpHelper(&mLastError),
-        mRunRustParser(false)
+        mRunRustParser(false),
+        mRunSdpComparer(false)
   {
   }
 
   // Implement JsepSession methods.
   virtual nsresult Init() override;
 
   virtual nsresult SetIceCredentials(const std::string& ufrag,
                                      const std::string& pwd) override;
@@ -288,14 +289,15 @@ private:
   UniquePtr<Sdp> mPendingLocalDescription;
   UniquePtr<Sdp> mPendingRemoteDescription;
   PtrVector<JsepCodecDescription> mSupportedCodecs;
   std::string mLastError;
   SipccSdpParser mSipccParser;
   SdpHelper mSdpHelper;
   SsrcGenerator mSsrcGenerator;
   bool mRunRustParser;
+  bool mRunSdpComparer;
   RsdparsaSdpParser mRsdparsaParser;
 };
 
 } // namespace mozilla
 
 #endif
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -416,16 +416,18 @@ pref("media.navigator.enabled", true);
 pref("media.navigator.video.enabled", true);
 pref("media.navigator.video.default_fps",30);
 pref("media.navigator.video.use_remb", true);
 pref("media.navigator.video.use_tmmbr", false);
 pref("media.navigator.audio.use_fec", true);
 pref("media.navigator.video.red_ulpfec_enabled", false);
 
 pref("media.peerconnection.dtmf.enabled", true);
+pref("media.peerconnection.sdp.rust.enabled", false);
+pref("media.peerconnection.sdp.rust.compare", false);
 
 pref("media.webrtc.debug.trace_mask", 0);
 pref("media.webrtc.debug.multi_log", false);
 pref("media.webrtc.debug.log_file", "");
 pref("media.webrtc.debug.aec_dump_max_size", 4194304); // 4MB
 
 pref("media.navigator.video.default_width",0);  // adaptive default
 pref("media.navigator.video.default_height",0); // adaptive default