Browse Source

Fixed pass by reference and added spec

John Kleinschmidt 8 years ago
parent
commit
d5a658bbe4

+ 2 - 2
atom/browser/api/atom_api_web_contents.cc

@@ -1067,13 +1067,13 @@ void WebContents::GoToOffset(int offset) {
   web_contents()->GetController().GoToOffset(offset);
 }
 
-const std::string& WebContents::GetWebRTCIPHandlingPolicy() const {
+const std::string WebContents::GetWebRTCIPHandlingPolicy() const {
   return web_contents()->
     GetMutableRendererPrefs()->webrtc_ip_handling_policy;
 }
 
 void WebContents::SetWebRTCIPHandlingPolicy(
-    const std::string webrtc_ip_handling_policy) {
+    const std::string& webrtc_ip_handling_policy) {
   if (GetWebRTCIPHandlingPolicy() == webrtc_ip_handling_policy)
     return;
   web_contents()->GetMutableRendererPrefs()->webrtc_ip_handling_policy =

+ 2 - 2
atom/browser/api/atom_api_web_contents.h

@@ -92,8 +92,8 @@ class WebContents : public mate::TrackableObject<WebContents>,
   void GoBack();
   void GoForward();
   void GoToOffset(int offset);
-  const std::string& GetWebRTCIPHandlingPolicy() const;
-  void SetWebRTCIPHandlingPolicy(const std::string webrtc_ip_handling_policy);
+  const std::string GetWebRTCIPHandlingPolicy() const;
+  void SetWebRTCIPHandlingPolicy(const std::string& webrtc_ip_handling_policy);
   bool IsCrashed() const;
   void SetUserAgent(const std::string& user_agent, mate::Arguments* args);
   std::string GetUserAgent();

+ 16 - 0
spec/api-web-contents-spec.js

@@ -527,4 +527,20 @@ describe('webContents module', function () {
       w.loadURL(`file://${fixtures}/pages/c.html`)
     })
   })
+
+  describe('webrtc ip policy api', () => {
+    it('can set and get webrtc ip policies', (done) => {
+      const policies = [
+        'default',
+        'default_public_interface_only',
+        'default_public_and_private_interfaces',
+        'disable_non_proxied_udp'
+      ]
+      policies.forEach((policy) => {
+        w.webContents.setWebRTCIPHandlingPolicy(policy)
+        assert.equal(w.webContents.getWebRTCIPHandlingPolicy(), policy)
+      })
+      done()
+    })
+  })
 })