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

Side by Side Diff: webkit/media/webmediaplayer_proxy.cc

Issue 8599004: Fix webkit_media::WebMediaPlayerProxy memory leak due to circular refcounting. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src
Patch Set: rebase Created 9 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « webkit/media/webmediaplayer_proxy.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "webkit/media/webmediaplayer_proxy.h" 5 #include "webkit/media/webmediaplayer_proxy.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "media/base/pipeline_status.h" 10 #include "media/base/pipeline_status.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 NewRunnableMethod(this, &WebMediaPlayerProxy::RepaintTask)); 43 NewRunnableMethod(this, &WebMediaPlayerProxy::RepaintTask));
44 } 44 }
45 } 45 }
46 46
47 void WebMediaPlayerProxy::SetVideoRenderer( 47 void WebMediaPlayerProxy::SetVideoRenderer(
48 scoped_refptr<WebVideoRenderer> video_renderer) { 48 scoped_refptr<WebVideoRenderer> video_renderer) {
49 video_renderer_ = video_renderer; 49 video_renderer_ = video_renderer;
50 } 50 }
51 51
52 WebDataSourceBuildObserverHack WebMediaPlayerProxy::GetBuildObserver() { 52 WebDataSourceBuildObserverHack WebMediaPlayerProxy::GetBuildObserver() {
53 if (build_observer_.is_null()) 53 return base::Bind(&WebMediaPlayerProxy::AddDataSource, this);
54 build_observer_ = base::Bind(&WebMediaPlayerProxy::AddDataSource, this);
55 return build_observer_;
56 } 54 }
57 55
58 void WebMediaPlayerProxy::Paint(SkCanvas* canvas, const gfx::Rect& dest_rect) { 56 void WebMediaPlayerProxy::Paint(SkCanvas* canvas, const gfx::Rect& dest_rect) {
59 DCHECK(MessageLoop::current() == render_loop_); 57 DCHECK(MessageLoop::current() == render_loop_);
60 if (video_renderer_) { 58 if (video_renderer_) {
61 video_renderer_->Paint(canvas, dest_rect); 59 video_renderer_->Paint(canvas, dest_rect);
62 } 60 }
63 } 61 }
64 62
65 void WebMediaPlayerProxy::SetSize(const gfx::Rect& rect) { 63 void WebMediaPlayerProxy::SetSize(const gfx::Rect& rect) {
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 chunk_demuxer_ = demuxer; 227 chunk_demuxer_ = demuxer;
230 if (webmediaplayer_) 228 if (webmediaplayer_)
231 webmediaplayer_->OnDemuxerOpened(); 229 webmediaplayer_->OnDemuxerOpened();
232 } 230 }
233 231
234 void WebMediaPlayerProxy::DemuxerClosedTask() { 232 void WebMediaPlayerProxy::DemuxerClosedTask() {
235 chunk_demuxer_ = NULL; 233 chunk_demuxer_ = NULL;
236 } 234 }
237 235
238 } // namespace webkit_media 236 } // namespace webkit_media
OLDNEW
« no previous file with comments | « webkit/media/webmediaplayer_proxy.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698