OLD | NEW |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |