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/browser/media/android/browser_media_player_manager.h" | 5 #include "content/browser/media/android/browser_media_player_manager.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/android/scoped_java_ref.h" | 9 #include "base/android/scoped_java_ref.h" |
10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
81 #endif | 81 #endif |
82 | 82 |
83 std::unique_ptr<MediaPlayerAndroid> | 83 std::unique_ptr<MediaPlayerAndroid> |
84 BrowserMediaPlayerManager::CreateMediaPlayer( | 84 BrowserMediaPlayerManager::CreateMediaPlayer( |
85 const MediaPlayerHostMsg_Initialize_Params& media_player_params, | 85 const MediaPlayerHostMsg_Initialize_Params& media_player_params, |
86 bool hide_url_log) { | 86 bool hide_url_log) { |
87 switch (media_player_params.type) { | 87 switch (media_player_params.type) { |
88 case MEDIA_PLAYER_TYPE_REMOTE_ONLY: | 88 case MEDIA_PLAYER_TYPE_REMOTE_ONLY: |
89 case MEDIA_PLAYER_TYPE_URL: { | 89 case MEDIA_PLAYER_TYPE_URL: { |
90 const std::string user_agent = GetContentClient()->GetUserAgent(); | 90 const std::string user_agent = GetContentClient()->GetUserAgent(); |
91 std::unique_ptr<MediaPlayerAndroid> media_player_bridge( | 91 auto media_player_bridge = base::MakeUnique<MediaPlayerBridge>( |
danakj
2017/03/15 15:20:24
LGTM :)
| |
92 new MediaPlayerBridge( | 92 media_player_params.player_id, media_player_params.url, |
93 media_player_params.player_id, media_player_params.url, | 93 media_player_params.first_party_for_cookies, user_agent, hide_url_log, |
94 media_player_params.first_party_for_cookies, user_agent, | 94 this, |
95 hide_url_log, this, | 95 base::Bind(&BrowserMediaPlayerManager::OnDecoderResourcesReleased, |
96 base::Bind(&BrowserMediaPlayerManager::OnDecoderResourcesReleased, | 96 weak_ptr_factory_.GetWeakPtr()), |
97 weak_ptr_factory_.GetWeakPtr()), | 97 media_player_params.frame_url, media_player_params.allow_credentials); |
98 media_player_params.frame_url, | |
99 media_player_params.allow_credentials)); | |
100 | 98 |
101 if (media_player_params.type == MEDIA_PLAYER_TYPE_REMOTE_ONLY) | 99 if (media_player_params.type == MEDIA_PLAYER_TYPE_REMOTE_ONLY) |
102 return media_player_bridge; | 100 return std::move(media_player_bridge); |
103 | 101 |
104 bool should_block = false; | 102 bool should_block = false; |
105 bool extract_metadata = | 103 bool extract_metadata = |
106 // Initialize the player will cause MediaMetadataExtractor to decode | 104 // Initialize the player will cause MediaMetadataExtractor to decode |
107 // small chunks of data. | 105 // small chunks of data. |
108 RequestDecoderResources(media_player_params.player_id, true); | 106 RequestDecoderResources(media_player_params.player_id, true); |
109 #if !defined(USE_AURA) | 107 #if !defined(USE_AURA) |
110 if (WebContentsDelegate* delegate = web_contents_->GetDelegate()) { | 108 if (WebContentsDelegate* delegate = web_contents_->GetDelegate()) { |
111 should_block = | 109 should_block = |
112 delegate->ShouldBlockMediaRequest(media_player_params.url); | 110 delegate->ShouldBlockMediaRequest(media_player_params.url); |
113 } else { | 111 } else { |
114 extract_metadata = false; | 112 extract_metadata = false; |
115 } | 113 } |
116 #endif | 114 #endif |
117 if (!extract_metadata) { | 115 if (!extract_metadata) { |
118 // May reach here due to prerendering or throttling. Don't extract the | 116 // May reach here due to prerendering or throttling. Don't extract the |
119 // metadata since it is expensive. | 117 // metadata since it is expensive. |
120 // TODO(qinmin): extract the metadata once the user decided to load | 118 // TODO(qinmin): extract the metadata once the user decided to load |
121 // the page. | 119 // the page. |
122 OnMediaMetadataChanged(media_player_params.player_id, base::TimeDelta(), | 120 OnMediaMetadataChanged(media_player_params.player_id, base::TimeDelta(), |
123 0, 0, false); | 121 0, 0, false); |
124 } else if (!should_block) { | 122 } else if (!should_block) { |
125 static_cast<MediaPlayerBridge*>(media_player_bridge.get()) | 123 media_player_bridge->Initialize(); |
126 ->Initialize(); | |
127 } | 124 } |
128 return media_player_bridge; | 125 return std::move(media_player_bridge); |
129 } | 126 } |
130 } | 127 } |
131 | 128 |
132 NOTREACHED(); | 129 NOTREACHED(); |
133 return nullptr; | 130 return nullptr; |
134 } | 131 } |
135 | 132 |
136 BrowserMediaPlayerManager::BrowserMediaPlayerManager( | 133 BrowserMediaPlayerManager::BrowserMediaPlayerManager( |
137 RenderFrameHost* render_frame_host) | 134 RenderFrameHost* render_frame_host) |
138 : render_frame_host_(render_frame_host), | 135 : render_frame_host_(render_frame_host), |
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
562 if (!player) | 559 if (!player) |
563 return; | 560 return; |
564 player->Start(); | 561 player->Start(); |
565 if (fullscreen_player_id_ == player_id && fullscreen_player_is_released_) { | 562 if (fullscreen_player_id_ == player_id && fullscreen_player_is_released_) { |
566 video_view_->OpenVideo(); | 563 video_view_->OpenVideo(); |
567 fullscreen_player_is_released_ = false; | 564 fullscreen_player_is_released_ = false; |
568 } | 565 } |
569 } | 566 } |
570 | 567 |
571 } // namespace content | 568 } // namespace content |
OLD | NEW |