Title: [272198] trunk
Revision
272198
Author
[email protected]
Date
2021-02-02 01:22:10 -0800 (Tue, 02 Feb 2021)

Log Message

Provide mock dtmf sender
https://bugs.webkit.org/show_bug.cgi?id=220382

Patch by Rob Buis <[email protected]> on 2021-02-02
Reviewed by Youenn Fablet.

Source/WebCore:

Provide mock dtmf sender.

Test: webrtc/dmtf-getter-crash.html

* testing/MockLibWebRTCPeerConnection.h:

LayoutTests:

Add test for this.

* webrtc/dmtf-getter-crash-expected.txt: Added.
* webrtc/dmtf-getter-crash.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (272197 => 272198)


--- trunk/LayoutTests/ChangeLog	2021-02-02 09:02:31 UTC (rev 272197)
+++ trunk/LayoutTests/ChangeLog	2021-02-02 09:22:10 UTC (rev 272198)
@@ -1,3 +1,15 @@
+2021-02-02  Rob Buis  <[email protected]>
+
+        Provide mock dtmf sender
+        https://bugs.webkit.org/show_bug.cgi?id=220382
+
+        Reviewed by Youenn Fablet.
+
+        Add test for this.
+
+        * webrtc/dmtf-getter-crash-expected.txt: Added.
+        * webrtc/dmtf-getter-crash.html: Added.
+
 2021-02-02  BJ Burg  <[email protected]>
 
         Web Inspector: implement the basics for showing/hiding grid overlays

Added: trunk/LayoutTests/webrtc/dmtf-getter-crash-expected.txt (0 => 272198)


--- trunk/LayoutTests/webrtc/dmtf-getter-crash-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/webrtc/dmtf-getter-crash-expected.txt	2021-02-02 09:22:10 UTC (rev 272198)
@@ -0,0 +1 @@
+This test passes if it doesn't crash.

Added: trunk/LayoutTests/webrtc/dmtf-getter-crash.html (0 => 272198)


--- trunk/LayoutTests/webrtc/dmtf-getter-crash.html	                        (rev 0)
+++ trunk/LayoutTests/webrtc/dmtf-getter-crash.html	2021-02-02 09:22:10 UTC (rev 272198)
@@ -0,0 +1,8 @@
+<script>
+  if (window.testRunner) 
+    testRunner.dumpAsText();
+  internals.useMockRTCPeerConnectionFactory('');
+  let track = new AudioContext().createMediaStreamDestination().stream.getAudioTracks()[0];
+  new RTCPeerConnection().addTrack(track).dtmf;
+</script>
+<body>This test passes if it doesn't crash.</body>

Modified: trunk/Source/WebCore/ChangeLog (272197 => 272198)


--- trunk/Source/WebCore/ChangeLog	2021-02-02 09:02:31 UTC (rev 272197)
+++ trunk/Source/WebCore/ChangeLog	2021-02-02 09:22:10 UTC (rev 272198)
@@ -1,3 +1,16 @@
+2021-02-02  Rob Buis  <[email protected]>
+
+        Provide mock dtmf sender
+        https://bugs.webkit.org/show_bug.cgi?id=220382
+
+        Reviewed by Youenn Fablet.
+
+        Provide mock dtmf sender.
+
+        Test: webrtc/dmtf-getter-crash.html
+
+        * testing/MockLibWebRTCPeerConnection.h:
+
 2021-02-02  BJ Burg  <[email protected]>
 
         Web Inspector: implement the basics for showing/hiding grid overlays

Modified: trunk/Source/WebCore/testing/MockLibWebRTCPeerConnection.h (272197 => 272198)


--- trunk/Source/WebCore/testing/MockLibWebRTCPeerConnection.h	2021-02-02 09:02:31 UTC (rev 272197)
+++ trunk/Source/WebCore/testing/MockLibWebRTCPeerConnection.h	2021-02-02 09:22:10 UTC (rev 272198)
@@ -167,6 +167,18 @@
     int m_id { -1 };
 };
 
+class MockDtmfSender : public webrtc::DtmfSenderInterface {
+private:
+    void RegisterObserver(webrtc::DtmfSenderObserverInterface*) final { }
+    void UnregisterObserver() final { }
+
+    bool CanInsertDtmf() final { return false; }
+
+    std::string tones() const final { return ""; }
+    int duration() const final { return 0; }
+    int inter_tone_gap() const final { return 50; }
+};
+
 class MockRtpSender : public webrtc::RtpSenderInterface {
 public:
     explicit MockRtpSender(rtc::scoped_refptr<webrtc::MediaStreamTrackInterface>&& track) : m_track(WTFMove(track)) { }
@@ -185,10 +197,16 @@
     std::vector<std::string> stream_ids() const { return { }; }
     webrtc::RtpParameters GetParameters() const final { return { }; }
     webrtc::RTCError SetParameters(const webrtc::RtpParameters&) final { return { }; }
-    rtc::scoped_refptr<webrtc::DtmfSenderInterface> GetDtmfSender() const final { return nullptr; }
+    rtc::scoped_refptr<webrtc::DtmfSenderInterface> GetDtmfSender() const final
+    {
+        if (!m_dtmfSender)
+            m_dtmfSender = new rtc::RefCountedObject<MockDtmfSender>();
+        return m_dtmfSender;
+    }
 
 private:
     rtc::scoped_refptr<webrtc::MediaStreamTrackInterface> m_track;
+    mutable rtc::scoped_refptr<webrtc::DtmfSenderInterface> m_dtmfSender;
 };
 
 class MockRtpReceiver : public webrtc::RtpReceiverInterface {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to