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

Side by Side Diff: content/renderer/pepper/pepper_media_device_manager.cc

Issue 653243003: Pepper: Access PepperMediaDeviceManager through a WeakPtr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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 (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
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
OLDNEW
« no previous file with comments | « content/renderer/pepper/pepper_media_device_manager.h ('k') | content/renderer/pepper/pepper_platform_audio_input.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698