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

Side by Side Diff: chrome/browser/plugins/plugin_finder.cc

Issue 19894003: Move webplugininfo.h to content/public. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 5 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) 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/plugins/plugin_finder.h" 5 #include "chrome/browser/plugins/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/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/prefs/pref_registry_simple.h" 10 #include "base/prefs/pref_registry_simple.h"
(...skipping 16 matching lines...) Expand all
27 #endif 27 #endif
28 28
29 using base::DictionaryValue; 29 using base::DictionaryValue;
30 using content::PluginService; 30 using content::PluginService;
31 31
32 namespace { 32 namespace {
33 33
34 typedef std::map<std::string, PluginMetadata*> PluginMap; 34 typedef std::map<std::string, PluginMetadata*> PluginMap;
35 35
36 // Gets the full path of the plug-in file as the identifier. 36 // Gets the full path of the plug-in file as the identifier.
37 std::string GetLongIdentifier(const webkit::WebPluginInfo& plugin) { 37 std::string GetLongIdentifier(const content::WebPluginInfo& plugin) {
38 return plugin.path.AsUTF8Unsafe(); 38 return plugin.path.AsUTF8Unsafe();
39 } 39 }
40 40
41 // Gets the base name of the file path as the identifier. 41 // Gets the base name of the file path as the identifier.
42 std::string GetIdentifier(const webkit::WebPluginInfo& plugin) { 42 std::string GetIdentifier(const content::WebPluginInfo& plugin) {
43 return plugin.path.BaseName().AsUTF8Unsafe(); 43 return plugin.path.BaseName().AsUTF8Unsafe();
44 } 44 }
45 45
46 // Gets the plug-in group name as the plug-in name if it is not empty or 46 // Gets the plug-in group name as the plug-in name if it is not empty or
47 // the filename without extension if the name is empty. 47 // the filename without extension if the name is empty.
48 static string16 GetGroupName(const webkit::WebPluginInfo& plugin) { 48 static string16 GetGroupName(const content::WebPluginInfo& plugin) {
49 if (!plugin.name.empty()) 49 if (!plugin.name.empty())
50 return plugin.name; 50 return plugin.name;
51 51
52 base::FilePath::StringType path = 52 base::FilePath::StringType path =
53 plugin.path.BaseName().RemoveExtension().value(); 53 plugin.path.BaseName().RemoveExtension().value();
54 #if defined(OS_POSIX) 54 #if defined(OS_POSIX)
55 return UTF8ToUTF16(path); 55 return UTF8ToUTF16(path);
56 #elif defined(OS_WIN) 56 #elif defined(OS_WIN)
57 return WideToUTF16(path); 57 return WideToUTF16(path);
58 #endif 58 #endif
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 base::AutoLock lock(mutex_); 270 base::AutoLock lock(mutex_);
271 PluginMap::const_iterator it = identifier_plugin_.find(identifier); 271 PluginMap::const_iterator it = identifier_plugin_.find(identifier);
272 string16 name; 272 string16 name;
273 if (it != identifier_plugin_.end()) 273 if (it != identifier_plugin_.end())
274 name = it->second->name(); 274 name = it->second->name();
275 275
276 return name.empty() ? UTF8ToUTF16(identifier) : name; 276 return name.empty() ? UTF8ToUTF16(identifier) : name;
277 } 277 }
278 278
279 scoped_ptr<PluginMetadata> PluginFinder::GetPluginMetadata( 279 scoped_ptr<PluginMetadata> PluginFinder::GetPluginMetadata(
280 const webkit::WebPluginInfo& plugin) { 280 const content::WebPluginInfo& plugin) {
281 base::AutoLock lock(mutex_); 281 base::AutoLock lock(mutex_);
282 for (PluginMap::const_iterator it = identifier_plugin_.begin(); 282 for (PluginMap::const_iterator it = identifier_plugin_.begin();
283 it != identifier_plugin_.end(); ++it) { 283 it != identifier_plugin_.end(); ++it) {
284 if (!it->second->MatchesPlugin(plugin)) 284 if (!it->second->MatchesPlugin(plugin))
285 continue; 285 continue;
286 286
287 return it->second->Clone(); 287 return it->second->Clone();
288 } 288 }
289 289
290 // The plug-in metadata was not found, create a dummy one holding 290 // The plug-in metadata was not found, create a dummy one holding
(...skipping 10 matching lines...) Expand all
301 metadata->AddMatchingMimeType(plugin.mime_types[i].mime_type); 301 metadata->AddMatchingMimeType(plugin.mime_types[i].mime_type);
302 302
303 DCHECK(metadata->MatchesPlugin(plugin)); 303 DCHECK(metadata->MatchesPlugin(plugin));
304 if (identifier_plugin_.find(identifier) != identifier_plugin_.end()) 304 if (identifier_plugin_.find(identifier) != identifier_plugin_.end())
305 identifier = GetLongIdentifier(plugin); 305 identifier = GetLongIdentifier(plugin);
306 306
307 DCHECK(identifier_plugin_.find(identifier) == identifier_plugin_.end()); 307 DCHECK(identifier_plugin_.find(identifier) == identifier_plugin_.end());
308 identifier_plugin_[identifier] = metadata; 308 identifier_plugin_[identifier] = metadata;
309 return metadata->Clone(); 309 return metadata->Clone();
310 } 310 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698