Title: [129562] branches/chromium/1271
Revision
129562
Author
[email protected]
Date
2012-09-25 15:32:54 -0700 (Tue, 25 Sep 2012)

Log Message

Merge 129296 - HTMLMediaElement isn't garbage collected between document reloads
https://bugs.webkit.org/show_bug.cgi?id=97020

Reviewed by Eric Carlson.

.:

Manual test added: ManualTests/audio-freed-during-reload.html

* ManualTests/audio-freed-during-reload.html:

Source/WebCore:

JS-created (as opposed to DOM-created) Audio nodes never got collected, because they
appear to always hasPendingActivity(), because m_playing is never set to false.

Manual test added: ManualTests/audio-freed-during-reload.html

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::stop): set m_playing = false; explicitly.


[email protected]
Review URL: https://codereview.chromium.org/10979026

Modified Paths

Added Paths

Diff

Copied: branches/chromium/1271/ManualTests/audio-freed-during-reload.html (from rev 129296, trunk/ManualTests/audio-freed-during-reload.html) (0 => 129562)


--- branches/chromium/1271/ManualTests/audio-freed-during-reload.html	                        (rev 0)
+++ branches/chromium/1271/ManualTests/audio-freed-during-reload.html	2012-09-25 22:32:54 UTC (rev 129562)
@@ -0,0 +1,17 @@
+<html>
+    <script>
+        function go() {
+          var a = new Audio();
+          a.autoplay = "1";
+          a.src = ""
+        }
+    </script>
+
+    <body _onload_="go()">
+        <p>
+            Load this page and open Activity Monitor, htop, chrome's task manager, or another resource monitor.
+            Reload the page a number of times and verify that the memory usage
+            doesn't keep climbing indefinitely per reload.
+        </p>
+    </body>
+</html?

Modified: branches/chromium/1271/Source/WebCore/html/HTMLMediaElement.cpp (129561 => 129562)


--- branches/chromium/1271/Source/WebCore/html/HTMLMediaElement.cpp	2012-09-25 22:23:55 UTC (rev 129561)
+++ branches/chromium/1271/Source/WebCore/html/HTMLMediaElement.cpp	2012-09-25 22:32:54 UTC (rev 129562)
@@ -3675,6 +3675,7 @@
     userCancelledLoad();
     
     // Stop the playback without generating events
+    m_playing = false;
     setPausedInternal(true);
     
     if (renderer())
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to