| 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) |
| 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 return media_player_manager_; |
| 3514 } |
| 3515 |
| 3516 #endif // defined(OS_ANDROID) |
| 3498 | 3517 |
| 3499 } // namespace content | 3518 } // namespace content |
| OLD | NEW |