[email protected] | 4575961 | 2012-07-10 17:21:23 | [diff] [blame] | 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
[email protected] | d8c8f25f | 2011-11-02 18:18:01 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. | ||||
4 | |||||
5 | #ifndef CHROME_BROWSER_EXTENSIONS_INSTALLED_LOADER_H_ | ||||
6 | #define CHROME_BROWSER_EXTENSIONS_INSTALLED_LOADER_H_ | ||||
[email protected] | d8c8f25f | 2011-11-02 18:18:01 | [diff] [blame] | 7 | |
macourteau | 55a41a6 | 2015-05-27 00:23:16 | [diff] [blame^] | 8 | #include <set> |
9 | |||||
10 | #include "base/files/file_path.h" | ||||
11 | |||||
[email protected] | d8c8f25f | 2011-11-02 18:18:01 | [diff] [blame] | 12 | class ExtensionService; |
[email protected] | d8c8f25f | 2011-11-02 18:18:01 | [diff] [blame] | 13 | |
14 | namespace extensions { | ||||
15 | |||||
[email protected] | 4575961 | 2012-07-10 17:21:23 | [diff] [blame] | 16 | class ExtensionPrefs; |
[email protected] | 284ffac | 2014-02-12 01:08:58 | [diff] [blame] | 17 | class ExtensionRegistry; |
[email protected] | 1c321ee | 2012-05-21 03:02:34 | [diff] [blame] | 18 | struct ExtensionInfo; |
19 | |||||
[email protected] | d8c8f25f | 2011-11-02 18:18:01 | [diff] [blame] | 20 | // Loads installed extensions from the prefs. |
21 | class InstalledLoader { | ||||
22 | public: | ||||
23 | explicit InstalledLoader(ExtensionService* extension_service); | ||||
24 | virtual ~InstalledLoader(); | ||||
25 | |||||
26 | // Loads extension from prefs. | ||||
27 | void Load(const ExtensionInfo& info, bool write_to_prefs); | ||||
28 | |||||
29 | // Loads all installed extensions (used by startup and testing code). | ||||
30 | void LoadAllExtensions(); | ||||
31 | |||||
32 | private: | ||||
33 | // Returns the flags that should be used with Extension::Create() for an | ||||
34 | // extension that is already installed. | ||||
35 | int GetCreationFlags(const ExtensionInfo* info); | ||||
36 | |||||
rkaplow | a8fd8d3 | 2015-02-25 21:27:56 | [diff] [blame] | 37 | // Record metrics related to the loaded extensions. |
38 | void RecordExtensionsMetrics(); | ||||
39 | |||||
[email protected] | d8c8f25f | 2011-11-02 18:18:01 | [diff] [blame] | 40 | ExtensionService* extension_service_; |
[email protected] | 284ffac | 2014-02-12 01:08:58 | [diff] [blame] | 41 | ExtensionRegistry* extension_registry_; |
[email protected] | d8c8f25f | 2011-11-02 18:18:01 | [diff] [blame] | 42 | |
43 | ExtensionPrefs* extension_prefs_; | ||||
macourteau | 55a41a6 | 2015-05-27 00:23:16 | [diff] [blame^] | 44 | |
45 | // Paths to invalid extension manifests, which should not be loaded. | ||||
46 | std::set<base::FilePath> invalid_extensions_; | ||||
[email protected] | d8c8f25f | 2011-11-02 18:18:01 | [diff] [blame] | 47 | }; |
48 | |||||
49 | } // namespace extensions | ||||
50 | |||||
51 | #endif // CHROME_BROWSER_EXTENSIONS_INSTALLED_LOADER_H_ |