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

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

Issue 11348046: Add versioning to PluginFinder metadata. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync Created 7 years, 10 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 #ifndef CHROME_BROWSER_PLUGINS_PLUGIN_FINDER_H_ 5 #ifndef CHROME_BROWSER_PLUGINS_PLUGIN_FINDER_H_
6 #define CHROME_BROWSER_PLUGINS_PLUGIN_FINDER_H_ 6 #define CHROME_BROWSER_PLUGINS_PLUGIN_FINDER_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 10
(...skipping 23 matching lines...) Expand all
34 class PluginFinder { 34 class PluginFinder {
35 public: 35 public:
36 static void RegisterPrefs(PrefServiceSimple* local_state); 36 static void RegisterPrefs(PrefServiceSimple* local_state);
37 37
38 static PluginFinder* GetInstance(); 38 static PluginFinder* GetInstance();
39 39
40 // It should be called on the UI thread. 40 // It should be called on the UI thread.
41 void Init(); 41 void Init();
42 42
43 #if defined(ENABLE_PLUGIN_INSTALLATION) 43 #if defined(ENABLE_PLUGIN_INSTALLATION)
44 void ReinitializePlugins(const base::DictionaryValue& json_metadata); 44 void ReinitializePlugins(scoped_ptr<base::DictionaryValue> json_metadata);
45 45
46 // Finds a plug-in for the given MIME type and language (specified as an IETF 46 // Finds a plug-in for the given MIME type and language (specified as an IETF
47 // language tag, i.e. en-US). If found, sets |installer| to the 47 // language tag, i.e. en-US). If found, sets |installer| to the
48 // corresponding PluginInstaller and |plugin_metadata| to a copy of the 48 // corresponding PluginInstaller and |plugin_metadata| to a copy of the
49 // corresponding PluginMetadata. 49 // corresponding PluginMetadata.
50 bool FindPlugin(const std::string& mime_type, 50 bool FindPlugin(const std::string& mime_type,
51 const std::string& language, 51 const std::string& language,
52 PluginInstaller** installer, 52 PluginInstaller** installer,
53 scoped_ptr<PluginMetadata>* plugin_metadata); 53 scoped_ptr<PluginMetadata>* plugin_metadata);
54 54
(...skipping 20 matching lines...) Expand all
75 75
76 PluginFinder(); 76 PluginFinder();
77 ~PluginFinder(); 77 ~PluginFinder();
78 78
79 static base::DictionaryValue* ComputePluginList(); 79 static base::DictionaryValue* ComputePluginList();
80 80
81 // Loads the plug-in information from the browser resources and parses it. 81 // Loads the plug-in information from the browser resources and parses it.
82 // Returns NULL if the plug-in list couldn't be parsed. 82 // Returns NULL if the plug-in list couldn't be parsed.
83 static base::DictionaryValue* LoadPluginList(); 83 static base::DictionaryValue* LoadPluginList();
84 84
85 void InitInternal(); 85 void InitInternal(scoped_ptr<base::DictionaryValue> plugin_list);
86 86
87 scoped_ptr<base::DictionaryValue> plugin_list_; 87 scoped_ptr<base::DictionaryValue> plugin_list_;
88 #if defined(ENABLE_PLUGIN_INSTALLATION) 88 #if defined(ENABLE_PLUGIN_INSTALLATION)
89 std::map<std::string, PluginInstaller*> installers_; 89 std::map<std::string, PluginInstaller*> installers_;
90 #endif 90 #endif
91 91
92 std::map<std::string, PluginMetadata*> identifier_plugin_; 92 std::map<std::string, PluginMetadata*> identifier_plugin_;
93 93
94 // Version of the metadata information. We use this to consolidate multiple
95 // sources (baked into resource and fetched from a URL), making sure that we
96 // don't overwrite newer versions with older ones.
97 int version_;
98
94 // Synchronization for the above member variables is 99 // Synchronization for the above member variables is
95 // required since multiple threads can be accessing them concurrently. 100 // required since multiple threads can be accessing them concurrently.
96 base::Lock mutex_; 101 base::Lock mutex_;
97 102
98 DISALLOW_COPY_AND_ASSIGN(PluginFinder); 103 DISALLOW_COPY_AND_ASSIGN(PluginFinder);
99 }; 104 };
100 105
101 #endif // CHROME_BROWSER_PLUGINS_PLUGIN_FINDER_H_ 106 #endif // CHROME_BROWSER_PLUGINS_PLUGIN_FINDER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698