Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(122)

Side by Side Diff: webkit/plugins/npapi/plugin_group.cc

Issue 6350010: Put some plug-ins behind an infobar, where they have:... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/plugins/npapi/plugin_group.h" 5 #include "webkit/plugins/npapi/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"
11 #include "base/values.h" 11 #include "base/values.h"
12 #include "base/version.h" 12 #include "base/version.h"
13 #include "webkit/plugins/npapi/plugin_list.h" 13 #include "webkit/plugins/npapi/plugin_list.h"
14 #include "webkit/plugins/npapi/webplugininfo.h" 14 #include "webkit/plugins/npapi/webplugininfo.h"
15 15
16 namespace webkit { 16 namespace webkit {
17 namespace npapi { 17 namespace npapi {
18 18
19 const char* PluginGroup::kAdobeReaderGroupName = "Adobe Reader"; 19 const char* PluginGroup::kAdobeReaderGroupName = "Adobe Reader";
20 const char* PluginGroup::kAdobeReaderUpdateURL = "http://get.adobe.com/reader/"; 20 const char* PluginGroup::kAdobeReaderUpdateURL = "http://get.adobe.com/reader/";
21 const char* PluginGroup::kJavaGroupName = "Java";
22 const char* PluginGroup::kQuickTimeGroupName = "QuickTime";
23 const char* PluginGroup::kShockwaveGroupName = "Shockwave";
21 24
22 /*static*/ 25 /*static*/
23 std::set<string16>* PluginGroup::policy_disabled_plugin_patterns_; 26 std::set<string16>* PluginGroup::policy_disabled_plugin_patterns_;
24 27
25 /*static*/ 28 /*static*/
26 void PluginGroup::SetPolicyDisabledPluginPatterns( 29 void PluginGroup::SetPolicyDisabledPluginPatterns(
27 const std::set<string16>& set) { 30 const std::set<string16>& set) {
28 if (!policy_disabled_plugin_patterns_) 31 if (!policy_disabled_plugin_patterns_)
29 policy_disabled_plugin_patterns_ = new std::set<string16>(set); 32 policy_disabled_plugin_patterns_ = new std::set<string16>(set);
30 else 33 else
(...skipping 12 matching lines...) Expand all
43 return true; 46 return true;
44 ++pattern; 47 ++pattern;
45 } 48 }
46 49
47 return false; 50 return false;
48 } 51 }
49 52
50 VersionRange::VersionRange(VersionRangeDefinition definition) 53 VersionRange::VersionRange(VersionRangeDefinition definition)
51 : low_str(definition.version_matcher_low), 54 : low_str(definition.version_matcher_low),
52 high_str(definition.version_matcher_high), 55 high_str(definition.version_matcher_high),
53 min_str(definition.min_version) { 56 min_str(definition.min_version),
57 requires_authorization(definition.requires_authorization) {
54 if (!low_str.empty()) 58 if (!low_str.empty())
55 low.reset(Version::GetVersionFromString(low_str)); 59 low.reset(Version::GetVersionFromString(low_str));
56 if (!high_str.empty()) 60 if (!high_str.empty())
57 high.reset(Version::GetVersionFromString(high_str)); 61 high.reset(Version::GetVersionFromString(high_str));
58 if (!min_str.empty()) 62 if (!min_str.empty())
59 min.reset(Version::GetVersionFromString(min_str)); 63 min.reset(Version::GetVersionFromString(min_str));
60 } 64 }
61 65
62 VersionRange::VersionRange(const VersionRange& other) { 66 VersionRange::VersionRange(const VersionRange& other) {
63 InitFrom(other); 67 InitFrom(other);
64 } 68 }
65 69
66 VersionRange& VersionRange::operator=(const VersionRange& other) { 70 VersionRange& VersionRange::operator=(const VersionRange& other) {
67 InitFrom(other); 71 InitFrom(other);
68 return *this; 72 return *this;
69 } 73 }
70 74
71 VersionRange::~VersionRange() {} 75 VersionRange::~VersionRange() {}
72 76
73 void VersionRange::InitFrom(const VersionRange& other) { 77 void VersionRange::InitFrom(const VersionRange& other) {
74 low_str = other.low_str; 78 low_str = other.low_str;
75 high_str = other.high_str; 79 high_str = other.high_str;
76 min_str = other.min_str; 80 min_str = other.min_str;
77 low.reset(Version::GetVersionFromString(other.low_str)); 81 low.reset(Version::GetVersionFromString(other.low_str));
78 high.reset(Version::GetVersionFromString(other.high_str)); 82 high.reset(Version::GetVersionFromString(other.high_str));
79 min.reset(Version::GetVersionFromString(other.min_str)); 83 min.reset(Version::GetVersionFromString(other.min_str));
84 requires_authorization = other.requires_authorization;
80 } 85 }
81 86
82 PluginGroup::PluginGroup(const string16& group_name, 87 PluginGroup::PluginGroup(const string16& group_name,
83 const string16& name_matcher, 88 const string16& name_matcher,
84 const std::string& update_url, 89 const std::string& update_url,
85 const std::string& identifier) 90 const std::string& identifier)
86 : identifier_(identifier), 91 : identifier_(identifier),
87 group_name_(group_name), 92 group_name_(group_name),
88 name_matcher_(name_matcher), 93 name_matcher_(name_matcher),
89 update_url_(update_url), 94 update_url_(update_url),
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 399
395 // Returns true if the latest version of this plugin group is vulnerable. 400 // Returns true if the latest version of this plugin group is vulnerable.
396 bool PluginGroup::IsVulnerable() const { 401 bool PluginGroup::IsVulnerable() const {
397 for (size_t i = 0; i < version_ranges_.size(); ++i) { 402 for (size_t i = 0; i < version_ranges_.size(); ++i) {
398 if (IsPluginOutdated(*version_, version_ranges_[i])) 403 if (IsPluginOutdated(*version_, version_ranges_[i]))
399 return true; 404 return true;
400 } 405 }
401 return false; 406 return false;
402 } 407 }
403 408
409 bool PluginGroup::RequiresAuthorization() const {
410 for (size_t i = 0; i < version_ranges_.size(); ++i) {
411 if (IsVersionInRange(*version_, version_ranges_[i]) &&
412 version_ranges_[i].requires_authorization)
413 return true;
414 }
415 return false;
416 }
417
404 bool PluginGroup::IsEmpty() const { 418 bool PluginGroup::IsEmpty() const {
405 return web_plugin_infos_.size() == 0; 419 return web_plugin_infos_.size() == 0;
406 } 420 }
407 421
408 void PluginGroup::DisableOutdatedPlugins() { 422 void PluginGroup::DisableOutdatedPlugins() {
409 bool first_enabled = true; 423 bool first_enabled = true;
410 424
411 for (size_t i = 0; i < web_plugin_infos_.size(); ++i) { 425 for (size_t i = 0; i < web_plugin_infos_.size(); ++i) {
412 scoped_ptr<Version> version( 426 scoped_ptr<Version> version(
413 CreateVersionFromString(web_plugin_infos_[i].version)); 427 CreateVersionFromString(web_plugin_infos_[i].version));
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
521 // Only changeable if not managed. 535 // Only changeable if not managed.
522 if (plugin->enabled & WebPluginInfo::MANAGED_MASK) 536 if (plugin->enabled & WebPluginInfo::MANAGED_MASK)
523 return false; 537 return false;
524 plugin->enabled = new_reason; 538 plugin->enabled = new_reason;
525 } 539 }
526 return true; 540 return true;
527 } 541 }
528 542
529 } // namespace npapi 543 } // namespace npapi
530 } // namespace webkit 544 } // namespace webkit
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698