OLD | NEW |
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 #ifndef CHROME_BROWSER_ENUMERATE_MODULES_MODEL_WIN_H_ | 5 #ifndef CHROME_BROWSER_ENUMERATE_MODULES_MODEL_WIN_H_ |
6 #define CHROME_BROWSER_ENUMERATE_MODULES_MODEL_WIN_H_ | 6 #define CHROME_BROWSER_ENUMERATE_MODULES_MODEL_WIN_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <utility> | 9 #include <utility> |
10 #include <vector> | 10 #include <vector> |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 // The name of the product the module belongs to. | 74 // The name of the product the module belongs to. |
75 string16 product_name; | 75 string16 product_name; |
76 // The module file description. | 76 // The module file description. |
77 string16 description; | 77 string16 description; |
78 // The module version. | 78 // The module version. |
79 string16 version; | 79 string16 version; |
80 // The signer of the digital certificate for the module. | 80 // The signer of the digital certificate for the module. |
81 string16 digital_signer; | 81 string16 digital_signer; |
82 // The help tips bitmask. | 82 // The help tips bitmask. |
83 RecommendedAction recommended_action; | 83 RecommendedAction recommended_action; |
| 84 // The duplicate count within each category of modules. |
| 85 int duplicate_count; |
84 // Whether this module has been normalized (necessary before checking it | 86 // Whether this module has been normalized (necessary before checking it |
85 // against blacklist). | 87 // against blacklist). |
86 bool normalized; | 88 bool normalized; |
87 }; | 89 }; |
88 | 90 |
89 // A vector typedef of all modules enumerated. | 91 // A vector typedef of all modules enumerated. |
90 typedef std::vector<Module> ModulesVector; | 92 typedef std::vector<Module> ModulesVector; |
91 | 93 |
92 // A structure we populate with the blacklist entries. | 94 // A structure we populate with the blacklist entries. |
93 struct BlacklistEntry { | 95 struct BlacklistEntry { |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
134 // ReportBack to let the observer know we are done. | 136 // ReportBack to let the observer know we are done. |
135 void ScanOnFileThread(); | 137 void ScanOnFileThread(); |
136 | 138 |
137 // Enumerate all modules loaded into the Chrome process. | 139 // Enumerate all modules loaded into the Chrome process. |
138 void EnumerateLoadedModules(); | 140 void EnumerateLoadedModules(); |
139 | 141 |
140 // Enumerate all registered Windows shell extensions. | 142 // Enumerate all registered Windows shell extensions. |
141 void EnumerateShellExtensions(); | 143 void EnumerateShellExtensions(); |
142 | 144 |
143 // Enumerate all registered Winsock LSP modules. | 145 // Enumerate all registered Winsock LSP modules. |
144 void EnumerateWinsockModule(); | 146 void EnumerateWinsockModules(); |
145 | 147 |
146 // Reads the registered shell extensions found under |parent| key in the | 148 // Reads the registered shell extensions found under |parent| key in the |
147 // registry. | 149 // registry. |
148 void ReadShellExtensions(HKEY parent); | 150 void ReadShellExtensions(HKEY parent); |
149 | 151 |
150 // Given a |module|, initializes the structure and loads additional | 152 // Given a |module|, initializes the structure and loads additional |
151 // information using the location field of the module. | 153 // information using the location field of the module. |
152 void PopulateModuleInformation(Module* module); | 154 void PopulateModuleInformation(Module* module); |
153 | 155 |
| 156 // Checks the module list to see if a |module| of the same type, location |
| 157 // and name has been added before and if so, increments its duplication |
| 158 // counter. If it doesn't appear in the list, it is added. |
| 159 void AddToListWithoutDuplicating(const Module&); |
| 160 |
154 // Builds up a vector of path values mapping to environment variable, | 161 // Builds up a vector of path values mapping to environment variable, |
155 // with pairs like [c:\windows\, %systemroot%]. This is later used to | 162 // with pairs like [c:\windows\, %systemroot%]. This is later used to |
156 // collapse paths like c:\windows\system32 into %systemroot%\system32, which | 163 // collapse paths like c:\windows\system32 into %systemroot%\system32, which |
157 // we can use for comparison against our blacklist (which uses only env vars). | 164 // we can use for comparison against our blacklist (which uses only env vars). |
158 // NOTE: The vector will not contain an exhaustive list of environment | 165 // NOTE: The vector will not contain an exhaustive list of environment |
159 // variables, only the ones currently found on the blacklist or ones that are | 166 // variables, only the ones currently found on the blacklist or ones that are |
160 // likely to appear there. | 167 // likely to appear there. |
161 void PreparePathMappings(); | 168 void PreparePathMappings(); |
162 | 169 |
163 // For a given |module|, collapse the path from c:\windows to %systemroot%, | 170 // For a given |module|, collapse the path from c:\windows to %systemroot%, |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
268 int confirmed_bad_modules_detected_; | 275 int confirmed_bad_modules_detected_; |
269 | 276 |
270 // The number of suspected bad modules (not including confirmed bad ones) | 277 // The number of suspected bad modules (not including confirmed bad ones) |
271 // found during last scan. | 278 // found during last scan. |
272 int suspected_bad_modules_detected_; | 279 int suspected_bad_modules_detected_; |
273 | 280 |
274 DISALLOW_COPY_AND_ASSIGN(EnumerateModulesModel); | 281 DISALLOW_COPY_AND_ASSIGN(EnumerateModulesModel); |
275 }; | 282 }; |
276 | 283 |
277 #endif // CHROME_BROWSER_ENUMERATE_MODULES_MODEL_WIN_H_ | 284 #endif // CHROME_BROWSER_ENUMERATE_MODULES_MODEL_WIN_H_ |
OLD | NEW |