Title: [211934] releases/WebKitGTK/webkit-2.14
Revision
211934
Author
[email protected]
Date
2017-02-09 00:54:34 -0800 (Thu, 09 Feb 2017)

Log Message

Merge r208825 - Clear track client when removing a track
https://bugs.webkit.org/show_bug.cgi?id=164842
<rdar://problem/29213621>

Reviewed by Eric Carlson.

Source/WebCore:

Call 'clearClient' when removing a track from an HTMLMediaElement.

Test: media/track/audio-track-add-remove.html
      media/track/video-track-add-remove.html

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::removeAudioTrack): Call 'clearClient'
(WebCore::HTMLMediaElement::removeVideoTrack): Ditto.

LayoutTests:

* media/track/audio-track-add-remove-expected.txt: Added.
* media/track/audio-track-add-remove.html: Added.
* media/track/video-track-add-remove-expected.txt: Added.
* media/track/video-track-add-remove.html: Added.

Modified Paths

Added Paths

Diff

Modified: releases/WebKitGTK/webkit-2.14/LayoutTests/ChangeLog (211933 => 211934)


--- releases/WebKitGTK/webkit-2.14/LayoutTests/ChangeLog	2017-02-09 08:54:21 UTC (rev 211933)
+++ releases/WebKitGTK/webkit-2.14/LayoutTests/ChangeLog	2017-02-09 08:54:34 UTC (rev 211934)
@@ -1,3 +1,16 @@
+2016-11-16  Brent Fulgham  <[email protected]>
+
+        Clear track client when removing a track
+        https://bugs.webkit.org/show_bug.cgi?id=164842
+        <rdar://problem/29213621>
+
+        Reviewed by Eric Carlson.
+
+        * media/track/audio-track-add-remove-expected.txt: Added.
+        * media/track/audio-track-add-remove.html: Added.
+        * media/track/video-track-add-remove-expected.txt: Added.
+        * media/track/video-track-add-remove.html: Added.
+
 2016-12-22  Daniel Bates  <[email protected]>
 
         Bypass pop-up blocker from cross-origin or sandboxed frame

Added: releases/WebKitGTK/webkit-2.14/LayoutTests/media/track/audio-track-add-remove-expected.txt (0 => 211934)


--- releases/WebKitGTK/webkit-2.14/LayoutTests/media/track/audio-track-add-remove-expected.txt	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.14/LayoutTests/media/track/audio-track-add-remove-expected.txt	2017-02-09 08:54:34 UTC (rev 211934)
@@ -0,0 +1,7 @@
+
+Test audio track handling.
+
+EVENT(addtrack)
+PASS: Track is in valid state.
+END OF TEST
+

Added: releases/WebKitGTK/webkit-2.14/LayoutTests/media/track/audio-track-add-remove.html (0 => 211934)


--- releases/WebKitGTK/webkit-2.14/LayoutTests/media/track/audio-track-add-remove.html	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.14/LayoutTests/media/track/audio-track-add-remove.html	2017-02-09 08:54:34 UTC (rev 211934)
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <script src=""
+    <script src=""
+    <script src=""
+    <script>
+    function trackAdded(event)
+    {
+        consoleWrite("EVENT(" + event.type + ")");
+        video.audioTracks._onaddtrack_ = null;
+        var track = event.track;
+        track.enabled = false;
+        video.src = ""
+        video = null;
+
+        setTimeout(function() {
+            gc();
+            track.enabled = !track.enabled;
+            consoleWrite("PASS: Track is in valid state.");
+            endTest();
+        }, 0);
+    }
+
+    function setup()
+    {
+        findMediaElement();
+        video.audioTracks.addEventListener("addtrack", trackAdded);
+        video.src = "" '../content/silence');
+    }
+    </script>
+</head>
+<body _onload_="setup()">
+    <video controls></video>
+    <p>Test audio track handling.</p>
+</body>
+</html>

