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 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
399 handling_select_range_(false), | 399 handling_select_range_(false), |
400 notification_provider_(NULL), | 400 notification_provider_(NULL), |
401 web_user_media_client_(NULL), | 401 web_user_media_client_(NULL), |
402 midi_dispatcher_(NULL), | 402 midi_dispatcher_(NULL), |
403 #if defined(OS_ANDROID) | 403 #if defined(OS_ANDROID) |
404 media_player_manager_(NULL), | 404 media_player_manager_(NULL), |
405 #endif | 405 #endif |
406 #if defined(ENABLE_BROWSER_CDMS) | 406 #if defined(ENABLE_BROWSER_CDMS) |
407 cdm_manager_(NULL), | 407 cdm_manager_(NULL), |
408 #endif | 408 #endif |
| 409 #if defined(VIDEO_HOLE) |
| 410 contains_media_player_(false), |
| 411 #endif |
409 geolocation_dispatcher_(NULL), | 412 geolocation_dispatcher_(NULL), |
410 push_messaging_dispatcher_(NULL), | 413 push_messaging_dispatcher_(NULL), |
411 screen_orientation_dispatcher_(NULL), | 414 screen_orientation_dispatcher_(NULL), |
412 weak_factory_(this) { | 415 weak_factory_(this) { |
413 std::pair<RoutingIDFrameMap::iterator, bool> result = | 416 std::pair<RoutingIDFrameMap::iterator, bool> result = |
414 g_routing_id_frame_map.Get().insert(std::make_pair(routing_id_, this)); | 417 g_routing_id_frame_map.Get().insert(std::make_pair(routing_id_, this)); |
415 CHECK(result.second) << "Inserting a duplicate item."; | 418 CHECK(result.second) << "Inserting a duplicate item."; |
416 | 419 |
417 RenderThread::Get()->AddRoute(routing_id_, this); | 420 RenderThread::Get()->AddRoute(routing_id_, this); |
418 | 421 |
419 render_view_->RegisterRenderFrame(this); | 422 render_view_->RegisterRenderFrame(this); |
420 | 423 |
421 #if defined(OS_ANDROID) | 424 #if defined(OS_ANDROID) |
422 new JavaBridgeDispatcher(this); | 425 new JavaBridgeDispatcher(this); |
423 #endif | 426 #endif |
424 | 427 |
425 #if defined(ENABLE_NOTIFICATIONS) | 428 #if defined(ENABLE_NOTIFICATIONS) |
426 notification_provider_ = new NotificationProvider(this); | 429 notification_provider_ = new NotificationProvider(this); |
427 #endif | 430 #endif |
428 } | 431 } |
429 | 432 |
430 RenderFrameImpl::~RenderFrameImpl() { | 433 RenderFrameImpl::~RenderFrameImpl() { |
431 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, RenderFrameGone()); | 434 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, RenderFrameGone()); |
432 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnDestruct()); | 435 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnDestruct()); |
433 | 436 |
434 #if defined(OS_ANDROID) && defined(VIDEO_HOLE) | 437 #if defined(VIDEO_HOLE) |
435 if (media_player_manager_) | 438 if (contains_media_player_) |
436 render_view_->UnregisterVideoHoleFrame(this); | 439 render_view_->UnregisterVideoHoleFrame(this); |
437 #endif | 440 #endif |
438 | 441 |
439 render_view_->UnregisterRenderFrame(this); | 442 render_view_->UnregisterRenderFrame(this); |
440 g_routing_id_frame_map.Get().erase(routing_id_); | 443 g_routing_id_frame_map.Get().erase(routing_id_); |
441 RenderThread::Get()->RemoveRoute(routing_id_); | 444 RenderThread::Get()->RemoveRoute(routing_id_); |
442 } | 445 } |
443 | 446 |
444 void RenderFrameImpl::SetWebFrame(blink::WebLocalFrame* web_frame) { | 447 void RenderFrameImpl::SetWebFrame(blink::WebLocalFrame* web_frame) { |
445 DCHECK(!frame_); | 448 DCHECK(!frame_); |
(...skipping 919 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1365 return CreatePlugin(frame, info, params_to_use); | 1368 return CreatePlugin(frame, info, params_to_use); |
1366 #else | 1369 #else |
1367 return NULL; | 1370 return NULL; |
1368 #endif // defined(ENABLE_PLUGINS) | 1371 #endif // defined(ENABLE_PLUGINS) |
1369 } | 1372 } |
1370 | 1373 |
1371 blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( | 1374 blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( |
1372 blink::WebLocalFrame* frame, | 1375 blink::WebLocalFrame* frame, |
1373 const blink::WebURL& url, | 1376 const blink::WebURL& url, |
1374 blink::WebMediaPlayerClient* client) { | 1377 blink::WebMediaPlayerClient* client) { |
| 1378 #if defined(VIDEO_HOLE) |
| 1379 if (!contains_media_player_) { |
| 1380 render_view_->RegisterVideoHoleFrame(this); |
| 1381 contains_media_player_ = true; |
| 1382 } |
| 1383 #endif // defined(VIDEO_HOLE) |
| 1384 |
1375 blink::WebMediaStream web_stream( | 1385 blink::WebMediaStream web_stream( |
1376 blink::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url)); | 1386 blink::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url)); |
1377 if (!web_stream.isNull()) | 1387 if (!web_stream.isNull()) |
1378 return CreateWebMediaPlayerForMediaStream(url, client); | 1388 return CreateWebMediaPlayerForMediaStream(url, client); |
1379 | 1389 |
1380 #if defined(OS_ANDROID) | 1390 #if defined(OS_ANDROID) |
1381 return CreateAndroidWebMediaPlayer(url, client); | 1391 return CreateAndroidWebMediaPlayer(url, client); |
1382 #else | 1392 #else |
1383 WebMediaPlayerParams params( | 1393 WebMediaPlayerParams params( |
1384 base::Bind(&ContentRendererClient::DeferMediaLoad, | 1394 base::Bind(&ContentRendererClient::DeferMediaLoad, |
(...skipping 2166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3551 client, | 3561 client, |
3552 weak_factory_.GetWeakPtr(), | 3562 weak_factory_.GetWeakPtr(), |
3553 GetMediaPlayerManager(), | 3563 GetMediaPlayerManager(), |
3554 GetCdmManager(), | 3564 GetCdmManager(), |
3555 stream_texture_factory, | 3565 stream_texture_factory, |
3556 RenderThreadImpl::current()->GetMediaThreadMessageLoopProxy(), | 3566 RenderThreadImpl::current()->GetMediaThreadMessageLoopProxy(), |
3557 new RenderMediaLog()); | 3567 new RenderMediaLog()); |
3558 } | 3568 } |
3559 | 3569 |
3560 RendererMediaPlayerManager* RenderFrameImpl::GetMediaPlayerManager() { | 3570 RendererMediaPlayerManager* RenderFrameImpl::GetMediaPlayerManager() { |
3561 if (!media_player_manager_) { | 3571 if (!media_player_manager_) |
3562 media_player_manager_ = new RendererMediaPlayerManager(this); | 3572 media_player_manager_ = new RendererMediaPlayerManager(this); |
3563 #if defined(VIDEO_HOLE) | |
3564 render_view_->RegisterVideoHoleFrame(this); | |
3565 #endif // defined(VIDEO_HOLE) | |
3566 } | |
3567 return media_player_manager_; | 3573 return media_player_manager_; |
3568 } | 3574 } |
3569 | 3575 |
3570 #endif // defined(OS_ANDROID) | 3576 #endif // defined(OS_ANDROID) |
3571 | 3577 |
3572 #if defined(ENABLE_BROWSER_CDMS) | 3578 #if defined(ENABLE_BROWSER_CDMS) |
3573 RendererCdmManager* RenderFrameImpl::GetCdmManager() { | 3579 RendererCdmManager* RenderFrameImpl::GetCdmManager() { |
3574 if (!cdm_manager_) | 3580 if (!cdm_manager_) |
3575 cdm_manager_ = new RendererCdmManager(this); | 3581 cdm_manager_ = new RendererCdmManager(this); |
3576 return cdm_manager_; | 3582 return cdm_manager_; |
3577 } | 3583 } |
3578 #endif // defined(ENABLE_BROWSER_CDMS) | 3584 #endif // defined(ENABLE_BROWSER_CDMS) |
3579 | 3585 |
3580 } // namespace content | 3586 } // namespace content |
OLD | NEW |