OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 |
OLD | NEW |