OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "webkit/glue/plugins/plugin_group.h" | 5 #include "webkit/glue/plugins/plugin_group.h" |
6 | 6 |
7 #include "base/linked_ptr.h" | 7 #include "base/linked_ptr.h" |
8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
9 #include "base/sys_string_conversions.h" | 9 #include "base/sys_string_conversions.h" |
10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 version_(Version::GetVersionFromString("0")) { | 102 version_(Version::GetVersionFromString("0")) { |
103 } | 103 } |
104 | 104 |
105 void PluginGroup::InitFrom(const PluginGroup& other) { | 105 void PluginGroup::InitFrom(const PluginGroup& other) { |
106 identifier_ = other.identifier_; | 106 identifier_ = other.identifier_; |
107 group_name_ = other.group_name_; | 107 group_name_ = other.group_name_; |
108 name_matcher_ = other.name_matcher_; | 108 name_matcher_ = other.name_matcher_; |
109 description_ = other.description_; | 109 description_ = other.description_; |
110 update_url_ = other.update_url_; | 110 update_url_ = other.update_url_; |
111 enabled_ = other.enabled_; | 111 enabled_ = other.enabled_; |
112 for (size_t i = 0; i < other.version_ranges_.size(); ++i) | 112 version_ranges_ = other.version_ranges_; |
113 version_ranges_.push_back(other.version_ranges_[i]); | 113 version_.reset(other.version_->Clone()); |
114 DCHECK_EQ(other.web_plugin_infos_.size(), other.web_plugin_positions_.size()); | 114 web_plugin_infos_ = other.web_plugin_infos_; |
115 for (size_t i = 0; i < other.web_plugin_infos_.size(); ++i) | 115 web_plugin_positions_ = other.web_plugin_positions_; |
116 AddPlugin(other.web_plugin_infos_[i], other.web_plugin_positions_[i]); | |
117 if (!version_.get()) | |
118 version_.reset(Version::GetVersionFromString("0")); | |
119 } | 116 } |
120 | 117 |
121 PluginGroup::PluginGroup(const PluginGroup& other) { | 118 PluginGroup::PluginGroup(const PluginGroup& other) { |
122 InitFrom(other); | 119 InitFrom(other); |
123 } | 120 } |
124 | 121 |
125 PluginGroup& PluginGroup::operator=(const PluginGroup& other) { | 122 PluginGroup& PluginGroup::operator=(const PluginGroup& other) { |
126 version_ranges_.clear(); | |
127 InitFrom(other); | 123 InitFrom(other); |
128 return *this; | 124 return *this; |
129 } | 125 } |
130 | 126 |
131 /*static*/ | 127 /*static*/ |
132 PluginGroup* PluginGroup::FromPluginGroupDefinition( | 128 PluginGroup* PluginGroup::FromPluginGroupDefinition( |
133 const PluginGroupDefinition& definition) { | 129 const PluginGroupDefinition& definition) { |
134 PluginGroup* group = new PluginGroup(ASCIIToUTF16(definition.name), | 130 PluginGroup* group = new PluginGroup(ASCIIToUTF16(definition.name), |
135 ASCIIToUTF16(definition.name_matcher), | 131 ASCIIToUTF16(definition.name_matcher), |
136 definition.update_url, | 132 definition.update_url, |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
245 plugin.path.value())) { | 241 plugin.path.value())) { |
246 return; | 242 return; |
247 } | 243 } |
248 } | 244 } |
249 web_plugin_infos_.push_back(plugin); | 245 web_plugin_infos_.push_back(plugin); |
250 // The position of this plugin relative to the global list of plugins. | 246 // The position of this plugin relative to the global list of plugins. |
251 web_plugin_positions_.push_back(position); | 247 web_plugin_positions_.push_back(position); |
252 UpdateActivePlugin(plugin); | 248 UpdateActivePlugin(plugin); |
253 } | 249 } |
254 | 250 |
| 251 bool PluginGroup::IsEmpty() const { |
| 252 return web_plugin_infos_.empty(); |
| 253 } |
| 254 |
255 string16 PluginGroup::GetGroupName() const { | 255 string16 PluginGroup::GetGroupName() const { |
256 if (!group_name_.empty()) | 256 if (!group_name_.empty()) |
257 return group_name_; | 257 return group_name_; |
258 DCHECK_EQ(1u, web_plugin_infos_.size()); | 258 DCHECK_EQ(1u, web_plugin_infos_.size()); |
259 FilePath::StringType path = | 259 FilePath::StringType path = |
260 web_plugin_infos_[0].path.BaseName().RemoveExtension().value(); | 260 web_plugin_infos_[0].path.BaseName().RemoveExtension().value(); |
261 #if defined(OS_POSIX) | 261 #if defined(OS_POSIX) |
262 return UTF8ToUTF16(path); | 262 return UTF8ToUTF16(path); |
263 #elif defined(OS_WIN) | 263 #elif defined(OS_WIN) |
264 return WideToUTF16(path); | 264 return WideToUTF16(path); |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
398 NPAPI::PluginList::Singleton()->EnablePlugin(it->path); | 398 NPAPI::PluginList::Singleton()->EnablePlugin(it->path); |
399 it->enabled = true; | 399 it->enabled = true; |
400 enabled_plugin_exists = true; | 400 enabled_plugin_exists = true; |
401 } else { | 401 } else { |
402 it->enabled = false; | 402 it->enabled = false; |
403 NPAPI::PluginList::Singleton()->DisablePlugin(it->path); | 403 NPAPI::PluginList::Singleton()->DisablePlugin(it->path); |
404 } | 404 } |
405 } | 405 } |
406 enabled_ = enabled_plugin_exists; | 406 enabled_ = enabled_plugin_exists; |
407 } | 407 } |
OLD | NEW |