OLD | NEW |
---|---|
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/render_frame_impl.h" | 5 #include "content/renderer/render_frame_impl.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
11 #include "base/command_line.h" | 11 #include "base/command_line.h" |
12 #include "base/debug/alias.h" | 12 #include "base/debug/alias.h" |
13 #include "base/debug/asan_invalid_access.h" | 13 #include "base/debug/asan_invalid_access.h" |
14 #include "base/debug/dump_without_crashing.h" | 14 #include "base/debug/dump_without_crashing.h" |
15 #include "base/i18n/char_iterator.h" | 15 #include "base/i18n/char_iterator.h" |
16 #include "base/metrics/histogram.h" | 16 #include "base/metrics/histogram.h" |
17 #include "base/process/process.h" | 17 #include "base/process/process.h" |
18 #include "base/strings/string16.h" | 18 #include "base/strings/string16.h" |
19 #include "base/strings/utf_string_conversions.h" | 19 #include "base/strings/utf_string_conversions.h" |
20 #include "base/thread_task_runner_handle.h" | |
20 #include "base/time/time.h" | 21 #include "base/time/time.h" |
21 #include "cc/base/switches.h" | 22 #include "cc/base/switches.h" |
22 #include "components/scheduler/renderer/renderer_scheduler.h" | 23 #include "components/scheduler/renderer/renderer_scheduler.h" |
23 #include "content/child/appcache/appcache_dispatcher.h" | 24 #include "content/child/appcache/appcache_dispatcher.h" |
24 #include "content/child/permissions/permission_dispatcher.h" | 25 #include "content/child/permissions/permission_dispatcher.h" |
25 #include "content/child/plugin_messages.h" | 26 #include "content/child/plugin_messages.h" |
26 #include "content/child/quota_dispatcher.h" | 27 #include "content/child/quota_dispatcher.h" |
27 #include "content/child/request_extra_data.h" | 28 #include "content/child/request_extra_data.h" |
28 #include "content/child/service_worker/service_worker_handle_reference.h" | 29 #include "content/child/service_worker/service_worker_handle_reference.h" |
29 #include "content/child/service_worker/service_worker_network_provider.h" | 30 #include "content/child/service_worker/service_worker_network_provider.h" |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
71 #include "content/renderer/dom_automation_controller.h" | 72 #include "content/renderer/dom_automation_controller.h" |
72 #include "content/renderer/external_popup_menu.h" | 73 #include "content/renderer/external_popup_menu.h" |
73 #include "content/renderer/geolocation_dispatcher.h" | 74 #include "content/renderer/geolocation_dispatcher.h" |
74 #include "content/renderer/gpu/gpu_benchmarking_extension.h" | 75 #include "content/renderer/gpu/gpu_benchmarking_extension.h" |
75 #include "content/renderer/history_controller.h" | 76 #include "content/renderer/history_controller.h" |
76 #include "content/renderer/history_serialization.h" | 77 #include "content/renderer/history_serialization.h" |
77 #include "content/renderer/image_downloader/image_downloader_impl.h" | 78 #include "content/renderer/image_downloader/image_downloader_impl.h" |
78 #include "content/renderer/ime_event_guard.h" | 79 #include "content/renderer/ime_event_guard.h" |
79 #include "content/renderer/internal_document_state_data.h" | 80 #include "content/renderer/internal_document_state_data.h" |
80 #include "content/renderer/manifest/manifest_manager.h" | 81 #include "content/renderer/manifest/manifest_manager.h" |
82 #include "content/renderer/media/audio_device_factory.h" | |
81 #include "content/renderer/media/audio_renderer_mixer_manager.h" | 83 #include "content/renderer/media/audio_renderer_mixer_manager.h" |
82 #include "content/renderer/media/crypto/render_cdm_factory.h" | 84 #include "content/renderer/media/crypto/render_cdm_factory.h" |
83 #include "content/renderer/media/media_permission_dispatcher_impl.h" | 85 #include "content/renderer/media/media_permission_dispatcher_impl.h" |
84 #include "content/renderer/media/media_permission_dispatcher_proxy.h" | 86 #include "content/renderer/media/media_permission_dispatcher_proxy.h" |
85 #include "content/renderer/media/media_stream_dispatcher.h" | 87 #include "content/renderer/media/media_stream_dispatcher.h" |
86 #include "content/renderer/media/media_stream_renderer_factory_impl.h" | 88 #include "content/renderer/media/media_stream_renderer_factory_impl.h" |
87 #include "content/renderer/media/midi_dispatcher.h" | 89 #include "content/renderer/media/midi_dispatcher.h" |
88 #include "content/renderer/media/render_media_log.h" | 90 #include "content/renderer/media/render_media_log.h" |
89 #include "content/renderer/media/user_media_client_impl.h" | 91 #include "content/renderer/media/user_media_client_impl.h" |
90 #include "content/renderer/media/webmediaplayer_ms.h" | 92 #include "content/renderer/media/webmediaplayer_ms.h" |
(...skipping 13 matching lines...) Expand all Loading... | |
104 #include "content/renderer/renderer_webapplicationcachehost_impl.h" | 106 #include "content/renderer/renderer_webapplicationcachehost_impl.h" |
105 #include "content/renderer/renderer_webcolorchooser_impl.h" | 107 #include "content/renderer/renderer_webcolorchooser_impl.h" |
106 #include "content/renderer/savable_resources.h" | 108 #include "content/renderer/savable_resources.h" |
107 #include "content/renderer/screen_orientation/screen_orientation_dispatcher.h" | 109 #include "content/renderer/screen_orientation/screen_orientation_dispatcher.h" |
108 #include "content/renderer/shared_worker_repository.h" | 110 #include "content/renderer/shared_worker_repository.h" |
109 #include "content/renderer/skia_benchmarking_extension.h" | 111 #include "content/renderer/skia_benchmarking_extension.h" |
110 #include "content/renderer/stats_collection_controller.h" | 112 #include "content/renderer/stats_collection_controller.h" |
111 #include "content/renderer/web_ui_extension.h" | 113 #include "content/renderer/web_ui_extension.h" |
112 #include "content/renderer/websharedworker_proxy.h" | 114 #include "content/renderer/websharedworker_proxy.h" |
113 #include "gin/modules/module_registry.h" | 115 #include "gin/modules/module_registry.h" |
116 #include "media/audio/audio_output_device.h" | |
114 #include "media/base/audio_renderer_mixer_input.h" | 117 #include "media/base/audio_renderer_mixer_input.h" |
115 #include "media/base/media_log.h" | 118 #include "media/base/media_log.h" |
116 #include "media/blink/webencryptedmediaclient_impl.h" | 119 #include "media/blink/webencryptedmediaclient_impl.h" |
117 #include "media/blink/webmediaplayer_impl.h" | 120 #include "media/blink/webmediaplayer_impl.h" |
118 #include "media/renderers/gpu_video_accelerator_factories.h" | 121 #include "media/renderers/gpu_video_accelerator_factories.h" |
119 #include "mojo/common/url_type_converters.h" | 122 #include "mojo/common/url_type_converters.h" |
120 #include "net/base/data_url.h" | 123 #include "net/base/data_url.h" |
121 #include "net/base/net_errors.h" | 124 #include "net/base/net_errors.h" |
122 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" | 125 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" |
123 #include "net/http/http_util.h" | 126 #include "net/http/http_util.h" |
(...skipping 5162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5286 DCHECK(mojo_shell_); | 5289 DCHECK(mojo_shell_); |
5287 mojo::ServiceProviderPtr service_provider; | 5290 mojo::ServiceProviderPtr service_provider; |
5288 mojo::URLRequestPtr request(mojo::URLRequest::New()); | 5291 mojo::URLRequestPtr request(mojo::URLRequest::New()); |
5289 request->url = mojo::String::From(url); | 5292 request->url = mojo::String::From(url); |
5290 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider), | 5293 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider), |
5291 nullptr, nullptr, | 5294 nullptr, nullptr, |
5292 base::Bind(&OnGotContentHandlerID)); | 5295 base::Bind(&OnGotContentHandlerID)); |
5293 return service_provider.Pass(); | 5296 return service_provider.Pass(); |
5294 } | 5297 } |
5295 | 5298 |
5299 void RenderFrameImpl::checkIfAudioSinkExistsAndIsAuthorized( | |
5300 const blink::WebString& sink_id, | |
5301 const blink::WebSecurityOrigin& security_origin, | |
5302 blink::WebSetSinkIdCallbacks* web_callback) { | |
5303 base::ThreadTaskRunnerHandle::Get()->PostTask( | |
5304 FROM_HERE, | |
5305 base::Bind(&RenderFrameImpl::DoCheckIfAudioSinkExistsAndIsAuthorized, | |
Peter Beverloo
2015/11/09 20:05:06
There is a really subtle case in which this PostTa
Guido Urdaneta
2015/11/10 15:36:51
I changed the implementation so that it is made as
| |
5306 weak_factory_.GetWeakPtr(), sink_id.utf8(), | |
5307 static_cast<url::Origin>(security_origin), | |
5308 media::ConvertToSwitchOutputDeviceCB(web_callback))); | |
5309 } | |
5310 | |
5311 void RenderFrameImpl::DoCheckIfAudioSinkExistsAndIsAuthorized( | |
5312 const std::string& device_id, | |
5313 const url::Origin& security_origin, | |
5314 const media::SwitchOutputDeviceCB& callback) { | |
5315 scoped_refptr<media::AudioOutputDevice> device = | |
5316 AudioDeviceFactory::NewOutputDevice(routing_id_, 0, device_id, | |
5317 security_origin); | |
5318 media::OutputDeviceStatus status = device->GetDeviceStatus(); | |
5319 device->Stop(); | |
5320 callback.Run(status); | |
5321 } | |
5322 | |
5296 } // namespace content | 5323 } // namespace content |
OLD | NEW |