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