OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/android/media_player_manager_impl.h" | 5 #include "content/browser/android/media_player_manager_impl.h" |
6 | 6 |
7 #include "content/browser/android/media_resource_getter_impl.h" | 7 #include "content/browser/android/media_resource_getter_impl.h" |
8 #include "content/browser/web_contents/web_contents_view_android.h" | 8 #include "content/browser/web_contents/web_contents_view_android.h" |
9 #include "content/common/media/media_player_messages_android.h" | 9 #include "content/common/media/media_player_messages_android.h" |
10 #include "content/public/browser/browser_context.h" | 10 #include "content/public/browser/browser_context.h" |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
120 player->SetVideoSurface(surface); | 120 player->SetVideoSurface(surface); |
121 Send(new MediaPlayerMsg_DidEnterFullscreen( | 121 Send(new MediaPlayerMsg_DidEnterFullscreen( |
122 routing_id(), player->player_id())); | 122 routing_id(), player->player_id())); |
123 } | 123 } |
124 } | 124 } |
125 | 125 |
126 void MediaPlayerManagerImpl::OnInitialize( | 126 void MediaPlayerManagerImpl::OnInitialize( |
127 int player_id, const GURL& url, | 127 int player_id, const GURL& url, |
128 bool is_media_source, | 128 bool is_media_source, |
129 const GURL& first_party_for_cookies) { | 129 const GURL& first_party_for_cookies) { |
130 for (ScopedVector<MediaPlayerAndroid>::iterator it = players_.begin(); | 130 RemovePlayer(player_id); |
131 it != players_.end(); ++it) { | |
132 if ((*it)->player_id() == player_id) { | |
133 players_.erase(it); | |
134 break; | |
135 } | |
136 } | |
137 | 131 |
138 RenderProcessHost* host = render_view_host()->GetProcess(); | 132 RenderProcessHost* host = render_view_host()->GetProcess(); |
139 players_.push_back(media::MediaPlayerAndroid::Create( | 133 AddPlayer(media::MediaPlayerAndroid::Create( |
140 player_id, url, is_media_source, first_party_for_cookies, | 134 player_id, url, is_media_source, first_party_for_cookies, |
141 host->GetBrowserContext()->IsOffTheRecord(), this)); | 135 host->GetBrowserContext()->IsOffTheRecord(), this)); |
142 } | 136 } |
143 | 137 |
144 media::MediaResourceGetter* MediaPlayerManagerImpl::GetMediaResourceGetter() { | 138 media::MediaResourceGetter* MediaPlayerManagerImpl::GetMediaResourceGetter() { |
145 if (!media_resource_getter_.get()) { | 139 if (!media_resource_getter_.get()) { |
146 RenderProcessHost* host = render_view_host()->GetProcess(); | 140 RenderProcessHost* host = render_view_host()->GetProcess(); |
147 BrowserContext* context = host->GetBrowserContext(); | 141 BrowserContext* context = host->GetBrowserContext(); |
148 StoragePartition* partition = host->GetStoragePartition(); | 142 StoragePartition* partition = host->GetStoragePartition(); |
149 fileapi::FileSystemContext* file_system_context = | 143 fileapi::FileSystemContext* file_system_context = |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 void MediaPlayerManagerImpl::OnReleaseResources(int player_id) { | 186 void MediaPlayerManagerImpl::OnReleaseResources(int player_id) { |
193 MediaPlayerAndroid* player = GetPlayer(player_id); | 187 MediaPlayerAndroid* player = GetPlayer(player_id); |
194 // Don't release the fullscreen player when tab visibility changes, | 188 // Don't release the fullscreen player when tab visibility changes, |
195 // it will be released when user hit the back/home button or when | 189 // it will be released when user hit the back/home button or when |
196 // OnDestroyPlayer is called. | 190 // OnDestroyPlayer is called. |
197 if (player && player_id != fullscreen_player_id_) | 191 if (player && player_id != fullscreen_player_id_) |
198 player->Release(); | 192 player->Release(); |
199 } | 193 } |
200 | 194 |
201 void MediaPlayerManagerImpl::OnDestroyPlayer(int player_id) { | 195 void MediaPlayerManagerImpl::OnDestroyPlayer(int player_id) { |
202 for (ScopedVector<MediaPlayerAndroid>::iterator it = players_.begin(); | 196 RemovePlayer(player_id); |
203 it != players_.end(); ++it) { | |
204 if ((*it)->player_id() == player_id) { | |
205 players_.erase(it); | |
206 break; | |
207 } | |
208 } | |
209 if (fullscreen_player_id_ == player_id) | 197 if (fullscreen_player_id_ == player_id) |
210 fullscreen_player_id_ = -1; | 198 fullscreen_player_id_ = -1; |
211 } | 199 } |
212 | 200 |
213 void MediaPlayerManagerImpl::DestroyAllMediaPlayers() { | 201 void MediaPlayerManagerImpl::DestroyAllMediaPlayers() { |
214 players_.clear(); | 202 players_.clear(); |
215 if (fullscreen_player_id_ != -1) { | 203 if (fullscreen_player_id_ != -1) { |
216 video_view_.DestroyContentVideoView(); | 204 video_view_.DestroyContentVideoView(); |
217 fullscreen_player_id_ = -1; | 205 fullscreen_player_id_ = -1; |
218 } | 206 } |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
365 routing_id(), (*it)->player_id())); | 353 routing_id(), (*it)->player_id())); |
366 } | 354 } |
367 } | 355 } |
368 } | 356 } |
369 | 357 |
370 void MediaPlayerManagerImpl::ReleaseMediaResources( | 358 void MediaPlayerManagerImpl::ReleaseMediaResources( |
371 MediaPlayerAndroid* player) { | 359 MediaPlayerAndroid* player) { |
372 // Nothing needs to be done. | 360 // Nothing needs to be done. |
373 } | 361 } |
374 | 362 |
| 363 void MediaPlayerManagerImpl::AddPlayer(MediaPlayerAndroid* player) { |
| 364 DCHECK(!GetPlayer(player->player_id())); |
| 365 players_.push_back(player); |
| 366 } |
| 367 |
| 368 void MediaPlayerManagerImpl::RemovePlayer(int player_id) { |
| 369 for (ScopedVector<MediaPlayerAndroid>::iterator it = players_.begin(); |
| 370 it != players_.end(); ++it) { |
| 371 if ((*it)->player_id() == player_id) { |
| 372 players_.erase(it); |
| 373 break; |
| 374 } |
| 375 } |
| 376 } |
| 377 |
375 } // namespace content | 378 } // namespace content |
OLD | NEW |