pepper_plugin_info.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
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_PUBLIC_COMMON_PEPPER_PLUGIN_INFO_H_
6#define CONTENT_PUBLIC_COMMON_PEPPER_PLUGIN_INFO_H_
7
8#include <string>
9#include <vector>
10
11#include "base/files/file_path.h"
12#include "content/common/content_export.h"
13#include "webkit/plugins/ppapi/plugin_module.h"
14#include "webkit/plugins/webplugininfo.h"
15
16namespace content {
17
18struct CONTENT_EXPORT PepperPluginInfo {
19  PepperPluginInfo();
20  ~PepperPluginInfo();
21
22  webkit::WebPluginInfo ToWebPluginInfo() const;
23
24  // Indicates internal plugins for which there's not actually a library.
25  // These plugins are implemented in the Chrome binary using a separate set
26  // of entry points (see internal_entry_points below).
27  // Defaults to false.
28  bool is_internal;
29
30  // True when this plugin should be run out of process. Defaults to false.
31  bool is_out_of_process;
32
33  // True when an out-of-process plugin should also be run within sandbox.
34  // Defaults to true.
35  bool is_sandboxed;
36
37  base::FilePath path;  // Internal plugins have "internal-[name]" as path.
38  std::string name;
39  std::string description;
40  std::string version;
41  std::vector<webkit::WebPluginMimeType> mime_types;
42
43  // When is_internal is set, this contains the function pointers to the
44  // entry points for the internal plugins.
45  webkit::ppapi::PluginModule::EntryPoints internal_entry_points;
46
47  // Permission bits from ppapi::Permission.
48  uint32 permissions;
49};
50
51}  // namespace content
52
53#endif  // CONTENT_PUBLIC_COMMON_PEPPER_PLUGIN_INFO_H_
54