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

Side by Side Diff: content/renderer/media/android/renderer_media_player_manager.cc

Issue 2480003002: [RemotePlayback] Keep track of source compatibility and reject prompt() correspondingly (Closed)
Patch Set: Rebased Created 4 years, 1 month 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
OLDNEW
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/media/android/renderer_media_player_manager.h" 5 #include "content/renderer/media/android/renderer_media_player_manager.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "content/common/media/media_player_messages_android.h" 8 #include "content/common/media/media_player_messages_android.h"
9 #include "content/public/common/renderer_preferences.h" 9 #include "content/public/common/renderer_preferences.h"
10 #include "content/renderer/media/android/webmediaplayer_android.h" 10 #include "content/renderer/media/android/webmediaplayer_android.h"
11 #include "content/renderer/render_view_impl.h" 11 #include "content/renderer/render_view_impl.h"
12 #include "media/base/media_switches.h" 12 #include "media/base/media_switches.h"
13 #include "third_party/WebKit/public/platform/modules/remoteplayback/WebRemotePla ybackAvailability.h"
13 #include "ui/gfx/geometry/rect_f.h" 14 #include "ui/gfx/geometry/rect_f.h"
14 15
15 namespace content { 16 namespace content {
16 17
18 using ::blink::WebRemotePlaybackAvailability;
19
17 RendererMediaPlayerManager::RendererMediaPlayerManager( 20 RendererMediaPlayerManager::RendererMediaPlayerManager(
18 RenderFrame* render_frame) 21 RenderFrame* render_frame)
19 : RenderFrameObserver(render_frame), 22 : RenderFrameObserver(render_frame),
20 next_media_player_id_(0) { 23 next_media_player_id_(0) {
21 } 24 }
22 25
23 RendererMediaPlayerManager::~RendererMediaPlayerManager() { 26 RendererMediaPlayerManager::~RendererMediaPlayerManager() {
24 DCHECK(media_players_.empty()) 27 DCHECK(media_players_.empty())
25 << "RendererMediaPlayerManager is owned by RenderFrameImpl and is " 28 << "RendererMediaPlayerManager is owned by RenderFrameImpl and is "
26 "destroyed only after all media players are destroyed."; 29 "destroyed only after all media players are destroyed.";
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 } 240 }
238 241
239 void RendererMediaPlayerManager::OnPlayerPause(int player_id) { 242 void RendererMediaPlayerManager::OnPlayerPause(int player_id) {
240 media::RendererMediaPlayerInterface* player = GetMediaPlayer(player_id); 243 media::RendererMediaPlayerInterface* player = GetMediaPlayer(player_id);
241 if (player) 244 if (player)
242 player->OnMediaPlayerPause(); 245 player->OnMediaPlayerPause();
243 } 246 }
244 247
245 void RendererMediaPlayerManager::OnRemoteRouteAvailabilityChanged( 248 void RendererMediaPlayerManager::OnRemoteRouteAvailabilityChanged(
246 int player_id, 249 int player_id,
247 bool routes_available) { 250 bool is_route_available,
251 bool is_source_compatible) {
248 media::RendererMediaPlayerInterface* player = GetMediaPlayer(player_id); 252 media::RendererMediaPlayerInterface* player = GetMediaPlayer(player_id);
249 if (player) 253 if (player) {
250 player->OnRemoteRouteAvailabilityChanged(routes_available); 254 WebRemotePlaybackAvailability availability =
255 WebRemotePlaybackAvailability::DeviceNotAvailable;
256 if (is_route_available && is_source_compatible) {
257 availability = WebRemotePlaybackAvailability::DeviceAvailable;
258 } else if (!is_route_available && !is_source_compatible) {
259 availability = WebRemotePlaybackAvailability::SourceNotSupported;
260 } else if (is_route_available) {
261 availability = WebRemotePlaybackAvailability::SourceNotCompatible;
262 }
263 player->OnRemoteRouteAvailabilityChanged(availability);
264 }
251 } 265 }
252 266
253 void RendererMediaPlayerManager::EnterFullscreen(int player_id) { 267 void RendererMediaPlayerManager::EnterFullscreen(int player_id) {
254 Send(new MediaPlayerHostMsg_EnterFullscreen(routing_id(), player_id)); 268 Send(new MediaPlayerHostMsg_EnterFullscreen(routing_id(), player_id));
255 } 269 }
256 270
257 int RendererMediaPlayerManager::RegisterMediaPlayer( 271 int RendererMediaPlayerManager::RegisterMediaPlayer(
258 media::RendererMediaPlayerInterface* player) { 272 media::RendererMediaPlayerInterface* player) {
259 media_players_[next_media_player_id_] = player; 273 media_players_[next_media_player_id_] = player;
260 return next_media_player_id_++; 274 return next_media_player_id_++;
(...skipping 10 matching lines...) Expand all
271 if (iter != media_players_.end()) 285 if (iter != media_players_.end())
272 return iter->second; 286 return iter->second;
273 return NULL; 287 return NULL;
274 } 288 }
275 289
276 void RendererMediaPlayerManager::OnDestruct() { 290 void RendererMediaPlayerManager::OnDestruct() {
277 delete this; 291 delete this;
278 } 292 }
279 293
280 } // namespace content 294 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698