Index: webkit/glue/plugins/plugin_group.h |
diff --git a/webkit/glue/plugins/plugin_group.h b/webkit/glue/plugins/plugin_group.h |
index 228143757167ba035e05902fdda253e07dfe3b7e..a2d1aafe1d4ec4ef5512b4f40ebb2838d96b129d 100644 |
--- a/webkit/glue/plugins/plugin_group.h |
+++ b/webkit/glue/plugins/plugin_group.h |
@@ -8,6 +8,7 @@ |
#include <map> |
#include <set> |
+#include <string> |
#include <vector> |
#include "base/gtest_prod_util.h" |
@@ -22,9 +23,9 @@ struct WebPluginInfo; |
namespace NPAPI { |
class PluginList; |
}; |
- |
-template <typename T> |
-class linked_ptr; |
+namespace plugin_test_internal { |
+class PluginExceptionsTableModelTest; |
+} |
// Hard-coded definitions of plugin groups. |
struct PluginGroupDefinition { |
@@ -51,23 +52,11 @@ class PluginGroup { |
static const char* kAdobeReader8GroupName; |
static const char* kAdobeReader9GroupName; |
- typedef std::map<std::string, linked_ptr<PluginGroup> > PluginMap; |
- |
- // Creates a PluginGroup from a PluginGroupDefinition. |
- static PluginGroup* FromPluginGroupDefinition( |
- const PluginGroupDefinition& definition); |
+ PluginGroup(const PluginGroup& other); |
~PluginGroup(); |
- // Creates a PluginGroup from a WebPluginInfo -- when no hard-coded |
- // definition is found. |
- static PluginGroup* FromWebPluginInfo(const WebPluginInfo& wpi); |
- |
- // Find a plugin group matching |info| in the list of hardcoded plugins and |
- // returns a copy of it if found, or a new group matching exactly this plugin |
- // otherwise. |
- // The caller should take ownership of the return PluginGroup. |
- static PluginGroup* CopyOrCreatePluginGroup(const WebPluginInfo& info); |
+ PluginGroup& operator=(const PluginGroup& other); |
// Configures the set of plugin name patterns for disabling plugins via |
// enterprise configuration management. |
@@ -81,19 +70,6 @@ class PluginGroup { |
// the lookup key. |
static bool IsPluginPathDisabledByPolicy(const FilePath& plugin_path); |
- // Find the PluginGroup matching a Plugin in a list of plugin groups. Returns |
- // NULL if no matching PluginGroup is found. |
- static PluginGroup* FindGroupMatchingPlugin( |
- const std::map<std::string, linked_ptr<PluginGroup> >& plugin_groups, |
- const WebPluginInfo& plugin); |
- |
- // Creates a copy of this plugin group. |
- PluginGroup* Copy() { |
- return new PluginGroup(group_name_, name_matcher_, version_range_low_str_, |
- version_range_high_str_, min_version_str_, |
- update_url_, identifier_); |
- } |
- |
// Returns true if the given plugin matches this group. |
bool Match(const WebPluginInfo& plugin) const; |
@@ -137,10 +113,28 @@ class PluginGroup { |
void DisableOutdatedPlugins(); |
private: |
- FRIEND_TEST_ALL_PREFIXES(PluginGroupTest, PluginGroupDefinition); |
+ typedef std::map<std::string, PluginGroup*> PluginMap; |
+ |
+ friend class NPAPI::PluginList; |
+ friend class PluginGroupTest; |
+ friend class TableModelArrayControllerTest; |
+ friend class plugin_test_internal::PluginExceptionsTableModelTest; |
- static const PluginGroupDefinition* GetPluginGroupDefinitions(); |
- static size_t GetPluginGroupDefinitionsSize(); |
+ // Generates the (short) identifier string for the given plugin. |
+ static std::string GetIdentifier(const WebPluginInfo& wpi); |
+ |
+ // Generates the long identifier (based on the full file path) for the given |
+ // plugin, to be called when the short identifier is not unique. |
+ static std::string GetLongIdentifier(const WebPluginInfo& wpi); |
+ |
+ // Creates a PluginGroup from a PluginGroupDefinition. The caller takes |
+ // ownership of the created PluginGroup. |
+ static PluginGroup* FromPluginGroupDefinition( |
+ const PluginGroupDefinition& definition); |
+ |
+ // Creates a PluginGroup from a WebPluginInfo. The caller takes ownership of |
+ // the created PluginGroup. |
+ static PluginGroup* FromWebPluginInfo(const WebPluginInfo& wpi); |
PluginGroup(const string16& group_name, |
const string16& name_matcher, |
@@ -150,6 +144,8 @@ class PluginGroup { |
const std::string& update_url, |
const std::string& identifier); |
+ void InitFrom(const PluginGroup& other); |
+ |
Version* CreateVersionFromString(const string16& version_string); |
// Set the description and version for this plugin group from the |
@@ -177,8 +173,6 @@ class PluginGroup { |
scoped_ptr<Version> version_; |
std::vector<WebPluginInfo> web_plugin_infos_; |
std::vector<int> web_plugin_positions_; |
- |
- DISALLOW_COPY_AND_ASSIGN(PluginGroup); |
}; |
#endif // WEBKIT_GLUE_PLUGINS_PLUGIN_GROUP_H_ |