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.
4
5#ifndef CONTENT_BROWSER_PEPPER_FLASH_SETTINGS_HELPER_IMPL_H_
6#define CONTENT_BROWSER_PEPPER_FLASH_SETTINGS_HELPER_IMPL_H_
7
8#include "base/basictypes.h"
9#include "base/compiler_specific.h"
10#include "content/browser/ppapi_plugin_process_host.h"
11#include "content/public/browser/pepper_flash_settings_helper.h"
12
13namespace content {
14
15class CONTENT_EXPORT PepperFlashSettingsHelperImpl
16    : public PepperFlashSettingsHelper,
17      NON_EXPORTED_BASE(public PpapiPluginProcessHost::BrokerClient) {
18 public:
19  PepperFlashSettingsHelperImpl();
20
21  // PepperFlashSettingsHelper implementation.
22  virtual void OpenChannelToBroker(
23      const base::FilePath& path,
24      const OpenChannelCallback& callback) OVERRIDE;
25
26  // PpapiPluginProcessHost::BrokerClient implementation.
27  virtual void GetPpapiChannelInfo(base::ProcessHandle* renderer_handle,
28                                   int* renderer_id) OVERRIDE;
29  virtual void OnPpapiChannelOpened(const IPC::ChannelHandle& channel_handle,
30                                    base::ProcessId plugin_pid,
31                                    int plugin_child_id) OVERRIDE;
32  virtual bool OffTheRecord() OVERRIDE;
33
34 protected:
35  virtual ~PepperFlashSettingsHelperImpl();
36
37 private:
38  OpenChannelCallback callback_;
39  DISALLOW_COPY_AND_ASSIGN(PepperFlashSettingsHelperImpl);
40};
41
42}  // namespace content
43
44#endif  // CONTENT_BROWSER_PEPPER_FLASH_SETTINGS_HELPER_IMPL_H_
45