Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(46)

Side by Side Diff: content/browser/android/media_player_manager_impl.cc

Issue 15876006: Allow some Android media player implementation to be overridden by embedders. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed indent Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 player->SetVideoSurface(surface); 122 player->SetVideoSurface(surface);
123 Send(new MediaPlayerMsg_DidEnterFullscreen( 123 Send(new MediaPlayerMsg_DidEnterFullscreen(
124 routing_id(), player->player_id())); 124 routing_id(), player->player_id()));
125 } 125 }
126 } 126 }
127 127
128 void MediaPlayerManagerImpl::OnInitialize( 128 void MediaPlayerManagerImpl::OnInitialize(
129 int player_id, const GURL& url, 129 int player_id, const GURL& url,
130 bool is_media_source, 130 bool is_media_source,
131 const GURL& first_party_for_cookies) { 131 const GURL& first_party_for_cookies) {
132 for (ScopedVector<MediaPlayerAndroid>::iterator it = players_.begin(); 132 RemovePlayer(player_id);
133 it != players_.end(); ++it) {
134 if ((*it)->player_id() == player_id) {
135 players_.erase(it);
136 break;
137 }
138 }
139 133
140 RenderProcessHost* host = render_view_host()->GetProcess(); 134 RenderProcessHost* host = render_view_host()->GetProcess();
141 players_.push_back(media::MediaPlayerAndroid::Create( 135 AddPlayer(media::MediaPlayerAndroid::Create(
142 player_id, url, is_media_source, first_party_for_cookies, 136 player_id, url, is_media_source, first_party_for_cookies,
143 host->GetBrowserContext()->IsOffTheRecord(), this)); 137 host->GetBrowserContext()->IsOffTheRecord(), this));
144 } 138 }
145 139
146 media::MediaResourceGetter* MediaPlayerManagerImpl::GetMediaResourceGetter() { 140 media::MediaResourceGetter* MediaPlayerManagerImpl::GetMediaResourceGetter() {
147 if (!media_resource_getter_.get()) { 141 if (!media_resource_getter_.get()) {
148 RenderProcessHost* host = render_view_host()->GetProcess(); 142 RenderProcessHost* host = render_view_host()->GetProcess();
149 BrowserContext* context = host->GetBrowserContext(); 143 BrowserContext* context = host->GetBrowserContext();
150 StoragePartition* partition = host->GetStoragePartition(); 144 StoragePartition* partition = host->GetStoragePartition();
151 fileapi::FileSystemContext* file_system_context = 145 fileapi::FileSystemContext* file_system_context =
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 void MediaPlayerManagerImpl::OnReleaseResources(int player_id) { 188 void MediaPlayerManagerImpl::OnReleaseResources(int player_id) {
195 MediaPlayerAndroid* player = GetPlayer(player_id); 189 MediaPlayerAndroid* player = GetPlayer(player_id);
196 // Don't release the fullscreen player when tab visibility changes, 190 // Don't release the fullscreen player when tab visibility changes,
197 // it will be released when user hit the back/home button or when 191 // it will be released when user hit the back/home button or when
198 // OnDestroyPlayer is called. 192 // OnDestroyPlayer is called.
199 if (player && player_id != fullscreen_player_id_) 193 if (player && player_id != fullscreen_player_id_)
200 player->Release(); 194 player->Release();
201 } 195 }
202 196
203 void MediaPlayerManagerImpl::OnDestroyPlayer(int player_id) { 197 void MediaPlayerManagerImpl::OnDestroyPlayer(int player_id) {
204 for (ScopedVector<MediaPlayerAndroid>::iterator it = players_.begin(); 198 RemovePlayer(player_id);
205 it != players_.end(); ++it) {
206 if ((*it)->player_id() == player_id) {
207 players_.erase(it);
208 break;
209 }
210 }
211 if (fullscreen_player_id_ == player_id) 199 if (fullscreen_player_id_ == player_id)
212 fullscreen_player_id_ = -1; 200 fullscreen_player_id_ = -1;
213 } 201 }
214 202
215 void MediaPlayerManagerImpl::DestroyAllMediaPlayers() { 203 void MediaPlayerManagerImpl::DestroyAllMediaPlayers() {
216 players_.clear(); 204 players_.clear();
217 if (fullscreen_player_id_ != -1) { 205 if (fullscreen_player_id_ != -1) {
218 video_view_.DestroyContentVideoView(); 206 video_view_.DestroyContentVideoView();
219 fullscreen_player_id_ = -1; 207 fullscreen_player_id_ = -1;
220 } 208 }
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 routing_id(), (*it)->player_id())); 372 routing_id(), (*it)->player_id()));
385 } 373 }
386 } 374 }
387 } 375 }
388 376
389 void MediaPlayerManagerImpl::ReleaseMediaResources( 377 void MediaPlayerManagerImpl::ReleaseMediaResources(
390 MediaPlayerAndroid* player) { 378 MediaPlayerAndroid* player) {
391 // Nothing needs to be done. 379 // Nothing needs to be done.
392 } 380 }
393 381
382 void MediaPlayerManagerImpl::AddPlayer(MediaPlayerAndroid* player) {
383 DCHECK(!GetPlayer(player->player_id()));
384 players_.push_back(player);
385 }
386
387 void MediaPlayerManagerImpl::RemovePlayer(int player_id) {
388 for (ScopedVector<MediaPlayerAndroid>::iterator it = players_.begin();
389 it != players_.end(); ++it) {
390 if ((*it)->player_id() == player_id) {
391 players_.erase(it);
392 break;
393 }
394 }
395 }
396
394 } // namespace content 397 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698