Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(561)

Unified Diff: third_party/WebKit/Source/core/html/shadow/MediaControls.cpp

Issue 2725873002: Media: fix memory leak because of the document holding on an EventListener. (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/html/shadow/MediaControls.cpp
diff --git a/third_party/WebKit/Source/core/html/shadow/MediaControls.cpp b/third_party/WebKit/Source/core/html/shadow/MediaControls.cpp
index 3d5cff44270ef8cc0f3189a9601eb66169b10e9c..17dbbbb89c51bd6090237c85ccfdd487047abc82 100644
--- a/third_party/WebKit/Source/core/html/shadow/MediaControls.cpp
+++ b/third_party/WebKit/Source/core/html/shadow/MediaControls.cpp
@@ -151,10 +151,14 @@ MediaControls::MediaControls(HTMLMediaElement& mediaElement)
this,
&MediaControls::panelWidthChangedTimerFired),
m_panelWidth(0),
- m_keepShowingUntilTimerFires(false) {}
+ m_keepShowingUntilTimerFires(false) {
+ LOG(INFO) << "MediaControls ctor";
+ }
MediaControls* MediaControls::create(HTMLMediaElement& mediaElement,
ShadowRoot& shadowRoot) {
+ // TRACE_EVENT0("Blink", "CreateControls");
+
MediaControls* controls = new MediaControls(mediaElement);
controls->setShadowPseudoId(AtomicString("-webkit-media-controls"));
controls->initializeControls();
@@ -172,6 +176,10 @@ MediaControls* MediaControls::create(HTMLMediaElement& mediaElement,
return controls;
}
+MediaControls::~MediaControls() {
+ LOG(INFO) << "~MediaControls";
+}
+
// The media controls DOM structure looks like:
//
// MediaControls
@@ -377,6 +385,13 @@ void MediaControls::reset() {
m_downloadButton->shouldDisplayDownloadButton());
}
+void MediaControls::detach() {
+ m_windowEventListener->stop();
+ m_mediaEventListener->detach();
+ if (m_orientationLockDelegate)
+ m_orientationLockDelegate->detach();
+}
+
LayoutObject* MediaControls::layoutObjectForTextTrackLayout() {
return m_panel->layoutObject();
}
@@ -957,6 +972,7 @@ void MediaControls::hideAllMenus() {
}
DEFINE_TRACE(MediaControls) {
+ LOG(INFO) << "MediaControls::trace";
visitor->trace(m_mediaElement);
visitor->trace(m_panel);
visitor->trace(m_overlayPlayButton);

Powered by Google App Engine
This is Rietveld 408576698