OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/plugin_finder.h" | 5 #include "chrome/browser/plugin_finder.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/json/json_reader.h" | 8 #include "base/json/json_reader.h" |
9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 plugin_it.HasNext(); plugin_it.Advance()) { | 76 plugin_it.HasNext(); plugin_it.Advance()) { |
77 const DictionaryValue* plugin = NULL; | 77 const DictionaryValue* plugin = NULL; |
78 if (!plugin_it.value().GetAsDictionary(&plugin)) { | 78 if (!plugin_it.value().GetAsDictionary(&plugin)) { |
79 NOTREACHED(); | 79 NOTREACHED(); |
80 continue; | 80 continue; |
81 } | 81 } |
82 std::string language_str; | 82 std::string language_str; |
83 bool success = plugin->GetString("lang", &language_str); | 83 bool success = plugin->GetString("lang", &language_str); |
84 if (language_str != language) | 84 if (language_str != language) |
85 continue; | 85 continue; |
86 ListValue* mime_types = NULL; | 86 const ListValue* mime_types = NULL; |
87 plugin->GetList("mime_types", &mime_types); | 87 plugin->GetList("mime_types", &mime_types); |
88 DCHECK(success); | 88 DCHECK(success); |
89 for (ListValue::const_iterator mime_type_it = mime_types->begin(); | 89 for (ListValue::const_iterator mime_type_it = mime_types->begin(); |
90 mime_type_it != mime_types->end(); ++mime_type_it) { | 90 mime_type_it != mime_types->end(); ++mime_type_it) { |
91 std::string mime_type_str; | 91 std::string mime_type_str; |
92 success = (*mime_type_it)->GetAsString(&mime_type_str); | 92 success = (*mime_type_it)->GetAsString(&mime_type_str); |
93 DCHECK(success); | 93 DCHECK(success); |
94 if (mime_type_str == mime_type) { | 94 if (mime_type_str == mime_type) { |
95 std::string identifier = plugin_it.key(); | 95 std::string identifier = plugin_it.key(); |
96 std::map<std::string, PluginInstaller*>::const_iterator installer = | 96 std::map<std::string, PluginInstaller*>::const_iterator installer = |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 success = plugin_dict->GetString("name", &name); | 128 success = plugin_dict->GetString("name", &name); |
129 DCHECK(success); | 129 DCHECK(success); |
130 bool display_url = false; | 130 bool display_url = false; |
131 plugin_dict->GetBoolean("displayurl", &display_url); | 131 plugin_dict->GetBoolean("displayurl", &display_url); |
132 | 132 |
133 PluginInstaller* installer = new PluginInstaller(identifier, | 133 PluginInstaller* installer = new PluginInstaller(identifier, |
134 name, | 134 name, |
135 display_url, | 135 display_url, |
136 GURL(url), | 136 GURL(url), |
137 GURL(help_url)); | 137 GURL(help_url)); |
138 ListValue* versions = NULL; | 138 const ListValue* versions = NULL; |
139 if (plugin_dict->GetList("versions", &versions)) { | 139 if (plugin_dict->GetList("versions", &versions)) { |
140 for (ListValue::const_iterator it = versions->begin(); | 140 for (ListValue::const_iterator it = versions->begin(); |
141 it != versions->end(); ++it) { | 141 it != versions->end(); ++it) { |
142 DictionaryValue* version_dict = NULL; | 142 DictionaryValue* version_dict = NULL; |
143 if (!(*it)->GetAsDictionary(&version_dict)) { | 143 if (!(*it)->GetAsDictionary(&version_dict)) { |
144 NOTREACHED(); | 144 NOTREACHED(); |
145 continue; | 145 continue; |
146 } | 146 } |
147 std::string version; | 147 std::string version; |
148 success = version_dict->GetString("version", &version); | 148 success = version_dict->GetString("version", &version); |
149 DCHECK(success); | 149 DCHECK(success); |
150 std::string status_str; | 150 std::string status_str; |
151 success = version_dict->GetString("status", &status_str); | 151 success = version_dict->GetString("status", &status_str); |
152 DCHECK(success); | 152 DCHECK(success); |
153 PluginInstaller::SecurityStatus status = | 153 PluginInstaller::SecurityStatus status = |
154 PluginInstaller::SECURITY_STATUS_UP_TO_DATE; | 154 PluginInstaller::SECURITY_STATUS_UP_TO_DATE; |
155 success = PluginInstaller::ParseSecurityStatus(status_str, &status); | 155 success = PluginInstaller::ParseSecurityStatus(status_str, &status); |
156 DCHECK(success); | 156 DCHECK(success); |
157 installer->AddVersion(Version(version), status); | 157 installer->AddVersion(Version(version), status); |
158 } | 158 } |
159 } | 159 } |
160 | 160 |
161 installers_[identifier] = installer; | 161 installers_[identifier] = installer; |
162 return installer; | 162 return installer; |
163 } | 163 } |
OLD | NEW |