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

Side by Side Diff: content/renderer/render_frame_impl.cc

Issue 278353003: Make RendererMediaPlayerManager a RenderFrameObserver. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Minor fix. Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | content/renderer/render_view_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/renderer/render_frame_impl.h" 5 #include "content/renderer/render_frame_impl.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 113
114 #if defined(ENABLE_WEBRTC) 114 #if defined(ENABLE_WEBRTC)
115 #include "content/renderer/media/rtc_peer_connection_handler.h" 115 #include "content/renderer/media/rtc_peer_connection_handler.h"
116 #endif 116 #endif
117 117
118 #if defined(OS_ANDROID) 118 #if defined(OS_ANDROID)
119 #include <cpu-features.h> 119 #include <cpu-features.h>
120 120
121 #include "content/common/gpu/client/context_provider_command_buffer.h" 121 #include "content/common/gpu/client/context_provider_command_buffer.h"
122 #include "content/renderer/android/synchronous_compositor_factory.h" 122 #include "content/renderer/android/synchronous_compositor_factory.h"
123 #include "content/renderer/media/android/renderer_media_player_manager.h"
123 #include "content/renderer/media/android/stream_texture_factory_impl.h" 124 #include "content/renderer/media/android/stream_texture_factory_impl.h"
124 #include "content/renderer/media/android/webmediaplayer_android.h" 125 #include "content/renderer/media/android/webmediaplayer_android.h"
125 #endif 126 #endif
126 127
127 using blink::WebContextMenuData; 128 using blink::WebContextMenuData;
128 using blink::WebData; 129 using blink::WebData;
129 using blink::WebDataSource; 130 using blink::WebDataSource;
130 using blink::WebDocument; 131 using blink::WebDocument;
131 using blink::WebElement; 132 using blink::WebElement;
132 using blink::WebFrame; 133 using blink::WebFrame;
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
397 is_swapped_out_(false), 398 is_swapped_out_(false),
398 render_frame_proxy_(NULL), 399 render_frame_proxy_(NULL),
399 is_detaching_(false), 400 is_detaching_(false),
400 cookie_jar_(this), 401 cookie_jar_(this),
401 selection_text_offset_(0), 402 selection_text_offset_(0),
402 selection_range_(gfx::Range::InvalidRange()), 403 selection_range_(gfx::Range::InvalidRange()),
403 handling_select_range_(false), 404 handling_select_range_(false),
404 notification_provider_(NULL), 405 notification_provider_(NULL),
405 media_stream_client_(NULL), 406 media_stream_client_(NULL),
406 web_user_media_client_(NULL), 407 web_user_media_client_(NULL),
408 #if defined(OS_ANDROID)
409 media_player_manager_(NULL),
410 #endif
407 weak_factory_(this) { 411 weak_factory_(this) {
408 RenderThread::Get()->AddRoute(routing_id_, this); 412 RenderThread::Get()->AddRoute(routing_id_, this);
409 413
410 std::pair<RoutingIDFrameMap::iterator, bool> result = 414 std::pair<RoutingIDFrameMap::iterator, bool> result =
411 g_routing_id_frame_map.Get().insert(std::make_pair(routing_id_, this)); 415 g_routing_id_frame_map.Get().insert(std::make_pair(routing_id_, this));
412 CHECK(result.second) << "Inserting a duplicate item."; 416 CHECK(result.second) << "Inserting a duplicate item.";
413 417
414 #if defined(OS_ANDROID) 418 #if defined(OS_ANDROID)
415 new JavaBridgeDispatcher(this); 419 new JavaBridgeDispatcher(this);
416 #endif 420 #endif
417 421
418 #if defined(ENABLE_NOTIFICATIONS) 422 #if defined(ENABLE_NOTIFICATIONS)
419 notification_provider_ = new NotificationProvider(this); 423 notification_provider_ = new NotificationProvider(this);
420 #endif 424 #endif
421 } 425 }
422 426
423 RenderFrameImpl::~RenderFrameImpl() { 427 RenderFrameImpl::~RenderFrameImpl() {
424 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, RenderFrameGone()); 428 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, RenderFrameGone());
425 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnDestruct()); 429 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnDestruct());
430 #if defined(VIDEO_HOLE)
431 if (media_player_manager_)
432 render_view_->UnregisterVideoHoleFrame(this);
433 #endif // defined(VIDEO_HOLE)
kollas 2014/05/27 02:35:43 media_player_manger_ is only available #ifdef OS_A
426 g_routing_id_frame_map.Get().erase(routing_id_); 434 g_routing_id_frame_map.Get().erase(routing_id_);
427 RenderThread::Get()->RemoveRoute(routing_id_); 435 RenderThread::Get()->RemoveRoute(routing_id_);
428 } 436 }
429 437
430 void RenderFrameImpl::SetWebFrame(blink::WebLocalFrame* web_frame) { 438 void RenderFrameImpl::SetWebFrame(blink::WebLocalFrame* web_frame) {
431 DCHECK(!frame_); 439 DCHECK(!frame_);
432 440
433 std::pair<FrameMap::iterator, bool> result = g_frame_map.Get().insert( 441 std::pair<FrameMap::iterator, bool> result = g_frame_map.Get().insert(
434 std::make_pair(web_frame, this)); 442 std::make_pair(web_frame, this));
435 CHECK(result.second) << "Inserting a duplicate item."; 443 CHECK(result.second) << "Inserting a duplicate item.";
(...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after
1244 1252
1245 frame_->loadHTMLString(error_html, 1253 frame_->loadHTMLString(error_html,
1246 GURL(kUnreachableWebDataURL), 1254 GURL(kUnreachableWebDataURL),
1247 error.unreachableURL, 1255 error.unreachableURL,
1248 replace); 1256 replace);
1249 } 1257 }
1250 1258
1251 void RenderFrameImpl::DidCommitCompositorFrame() { 1259 void RenderFrameImpl::DidCommitCompositorFrame() {
1252 if (compositing_helper_) 1260 if (compositing_helper_)
1253 compositing_helper_->DidCommitCompositorFrame(); 1261 compositing_helper_->DidCommitCompositorFrame();
1262 FOR_EACH_OBSERVER(
1263 RenderFrameObserver, observers_, DidCommitCompositorFrame());
1254 } 1264 }
1255 1265
1256 RenderView* RenderFrameImpl::GetRenderView() { 1266 RenderView* RenderFrameImpl::GetRenderView() {
1257 return render_view_.get(); 1267 return render_view_.get();
1258 } 1268 }
1259 1269
1260 int RenderFrameImpl::GetRoutingID() { 1270 int RenderFrameImpl::GetRoutingID() {
1261 return routing_id_; 1271 return routing_id_;
1262 } 1272 }
1263 1273
(...skipping 2210 matching lines...) Expand 10 before | Expand all | Expand 10 after
3474 } else { 3484 } else {
3475 scoped_refptr<webkit::gpu::ContextProviderWebContext> context_provider = 3485 scoped_refptr<webkit::gpu::ContextProviderWebContext> context_provider =
3476 RenderThreadImpl::current()->SharedMainThreadContextProvider(); 3486 RenderThreadImpl::current()->SharedMainThreadContextProvider();
3477 3487
3478 if (!context_provider.get()) { 3488 if (!context_provider.get()) {
3479 LOG(ERROR) << "Failed to get context3d for media player"; 3489 LOG(ERROR) << "Failed to get context3d for media player";
3480 return NULL; 3490 return NULL;
3481 } 3491 }
3482 3492
3483 stream_texture_factory = StreamTextureFactoryImpl::Create( 3493 stream_texture_factory = StreamTextureFactoryImpl::Create(
3484 context_provider, gpu_channel_host, render_view_->routing_id_); 3494 context_provider, gpu_channel_host, routing_id_);
3485 } 3495 }
3486 3496
3487 return new WebMediaPlayerAndroid( 3497 return new WebMediaPlayerAndroid(
3488 frame_, 3498 frame_,
3489 client, 3499 client,
3490 weak_factory_.GetWeakPtr(), 3500 weak_factory_.GetWeakPtr(),
3491 render_view_->media_player_manager_, 3501 GetMediaPlayerManager(),
3492 stream_texture_factory, 3502 stream_texture_factory,
3493 RenderThreadImpl::current()->GetMediaThreadMessageLoopProxy(), 3503 RenderThreadImpl::current()->GetMediaThreadMessageLoopProxy(),
3494 new RenderMediaLog()); 3504 new RenderMediaLog());
3495 } 3505 }
3496 3506
3497 #endif 3507 RendererMediaPlayerManager* RenderFrameImpl::GetMediaPlayerManager() {
3508 if (!media_player_manager_) {
3509 media_player_manager_ = new RendererMediaPlayerManager(this);
3510 #if defined(VIDEO_HOLE)
3511 render_view_->RegisterVideoHoleFrame(this);
3512 #endif // defined(VIDEO_HOLE)
3513 }
3514 return media_player_manager_;
3515 }
3516
3517 #endif // defined(OS_ANDROID)
3498 3518
3499 } // namespace content 3519 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | content/renderer/render_view_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698