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

Side by Side Diff: chrome/browser/media/media_capture_devices_dispatcher.cc

Issue 562863002: Gardening: Revert "Use AudioStreamMonitor to control power save blocking." (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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 (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 "chrome/browser/media/media_capture_devices_dispatcher.h" 5 #include "chrome/browser/media/media_capture_devices_dispatcher.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/metrics/field_trial.h" 9 #include "base/metrics/field_trial.h"
10 #include "base/prefs/pref_service.h" 10 #include "base/prefs/pref_service.h"
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 #include "media/audio/audio_manager_base.h" 47 #include "media/audio/audio_manager_base.h"
48 #include "media/base/media_switches.h" 48 #include "media/base/media_switches.h"
49 #include "net/base/net_util.h" 49 #include "net/base/net_util.h"
50 #include "third_party/webrtc/modules/desktop_capture/desktop_capture_types.h" 50 #include "third_party/webrtc/modules/desktop_capture/desktop_capture_types.h"
51 #include "ui/base/l10n/l10n_util.h" 51 #include "ui/base/l10n/l10n_util.h"
52 52
53 #if defined(OS_CHROMEOS) 53 #if defined(OS_CHROMEOS)
54 #include "ash/shell.h" 54 #include "ash/shell.h"
55 #endif // defined(OS_CHROMEOS) 55 #endif // defined(OS_CHROMEOS)
56 56
57 // Only do audio stream monitoring for platforms that use it for the tab media
58 // indicator UI or the OOM killer.
59 #if !defined(OS_ANDROID) && !defined(OS_IOS)
60 #define AUDIO_STREAM_MONITORING
61 #include "chrome/browser/media/audio_stream_monitor.h"
62 #endif // !defined(OS_ANDROID) && !defined(OS_IOS)
57 63
58 #if defined(ENABLE_EXTENSIONS) 64 #if defined(ENABLE_EXTENSIONS)
59 #include "chrome/browser/extensions/api/tab_capture/tab_capture_registry.h" 65 #include "chrome/browser/extensions/api/tab_capture/tab_capture_registry.h"
60 #include "chrome/browser/extensions/extension_service.h" 66 #include "chrome/browser/extensions/extension_service.h"
61 #include "extensions/browser/app_window/app_window.h" 67 #include "extensions/browser/app_window/app_window.h"
62 #include "extensions/browser/app_window/app_window_registry.h" 68 #include "extensions/browser/app_window/app_window_registry.h"
63 #include "extensions/browser/extension_system.h" 69 #include "extensions/browser/extension_system.h"
64 #endif 70 #endif
65 71
66 using content::BrowserThread; 72 using content::BrowserThread;
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 ui = ScreenCaptureNotificationUI::Create(l10n_util::GetStringFUTF16( 189 ui = ScreenCaptureNotificationUI::Create(l10n_util::GetStringFUTF16(
184 IDS_MEDIA_SCREEN_CAPTURE_NOTIFICATION_TEXT_DELEGATED, 190 IDS_MEDIA_SCREEN_CAPTURE_NOTIFICATION_TEXT_DELEGATED,
185 registered_extension_name, 191 registered_extension_name,
186 application_title)); 192 application_title));
187 } 193 }
188 } 194 }
189 195
190 return ui.Pass(); 196 return ui.Pass();
191 } 197 }
192 198
199 #if defined(AUDIO_STREAM_MONITORING)
200
201 AudioStreamMonitor* AudioStreamMonitorFromRenderFrame(
202 int render_process_id,
203 int render_frame_id) {
204 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
205 content::WebContents* const web_contents =
206 content::WebContents::FromRenderFrameHost(
207 content::RenderFrameHost::FromID(render_process_id, render_frame_id));
208 if (!web_contents)
209 return NULL;
210 return AudioStreamMonitor::FromWebContents(web_contents);
211 }
212
213 void StartAudioStreamMonitoringOnUIThread(
214 int render_process_id,
215 int render_frame_id,
216 int stream_id,
217 const AudioStreamMonitor::ReadPowerAndClipCallback& read_power_callback) {
218 AudioStreamMonitor* const audio_stream_monitor =
219 AudioStreamMonitorFromRenderFrame(render_process_id, render_frame_id);
220 if (audio_stream_monitor)
221 audio_stream_monitor->StartMonitoringStream(stream_id, read_power_callback);
222 }
223
224 void StopAudioStreamMonitoringOnUIThread(
225 int render_process_id,
226 int render_frame_id,
227 int stream_id) {
228 AudioStreamMonitor* const audio_stream_monitor =
229 AudioStreamMonitorFromRenderFrame(render_process_id, render_frame_id);
230 if (audio_stream_monitor)
231 audio_stream_monitor->StopMonitoringStream(stream_id);
232 }
233
234 #endif // defined(AUDIO_STREAM_MONITORING)
235
193 #if !defined(OS_ANDROID) 236 #if !defined(OS_ANDROID)
194 // Find browser or app window from a given |web_contents|. 237 // Find browser or app window from a given |web_contents|.
195 gfx::NativeWindow FindParentWindowForWebContents( 238 gfx::NativeWindow FindParentWindowForWebContents(
196 content::WebContents* web_contents) { 239 content::WebContents* web_contents) {
197 Browser* browser = chrome::FindBrowserWithWebContents(web_contents); 240 Browser* browser = chrome::FindBrowserWithWebContents(web_contents);
198 if (browser && browser->window()) 241 if (browser && browser->window())
199 return browser->window()->GetNativeWindow(); 242 return browser->window()->GetNativeWindow();
200 243
201 const extensions::AppWindowRegistry::AppWindowList& window_list = 244 const extensions::AppWindowRegistry::AppWindowList& window_list =
202 extensions::AppWindowRegistry::Get( 245 extensions::AppWindowRegistry::Get(
(...skipping 684 matching lines...) Expand 10 before | Expand all | Expand 10 after
887 content::MediaRequestState state) { 930 content::MediaRequestState state) {
888 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 931 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
889 BrowserThread::PostTask( 932 BrowserThread::PostTask(
890 BrowserThread::UI, FROM_HERE, 933 BrowserThread::UI, FROM_HERE,
891 base::Bind( 934 base::Bind(
892 &MediaCaptureDevicesDispatcher::UpdateMediaRequestStateOnUIThread, 935 &MediaCaptureDevicesDispatcher::UpdateMediaRequestStateOnUIThread,
893 base::Unretained(this), render_process_id, render_frame_id, 936 base::Unretained(this), render_process_id, render_frame_id,
894 page_request_id, security_origin, stream_type, state)); 937 page_request_id, security_origin, stream_type, state));
895 } 938 }
896 939
940 void MediaCaptureDevicesDispatcher::OnAudioStreamPlaying(
941 int render_process_id,
942 int render_frame_id,
943 int stream_id,
944 const ReadPowerAndClipCallback& read_power_callback) {
945 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
946 #if defined(AUDIO_STREAM_MONITORING)
947 BrowserThread::PostTask(
948 BrowserThread::UI,
949 FROM_HERE,
950 base::Bind(&StartAudioStreamMonitoringOnUIThread,
951 render_process_id,
952 render_frame_id,
953 stream_id,
954 read_power_callback));
955 #endif
956 }
957
958 void MediaCaptureDevicesDispatcher::OnAudioStreamStopped(
959 int render_process_id,
960 int render_frame_id,
961 int stream_id) {
962 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
963 #if defined(AUDIO_STREAM_MONITORING)
964 BrowserThread::PostTask(
965 BrowserThread::UI,
966 FROM_HERE,
967 base::Bind(&StopAudioStreamMonitoringOnUIThread,
968 render_process_id,
969 render_frame_id,
970 stream_id));
971 #endif
972 }
973
897 void MediaCaptureDevicesDispatcher::OnCreatingAudioStream( 974 void MediaCaptureDevicesDispatcher::OnCreatingAudioStream(
898 int render_process_id, 975 int render_process_id,
899 int render_frame_id) { 976 int render_frame_id) {
900 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 977 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
901 BrowserThread::PostTask( 978 BrowserThread::PostTask(
902 BrowserThread::UI, FROM_HERE, 979 BrowserThread::UI, FROM_HERE,
903 base::Bind( 980 base::Bind(
904 &MediaCaptureDevicesDispatcher::OnCreatingAudioStreamOnUIThread, 981 &MediaCaptureDevicesDispatcher::OnCreatingAudioStreamOnUIThread,
905 base::Unretained(this), render_process_id, render_frame_id)); 982 base::Unretained(this), render_process_id, render_frame_id));
906 } 983 }
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
985 stream_type, 1062 stream_type,
986 state)); 1063 state));
987 } 1064 }
988 1065
989 void MediaCaptureDevicesDispatcher::OnCreatingAudioStreamOnUIThread( 1066 void MediaCaptureDevicesDispatcher::OnCreatingAudioStreamOnUIThread(
990 int render_process_id, 1067 int render_process_id,
991 int render_frame_id) { 1068 int render_frame_id) {
992 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 1069 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
993 FOR_EACH_OBSERVER(Observer, observers_, 1070 FOR_EACH_OBSERVER(Observer, observers_,
994 OnCreatingAudioStream(render_process_id, render_frame_id)); 1071 OnCreatingAudioStream(render_process_id, render_frame_id));
1072 #if defined(AUDIO_STREAM_MONITORING)
1073 content::WebContents* const web_contents =
1074 content::WebContents::FromRenderFrameHost(
1075 content::RenderFrameHost::FromID(render_process_id, render_frame_id));
1076 if (web_contents) {
1077 // Note: Calling CreateForWebContents() multiple times is valid (see usage
1078 // info for content::WebContentsUserData).
1079 AudioStreamMonitor::CreateForWebContents(web_contents);
1080 }
1081 #endif
995 } 1082 }
996 1083
997 bool MediaCaptureDevicesDispatcher::IsDesktopCaptureInProgress() { 1084 bool MediaCaptureDevicesDispatcher::IsDesktopCaptureInProgress() {
998 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 1085 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
999 return desktop_capture_sessions_.size() > 0; 1086 return desktop_capture_sessions_.size() > 0;
1000 } 1087 }
1001 1088
1089
1002 void MediaCaptureDevicesDispatcher::SetTestAudioCaptureDevices( 1090 void MediaCaptureDevicesDispatcher::SetTestAudioCaptureDevices(
1003 const MediaStreamDevices& devices) { 1091 const MediaStreamDevices& devices) {
1004 test_audio_devices_ = devices; 1092 test_audio_devices_ = devices;
1005 } 1093 }
1006 1094
1007 void MediaCaptureDevicesDispatcher::SetTestVideoCaptureDevices( 1095 void MediaCaptureDevicesDispatcher::SetTestVideoCaptureDevices(
1008 const MediaStreamDevices& devices) { 1096 const MediaStreamDevices& devices) {
1009 test_video_devices_ = devices; 1097 test_video_devices_ = devices;
1010 } 1098 }
OLDNEW
« no previous file with comments | « chrome/browser/media/media_capture_devices_dispatcher.h ('k') | chrome/browser/ui/tabs/tab_utils.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698