OLD | NEW |
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 "content/renderer/pepper/pepper_media_device_manager.h" | 5 #include "content/renderer/pepper/pepper_media_device_manager.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "content/renderer/media/media_stream_dispatcher.h" | 8 #include "content/renderer/media/media_stream_dispatcher.h" |
9 #include "content/renderer/render_frame_impl.h" | 9 #include "content/renderer/render_frame_impl.h" |
10 #include "ppapi/shared_impl/ppb_device_ref_shared.h" | 10 #include "ppapi/shared_impl/ppb_device_ref_shared.h" |
11 | 11 |
12 namespace content { | 12 namespace content { |
13 | 13 |
14 namespace { | 14 namespace { |
15 | 15 |
16 ppapi::DeviceRefData FromStreamDeviceInfo(const StreamDeviceInfo& info) { | 16 ppapi::DeviceRefData FromStreamDeviceInfo(const StreamDeviceInfo& info) { |
17 ppapi::DeviceRefData data; | 17 ppapi::DeviceRefData data; |
18 data.id = info.device.id; | 18 data.id = info.device.id; |
19 // Some Flash content can't handle an empty string, so stick a space in to | 19 // Some Flash content can't handle an empty string, so stick a space in to |
20 // make them happy. See crbug.com/408404. | 20 // make them happy. See crbug.com/408404. |
21 data.name = info.device.name.empty() ? std::string(" ") : info.device.name; | 21 data.name = info.device.name.empty() ? std::string(" ") : info.device.name; |
22 data.type = PepperMediaDeviceManager::FromMediaStreamType(info.device.type); | 22 data.type = PepperMediaDeviceManager::FromMediaStreamType(info.device.type); |
23 return data; | 23 return data; |
24 } | 24 } |
25 | 25 |
26 } // namespace | 26 } // namespace |
27 | 27 |
28 PepperMediaDeviceManager* PepperMediaDeviceManager::GetForRenderFrame( | 28 base::WeakPtr<PepperMediaDeviceManager> |
| 29 PepperMediaDeviceManager::GetForRenderFrame( |
29 RenderFrame* render_frame) { | 30 RenderFrame* render_frame) { |
30 PepperMediaDeviceManager* handler = | 31 PepperMediaDeviceManager* handler = |
31 PepperMediaDeviceManager::Get(render_frame); | 32 PepperMediaDeviceManager::Get(render_frame); |
32 if (!handler) | 33 if (!handler) |
33 handler = new PepperMediaDeviceManager(render_frame); | 34 handler = new PepperMediaDeviceManager(render_frame); |
34 return handler; | 35 return handler->AsWeakPtr(); |
35 } | 36 } |
36 | 37 |
37 PepperMediaDeviceManager::PepperMediaDeviceManager(RenderFrame* render_frame) | 38 PepperMediaDeviceManager::PepperMediaDeviceManager(RenderFrame* render_frame) |
38 : RenderFrameObserver(render_frame), | 39 : RenderFrameObserver(render_frame), |
39 RenderFrameObserverTracker<PepperMediaDeviceManager>(render_frame), | 40 RenderFrameObserverTracker<PepperMediaDeviceManager>(render_frame), |
40 next_id_(1) {} | 41 next_id_(1) {} |
41 | 42 |
42 PepperMediaDeviceManager::~PepperMediaDeviceManager() { | 43 PepperMediaDeviceManager::~PepperMediaDeviceManager() { |
43 DCHECK(enumerate_callbacks_.empty()); | 44 DCHECK(enumerate_callbacks_.empty()); |
44 DCHECK(open_callbacks_.empty()); | 45 DCHECK(open_callbacks_.empty()); |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
247 MediaStreamDispatcher* PepperMediaDeviceManager::GetMediaStreamDispatcher() | 248 MediaStreamDispatcher* PepperMediaDeviceManager::GetMediaStreamDispatcher() |
248 const { | 249 const { |
249 DCHECK(render_frame()); | 250 DCHECK(render_frame()); |
250 MediaStreamDispatcher* const dispatcher = | 251 MediaStreamDispatcher* const dispatcher = |
251 static_cast<RenderFrameImpl*>(render_frame())->GetMediaStreamDispatcher(); | 252 static_cast<RenderFrameImpl*>(render_frame())->GetMediaStreamDispatcher(); |
252 DCHECK(dispatcher); | 253 DCHECK(dispatcher); |
253 return dispatcher; | 254 return dispatcher; |
254 } | 255 } |
255 | 256 |
256 } // namespace content | 257 } // namespace content |
OLD | NEW |