| Index: webkit/plugins/npapi/plugin_group.cc
|
| ===================================================================
|
| --- webkit/plugins/npapi/plugin_group.cc (revision 151240)
|
| +++ webkit/plugins/npapi/plugin_group.cc (working copy)
|
| @@ -7,6 +7,7 @@
|
| #include "webkit/plugins/npapi/plugin_group.h"
|
|
|
| #include "base/memory/linked_ptr.h"
|
| +#include "base/string_split.h"
|
| #include "base/string_util.h"
|
| #include "base/sys_string_conversions.h"
|
| #include "base/utf_string_conversions.h"
|
| @@ -100,6 +101,27 @@
|
| }
|
|
|
| /* static */
|
| +std::string PluginGroup::RemoveLeadingZerosFromVersionComponents(
|
| + const std::string& version) {
|
| + std::string no_leading_zeros_version;
|
| + std::vector<std::string> numbers;
|
| + base::SplitString(version, '.', &numbers);
|
| + for (size_t i = 0; i < numbers.size(); ++i) {
|
| + size_t n = numbers[i].size();
|
| + size_t j = 0;
|
| + while (j < n && numbers[i][j] == '0') {
|
| + ++j;
|
| + }
|
| + no_leading_zeros_version += (j < n) ? numbers[i].substr(j) : "0";
|
| + if (i != numbers.size() - 1) {
|
| + no_leading_zeros_version += ".";
|
| + }
|
| + }
|
| +
|
| + return no_leading_zeros_version;
|
| +}
|
| +
|
| +/* static */
|
| void PluginGroup::CreateVersionFromString(const string16& version_string,
|
| Version* parsed_version) {
|
| // Remove spaces and ')' from the version string,
|
| @@ -112,6 +134,9 @@
|
| std::replace(version.begin(), version.end(), '(', '.');
|
| std::replace(version.begin(), version.end(), '_', '.');
|
|
|
| + // Remove leading zeros from each of the version components.
|
| + version = RemoveLeadingZerosFromVersionComponents(version);
|
| +
|
| *parsed_version = Version(version);
|
| }
|
|
|
|
|