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

Side by Side Diff: content/browser/media/android/media_web_contents_observer_android.cc

Issue 2399023002: Make MediaSession available on Desktop (Closed)
Patch Set: merge BrowserMediaSessionManager into MediaSessionServiceImpl, temporarily removing BrowserTests Created 4 years, 2 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/media_web_contents_observer_android.h" 5 #include "content/browser/media/android/media_web_contents_observer_android.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "content/browser/media/android/browser_media_player_manager.h" 10 #include "content/browser/media/android/browser_media_player_manager.h"
11 #include "content/browser/media/android/browser_media_session_manager.h"
12 #include "content/browser/media/android/browser_surface_view_manager.h" 11 #include "content/browser/media/android/browser_surface_view_manager.h"
13 #include "content/browser/web_contents/web_contents_impl.h" 12 #include "content/browser/web_contents/web_contents_impl.h"
14 #include "content/common/media/media_player_delegate_messages.h" 13 #include "content/common/media/media_player_delegate_messages.h"
15 #include "content/common/media/media_player_messages_android.h" 14 #include "content/common/media/media_player_messages_android.h"
16 #include "content/common/media/surface_view_manager_messages_android.h" 15 #include "content/common/media/surface_view_manager_messages_android.h"
17 #include "content/public/browser/render_frame_host.h" 16 #include "content/public/browser/render_frame_host.h"
18 #include "content/public/browser/web_contents.h" 17 #include "content/public/browser/web_contents.h"
19 #include "ipc/ipc_message_macros.h" 18 #include "ipc/ipc_message_macros.h"
20 #include "media/base/android/media_player_android.h" 19 #include "media/base/android/media_player_android.h"
21 20
(...skipping 25 matching lines...) Expand all
47 auto it = media_player_managers_.find(render_frame_host); 46 auto it = media_player_managers_.find(render_frame_host);
48 if (it != media_player_managers_.end()) 47 if (it != media_player_managers_.end())
49 return it->second; 48 return it->second;
50 49
51 BrowserMediaPlayerManager* manager = 50 BrowserMediaPlayerManager* manager =
52 BrowserMediaPlayerManager::Create(render_frame_host); 51 BrowserMediaPlayerManager::Create(render_frame_host);
53 media_player_managers_.set(render_frame_host, base::WrapUnique(manager)); 52 media_player_managers_.set(render_frame_host, base::WrapUnique(manager));
54 return manager; 53 return manager;
55 } 54 }
56 55
57 BrowserMediaSessionManager*
58 MediaWebContentsObserverAndroid::GetMediaSessionManager(
59 RenderFrameHost* render_frame_host) {
60 auto it = media_session_managers_.find(render_frame_host);
61 if (it != media_session_managers_.end())
62 return it->second;
63
64 BrowserMediaSessionManager* manager =
65 new BrowserMediaSessionManager(render_frame_host);
66 media_session_managers_.set(render_frame_host, base::WrapUnique(manager));
67 return manager;
68 }
69
70 BrowserSurfaceViewManager* 56 BrowserSurfaceViewManager*
71 MediaWebContentsObserverAndroid::GetSurfaceViewManager( 57 MediaWebContentsObserverAndroid::GetSurfaceViewManager(
72 RenderFrameHost* render_frame_host) { 58 RenderFrameHost* render_frame_host) {
73 auto it = surface_view_managers_.find(render_frame_host); 59 auto it = surface_view_managers_.find(render_frame_host);
74 if (it != surface_view_managers_.end()) 60 if (it != surface_view_managers_.end())
75 return it->second; 61 return it->second;
76 62
77 BrowserSurfaceViewManager* manager = 63 BrowserSurfaceViewManager* manager =
78 new BrowserSurfaceViewManager(render_frame_host); 64 new BrowserSurfaceViewManager(render_frame_host);
79 surface_view_managers_.set(render_frame_host, base::WrapUnique(manager)); 65 surface_view_managers_.set(render_frame_host, base::WrapUnique(manager));
80 return manager; 66 return manager;
81 } 67 }
82 68
83 void MediaWebContentsObserverAndroid::SetMediaSessionManagerForTest(
84 RenderFrameHost* render_frame_host,
85 std::unique_ptr<BrowserMediaSessionManager> manager) {
86 media_session_managers_.set(render_frame_host, std::move(manager));
87 }
88
89 void MediaWebContentsObserverAndroid::SuspendAllMediaPlayers() { 69 void MediaWebContentsObserverAndroid::SuspendAllMediaPlayers() {
90 web_contents()->ForEachFrame( 70 web_contents()->ForEachFrame(
91 base::Bind(&SuspendAllMediaPlayersInRenderFrame)); 71 base::Bind(&SuspendAllMediaPlayersInRenderFrame));
92 } 72 }
93 73
94 bool MediaWebContentsObserverAndroid::RequestPlay( 74 bool MediaWebContentsObserverAndroid::RequestPlay(
95 RenderFrameHost* render_frame_host, 75 RenderFrameHost* render_frame_host,
96 int delegate_id, 76 int delegate_id,
97 bool has_audio, 77 bool has_audio,
98 bool is_remote, 78 bool is_remote,
99 media::MediaContentType media_content_type) { 79 media::MediaContentType media_content_type) {
100 return session_controllers_manager()->RequestPlay( 80 return session_controllers_manager()->RequestPlay(
101 MediaPlayerId(render_frame_host, delegate_id), has_audio, is_remote, 81 MediaPlayerId(render_frame_host, delegate_id), has_audio, is_remote,
102 media_content_type); 82 media_content_type);
103 } 83 }
104 84
105 void MediaWebContentsObserverAndroid::DisconnectMediaSession( 85 void MediaWebContentsObserverAndroid::DisconnectMediaSession(
106 RenderFrameHost* render_frame_host, 86 RenderFrameHost* render_frame_host,
107 int delegate_id) { 87 int delegate_id) {
108 session_controllers_manager()->OnEnd( 88 session_controllers_manager()->OnEnd(
109 MediaPlayerId(render_frame_host, delegate_id)); 89 MediaPlayerId(render_frame_host, delegate_id));
110 } 90 }
111 91
112 void MediaWebContentsObserverAndroid::RenderFrameDeleted( 92 void MediaWebContentsObserverAndroid::RenderFrameDeleted(
113 RenderFrameHost* render_frame_host) { 93 RenderFrameHost* render_frame_host) {
114 MediaWebContentsObserver::RenderFrameDeleted(render_frame_host); 94 MediaWebContentsObserver::RenderFrameDeleted(render_frame_host);
115 95
116 media_player_managers_.erase(render_frame_host); 96 media_player_managers_.erase(render_frame_host);
117 media_session_managers_.erase(render_frame_host);
118 surface_view_managers_.erase(render_frame_host); 97 surface_view_managers_.erase(render_frame_host);
119 } 98 }
120 99
121 bool MediaWebContentsObserverAndroid::OnMessageReceived( 100 bool MediaWebContentsObserverAndroid::OnMessageReceived(
122 const IPC::Message& msg, 101 const IPC::Message& msg,
123 RenderFrameHost* render_frame_host) { 102 RenderFrameHost* render_frame_host) {
124 if (MediaWebContentsObserver::OnMessageReceived(msg, render_frame_host)) 103 if (MediaWebContentsObserver::OnMessageReceived(msg, render_frame_host))
125 return true; 104 return true;
126 105
127 if (OnMediaPlayerMessageReceived(msg, render_frame_host)) 106 if (OnMediaPlayerMessageReceived(msg, render_frame_host))
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 BrowserSurfaceViewManager::OnCreateFullscreenSurface) 166 BrowserSurfaceViewManager::OnCreateFullscreenSurface)
188 IPC_MESSAGE_FORWARD(SurfaceViewManagerHostMsg_NaturalSizeChanged, 167 IPC_MESSAGE_FORWARD(SurfaceViewManagerHostMsg_NaturalSizeChanged,
189 GetSurfaceViewManager(render_frame_host), 168 GetSurfaceViewManager(render_frame_host),
190 BrowserSurfaceViewManager::OnNaturalSizeChanged) 169 BrowserSurfaceViewManager::OnNaturalSizeChanged)
191 IPC_MESSAGE_UNHANDLED(handled = false) 170 IPC_MESSAGE_UNHANDLED(handled = false)
192 IPC_END_MESSAGE_MAP() 171 IPC_END_MESSAGE_MAP()
193 return handled; 172 return handled;
194 } 173 }
195 174
196 } // namespace content 175 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698