1 // Copyright (c) 2011 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 #ifndef CONTENT_PUBLIC_COMMON_WEBPLUGININFO_H_
6 #define CONTENT_PUBLIC_COMMON_WEBPLUGININFO_H_
11 #include "base/basictypes.h"
12 #include "base/files/file_path.h"
13 #include "content/common/content_export.h"
21 struct CONTENT_EXPORT WebPluginMimeType
{
23 // A constructor for the common case of a single file extension and an ASCII
25 WebPluginMimeType(const std::string
& m
,
27 const std::string
& d
);
30 // The name of the mime type (e.g., "application/x-shockwave-flash").
31 std::string mime_type
;
33 // A list of all the file extensions for this mime type.
34 std::vector
<std::string
> file_extensions
;
36 // Description of the mime type.
37 base::string16 description
;
39 // Extra parameters to include when instantiating the plugin.
40 std::vector
<base::string16
> additional_param_names
;
41 std::vector
<base::string16
> additional_param_values
;
44 // Describes an available NPAPI or Pepper plugin.
45 struct CONTENT_EXPORT WebPluginInfo
{
48 PLUGIN_TYPE_PEPPER_IN_PROCESS
,
49 PLUGIN_TYPE_PEPPER_OUT_OF_PROCESS
,
50 PLUGIN_TYPE_BROWSER_PLUGIN
54 WebPluginInfo(const WebPluginInfo
& rhs
);
56 WebPluginInfo
& operator=(const WebPluginInfo
& rhs
);
58 // Special constructor only used during unit testing:
59 WebPluginInfo(const base::string16
& fake_name
,
60 const base::FilePath
& fake_path
,
61 const base::string16
& fake_version
,
62 const base::string16
& fake_desc
);
64 bool is_pepper_plugin() const {
65 return ((type
== PLUGIN_TYPE_PEPPER_IN_PROCESS
) ||
66 (type
== PLUGIN_TYPE_PEPPER_OUT_OF_PROCESS
));
69 // Parse a version string as used by a plugin. This method is more lenient
70 // in accepting weird version strings than base::Version::GetFromString()
71 static void CreateVersionFromString(const base::string16
& version_string
,
72 base::Version
* parsed_version
);
74 // The name of the plugin (i.e. Flash).
77 // The path to the plugin file (DLL/bundle/library).
80 // The version number of the plugin file (may be OS-specific)
81 base::string16 version
;
83 // A description of the plugin that we get from its version info.
86 // A list of all the mime types that this plugin supports.
87 std::vector
<WebPluginMimeType
> mime_types
;
89 // Plugin type. See the PluginType enum.
92 // When type is PLUGIN_TYPE_PEPPER_* this indicates the permission bits.
93 int32 pepper_permissions
;
96 } // namespace content
98 #endif // CONTENT_PUBLIC_COMMON_WEBPLUGININFO_H_