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
3 // found in the LICENSE file.
5 #include "content/browser/pepper_flash_settings_helper_impl.h"
7 #include "base/files/file_path.h"
8 #include "content/browser/plugin_service_impl.h"
9 #include "content/public/browser/browser_thread.h"
10 #include "ipc/ipc_channel_handle.h"
15 scoped_refptr
<PepperFlashSettingsHelper
> PepperFlashSettingsHelper::Create() {
16 return new PepperFlashSettingsHelperImpl();
19 PepperFlashSettingsHelperImpl::PepperFlashSettingsHelperImpl() {
22 PepperFlashSettingsHelperImpl::~PepperFlashSettingsHelperImpl() {
25 void PepperFlashSettingsHelperImpl::OpenChannelToBroker(
26 const base::FilePath
& path
,
27 const OpenChannelCallback
& callback
) {
28 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO
));
30 if (callback
.is_null())
32 if (!callback_
.is_null())
33 callback
.Run(false, IPC::ChannelHandle());
35 // Balanced in OnPpapiChannelOpened(). We need to keep this object around
40 PluginServiceImpl
* plugin_service
= PluginServiceImpl::GetInstance();
41 plugin_service
->OpenChannelToPpapiBroker(0, path
, this);
44 void PepperFlashSettingsHelperImpl::GetPpapiChannelInfo(
45 base::ProcessHandle
* renderer_handle
,
47 *renderer_handle
= base::kNullProcessHandle
;
51 void PepperFlashSettingsHelperImpl::OnPpapiChannelOpened(
52 const IPC::ChannelHandle
& channel_handle
,
53 base::ProcessId
/* plugin_pid */,
54 int /* plugin_child_id */) {
55 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO
));
56 DCHECK(!callback_
.is_null());
58 if (!channel_handle
.name
.empty())
59 callback_
.Run(true, channel_handle
);
61 callback_
.Run(false, IPC::ChannelHandle());
64 // Balance the AddRef() call in Initialize().
68 bool PepperFlashSettingsHelperImpl::OffTheRecord() {
72 } // namespace content