Added: releases/WebKitGTK/webkit-2.14/LayoutTests/media/track/video-track-add-remove-expected.txt (0 => 211934)


--- releases/WebKitGTK/webkit-2.14/LayoutTests/media/track/video-track-add-remove-expected.txt	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.14/LayoutTests/media/track/video-track-add-remove-expected.txt	2017-02-09 08:54:34 UTC (rev 211934)
@@ -0,0 +1,7 @@
+
+Test video track handling.
+
+EVENT(addtrack)
+PASS: Track is in valid state.
+END OF TEST
+

Added: releases/WebKitGTK/webkit-2.14/LayoutTests/media/track/video-track-add-remove.html (0 => 211934)


--- releases/WebKitGTK/webkit-2.14/LayoutTests/media/track/video-track-add-remove.html	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.14/LayoutTests/media/track/video-track-add-remove.html	2017-02-09 08:54:34 UTC (rev 211934)
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <script src=""
+    <script src=""
+    <script src=""
+    <script>
+    function trackAdded(event)
+    {
+        consoleWrite("EVENT(" + event.type + ")");
+        video.videoTracks._onaddtrack_ = null;
+        var track = event.track;
+        track.enabled = false;
+        video.src = ""
+        video = null;
+        setTimeout(function() {
+            gc();
+            track.enabled = !track.enabled;
+            consoleWrite("PASS: Track is in valid state.");
+            endTest();
+        }, 0);
+    }
+
+    function setup()
+    {
+        findMediaElement();
+        video.videoTracks.addEventListener("addtrack", trackAdded);
+        video.src = "" '../content/test');
+    }
+    </script>
+</head>
+<body _onload_="setup()">
+    <video controls></video>
+    <p>Test video track handling.</p>
+</body>
+</html>

Modified: releases/WebKitGTK/webkit-2.14/Source/WebCore/ChangeLog (211933 => 211934)


--- releases/WebKitGTK/webkit-2.14/Source/WebCore/ChangeLog	2017-02-09 08:54:21 UTC (rev 211933)
+++ releases/WebKitGTK/webkit-2.14/Source/WebCore/ChangeLog	2017-02-09 08:54:34 UTC (rev 211934)
@@ -1,3 +1,20 @@
+2016-11-16  Brent Fulgham  <[email protected]>
+
+        Clear track client when removing a track
+        https://bugs.webkit.org/show_bug.cgi?id=164842
+        <rdar://problem/29213621>
+
+        Reviewed by Eric Carlson.
+
+        Call 'clearClient' when removing a track from an HTMLMediaElement.
+
+        Test: media/track/audio-track-add-remove.html
+              media/track/video-track-add-remove.html
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::removeAudioTrack): Call 'clearClient'
+        (WebCore::HTMLMediaElement::removeVideoTrack): Ditto.
+
 2016-12-22  Daniel Bates  <[email protected]>
 
         Bypass pop-up blocker from cross-origin or sandboxed frame

Modified: releases/WebKitGTK/webkit-2.14/Source/WebCore/html/HTMLMediaElement.cpp (211933 => 211934)


--- releases/WebKitGTK/webkit-2.14/Source/WebCore/html/HTMLMediaElement.cpp	2017-02-09 08:54:21 UTC (rev 211933)
+++ releases/WebKitGTK/webkit-2.14/Source/WebCore/html/HTMLMediaElement.cpp	2017-02-09 08:54:34 UTC (rev 211934)
@@ -3654,6 +3654,7 @@
 void HTMLMediaElement::removeAudioTrack(AudioTrack& track)
 {
     m_audioTracks->remove(track);
+    track.clearClient();
 }
 
 void HTMLMediaElement::removeTextTrack(TextTrack& track, bool scheduleEvent)
@@ -3671,6 +3672,7 @@
 void HTMLMediaElement::removeVideoTrack(VideoTrack& track)
 {
     m_videoTracks->remove(track);
+    track.clearClient();
 }
 
 void HTMLMediaElement::forgetResourceSpecificTracks()
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to