Index: chrome/browser/win/enumerate_modules_model.h |
diff --git a/chrome/browser/win/enumerate_modules_model.h b/chrome/browser/win/enumerate_modules_model.h |
index 76ce0227904495040d4d729af10fdd2417c4a148..7eb192f23ac45272477b0582ec2f7a2a4dab56d0 100644 |
--- a/chrome/browser/win/enumerate_modules_model.h |
+++ b/chrome/browser/win/enumerate_modules_model.h |
@@ -141,18 +141,11 @@ class ModuleEnumerator { |
private: |
FRIEND_TEST_ALL_PREFIXES(EnumerateModulesTest, CollapsePath); |
- // This function enumerates all modules in the blocking pool. Once the list of |
- // module filenames is populated it posts a delayed task to call |
- // ScanImplDelay for the first module. |
+ // This function posts a task to enumerate all modules asynchronously. Once |
+ // the list of module filenames is populated, a delayed task is posted to scan |
+ // the first module. |
void ScanImplStart(); |
- // Immediately posts a CONTINUE_ON_SHUTDOWN task to ScanImplModule for the |
- // given module. This ping-ponging is because the blocking pool does not |
- // offer a delayed CONTINUE_ON_SHUTDOWN task. |
- // TODO(chrisha): When the new scheduler enables delayed CONTINUE_ON_SHUTDOWN |
- // tasks, simplify this logic. |
- void ScanImplDelay(size_t index); |
- |
// Inspects the module in |enumerated_modules_| at the given |index|. Gets |
// module information, normalizes it, and collapses the path. This is an |
// expensive operation and non-critical. Posts a delayed task to ScanImplDelay |
@@ -210,6 +203,9 @@ class ModuleEnumerator { |
// The typedef for the vector that maps a regular file path to %env_var%. |
typedef std::vector<std::pair<base::string16, base::string16>> PathMapping; |
+ // The TaskRunner to perform work in the background. |
+ const scoped_refptr<base::TaskRunner> background_task_runner_; |
+ |
// The vector of paths to %env_var%, used to account for differences in |
// where people keep there files, c:\windows vs. d:\windows, etc. |
PathMapping path_mapping_; |
@@ -248,7 +244,7 @@ class ModuleEnumerator { |
// ready. |
// |
// The member functions of this class may only be used from the UI thread. The |
-// bulk of the work is actually performed in the blocking pool with |
+// bulk of the work is actually performed asynchronously in TaskScheduler with |
// CONTINUE_ON_SHUTDOWN semantics, as the WinCrypt functions can effectively |
// block arbitrarily during shutdown. |
// |
@@ -341,13 +337,12 @@ class EnumerateModulesModel { |
void DoneScanning(); |
// The vector containing all the modules enumerated. Will be normalized and |
- // any bad modules will be marked. Written to from the blocking pool by the |
- // |module_enumerator_|, read from on the UI thread by this class. |
+ // any bad modules will be marked. Written to from the background TaskRunner |
+ // by the |module_enumerator_|, read from on the UI thread by this class. |
ModuleEnumerator::ModulesVector enumerated_modules_; |
- // The object responsible for enumerating the modules in the blocking pool. |
- // Only used from the UI thread. This ends up internally doing its work in the |
- // blocking pool. |
+ // The object responsible for enumerating the modules on a background |
+ // TaskRunner. Only accessed from the UI thread. |
std::unique_ptr<ModuleEnumerator> module_enumerator_; |
// Whether the conflict notification has been acknowledged by the user. Only |