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 11 matching lines...) Expand all Loading... |
22 | 22 |
23 // A helper class that implements the enumerate module functionality on the File | 23 // A helper class that implements the enumerate module functionality on the File |
24 // thread. | 24 // thread. |
25 class ModuleEnumerator : public base::RefCountedThreadSafe<ModuleEnumerator> { | 25 class ModuleEnumerator : public base::RefCountedThreadSafe<ModuleEnumerator> { |
26 public: | 26 public: |
27 // What type of module we are dealing with. Loaded modules are modules we | 27 // What type of module we are dealing with. Loaded modules are modules we |
28 // detect as loaded in the process at the time of scanning. The others are | 28 // detect as loaded in the process at the time of scanning. The others are |
29 // modules of interest and may or may not be loaded in the process at the | 29 // modules of interest and may or may not be loaded in the process at the |
30 // time of scan. | 30 // time of scan. |
31 enum ModuleType { | 31 enum ModuleType { |
32 LOADED_MODULE, | 32 LOADED_MODULE = 1 << 0, |
33 SHELL_EXTENSION, | 33 SHELL_EXTENSION = 1 << 1, |
34 WINSOCK_MODULE_REGISTRATION, | 34 WINSOCK_MODULE_REGISTRATION = 1 << 2, |
35 }; | 35 }; |
36 | 36 |
37 // The blacklist status of the module. Suspected Bad modules have been | 37 // The blacklist status of the module. Suspected Bad modules have been |
38 // partially matched (ie. name matches and location, but not description) | 38 // partially matched (ie. name matches and location, but not description) |
39 // whereas Confirmed Bad modules have been identified further (ie. | 39 // whereas Confirmed Bad modules have been identified further (ie. |
40 // AuthentiCode signer matches). | 40 // AuthentiCode signer matches). |
41 enum ModuleStatus { | 41 enum ModuleStatus { |
42 // This is returned by the matching function when comparing against the | 42 // This is returned by the matching function when comparing against the |
43 // blacklist and the module does not match the current entry in the | 43 // blacklist and the module does not match the current entry in the |
44 // blacklist. | 44 // blacklist. |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 }; | 89 }; |
90 | 90 |
91 // A vector typedef of all modules enumerated. | 91 // A vector typedef of all modules enumerated. |
92 typedef std::vector<Module> ModulesVector; | 92 typedef std::vector<Module> ModulesVector; |
93 | 93 |
94 // A structure we populate with the blacklist entries. | 94 // A structure we populate with the blacklist entries. |
95 struct BlacklistEntry { | 95 struct BlacklistEntry { |
96 const char* filename; | 96 const char* filename; |
97 const char* location; | 97 const char* location; |
98 const char* desc_or_signer; | 98 const char* desc_or_signer; |
99 const char* version_from; | 99 const char* version_from; // Version where conflict started. |
100 const char* version_to; | 100 const char* version_to; // First version that works. |
101 RecommendedAction help_tip; | 101 RecommendedAction help_tip; |
102 }; | 102 }; |
103 | 103 |
104 // A static function that normalizes the module information in the |module| | 104 // A static function that normalizes the module information in the |module| |
105 // struct. Module information needs to be normalized before comparing against | 105 // struct. Module information needs to be normalized before comparing against |
106 // the blacklist. This is because the same module can be described in many | 106 // the blacklist. This is because the same module can be described in many |
107 // different ways, ie. file paths can be presented in long/short name form, | 107 // different ways, ie. file paths can be presented in long/short name form, |
108 // and are not case sensitive on Windows. Also, the version string returned | 108 // and are not case sensitive on Windows. Also, the version string returned |
109 // can include appended text, which we don't want to use during comparison | 109 // can include appended text, which we don't want to use during comparison |
110 // against the blacklist. | 110 // against the blacklist. |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
275 int confirmed_bad_modules_detected_; | 275 int confirmed_bad_modules_detected_; |
276 | 276 |
277 // The number of suspected bad modules (not including confirmed bad ones) | 277 // The number of suspected bad modules (not including confirmed bad ones) |
278 // found during last scan. | 278 // found during last scan. |
279 int suspected_bad_modules_detected_; | 279 int suspected_bad_modules_detected_; |
280 | 280 |
281 DISALLOW_COPY_AND_ASSIGN(EnumerateModulesModel); | 281 DISALLOW_COPY_AND_ASSIGN(EnumerateModulesModel); |
282 }; | 282 }; |
283 | 283 |
284 #endif // CHROME_BROWSER_ENUMERATE_MODULES_MODEL_WIN_H_ | 284 #endif // CHROME_BROWSER_ENUMERATE_MODULES_MODEL_WIN_H_ |
OLD | NEW |