OLD | NEW |
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_EXTENSIONS_EXTENSION_PREFS_H_ | 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_PREFS_H_ |
6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_PREFS_H_ | 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_PREFS_H_ |
7 | 7 |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 // PrefValueStore::extension_prefs(), which this class populates and | 56 // PrefValueStore::extension_prefs(), which this class populates and |
57 // maintains as the underlying extensions change. | 57 // maintains as the underlying extensions change. |
58 class ExtensionPrefs : public ExtensionScopedPrefs, | 58 class ExtensionPrefs : public ExtensionScopedPrefs, |
59 public BrowserContextKeyedService { | 59 public BrowserContextKeyedService { |
60 public: | 60 public: |
61 typedef std::vector<linked_ptr<ExtensionInfo> > ExtensionsInfo; | 61 typedef std::vector<linked_ptr<ExtensionInfo> > ExtensionsInfo; |
62 | 62 |
63 // Vector containing identifiers for preferences. | 63 // Vector containing identifiers for preferences. |
64 typedef std::set<std::string> PrefKeySet; | 64 typedef std::set<std::string> PrefKeySet; |
65 | 65 |
66 // This enum is used for the launch type the user wants to use for an | |
67 // application. | |
68 // Do not remove items or re-order this enum as it is used in preferences | |
69 // and histograms. | |
70 enum LaunchType { | |
71 LAUNCH_TYPE_PINNED, | |
72 LAUNCH_TYPE_REGULAR, | |
73 LAUNCH_TYPE_FULLSCREEN, | |
74 LAUNCH_TYPE_WINDOW, | |
75 | |
76 // Launch an app in the in the way a click on the NTP would, | |
77 // if no user pref were set. Update this constant to change | |
78 // the default for the NTP and chrome.management.launchApp(). | |
79 LAUNCH_TYPE_DEFAULT = LAUNCH_TYPE_REGULAR | |
80 }; | |
81 | |
82 // This enum is used to store the reason an extension's install has been | 66 // This enum is used to store the reason an extension's install has been |
83 // delayed. Do not remove items or re-order this enum as it is used in | 67 // delayed. Do not remove items or re-order this enum as it is used in |
84 // preferences. | 68 // preferences. |
85 enum DelayReason { | 69 enum DelayReason { |
86 DELAY_REASON_NONE = 0, | 70 DELAY_REASON_NONE = 0, |
87 DELAY_REASON_GC = 1, | 71 DELAY_REASON_GC = 1, |
88 DELAY_REASON_WAIT_FOR_IDLE = 2, | 72 DELAY_REASON_WAIT_FOR_IDLE = 2, |
89 DELAY_REASON_WAIT_FOR_IMPORTS = 3, | 73 DELAY_REASON_WAIT_FOR_IMPORTS = 3, |
90 }; | 74 }; |
91 | 75 |
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
392 | 376 |
393 // Returns true if the user has chosen to allow this extension to inject | 377 // Returns true if the user has chosen to allow this extension to inject |
394 // scripts into pages with file URLs. | 378 // scripts into pages with file URLs. |
395 // | 379 // |
396 // IMPORTANT: you probably want to use extension_utils::AllowFileAccess | 380 // IMPORTANT: you probably want to use extension_utils::AllowFileAccess |
397 // instead of this method. | 381 // instead of this method. |
398 bool AllowFileAccess(const std::string& extension_id) const; | 382 bool AllowFileAccess(const std::string& extension_id) const; |
399 void SetAllowFileAccess(const std::string& extension_id, bool allow); | 383 void SetAllowFileAccess(const std::string& extension_id, bool allow); |
400 bool HasAllowFileAccessSetting(const std::string& extension_id) const; | 384 bool HasAllowFileAccessSetting(const std::string& extension_id) const; |
401 | 385 |
402 // Get the launch type preference. If no preference is set, return | |
403 // LAUNCH_DEFAULT. | |
404 // Returns LAUNCH_WINDOW if there's no preference and | |
405 // 'streamlined hosted apps' are enabled. | |
406 LaunchType GetLaunchType(const Extension* extension); | |
407 | |
408 void SetLaunchType(const std::string& extension_id, LaunchType launch_type); | |
409 | |
410 // Find the right launch container based on the launch type. | |
411 // If |extension|'s prefs do not have a launch type set, then the default | |
412 // value from GetLaunchType() is used to decide the launch container. | |
413 LaunchContainer GetLaunchContainer(const Extension* extension); | |
414 | |
415 // Returns true if a launch container preference has been specified for | |
416 // |extension|. GetLaunchContainer() will still return a default value even if | |
417 // this returns false. | |
418 bool HasPreferredLaunchContainer(const Extension* extension); | |
419 | |
420 // Saves ExtensionInfo for each installed extension with the path to the | 386 // Saves ExtensionInfo for each installed extension with the path to the |
421 // version directory and the location. Blacklisted extensions won't be saved | 387 // version directory and the location. Blacklisted extensions won't be saved |
422 // and neither will external extensions the user has explicitly uninstalled. | 388 // and neither will external extensions the user has explicitly uninstalled. |
423 // Caller takes ownership of returned structure. | 389 // Caller takes ownership of returned structure. |
424 scoped_ptr<ExtensionsInfo> GetInstalledExtensionsInfo() const; | 390 scoped_ptr<ExtensionsInfo> GetInstalledExtensionsInfo() const; |
425 | 391 |
426 // Same as above, but only includes external extensions the user has | 392 // Same as above, but only includes external extensions the user has |
427 // explicitly uninstalled. | 393 // explicitly uninstalled. |
428 scoped_ptr<ExtensionsInfo> GetUninstalledExtensionsInfo() const; | 394 scoped_ptr<ExtensionsInfo> GetUninstalledExtensionsInfo() const; |
429 | 395 |
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
662 scoped_ptr<TimeProvider> time_provider_; | 628 scoped_ptr<TimeProvider> time_provider_; |
663 | 629 |
664 bool extensions_disabled_; | 630 bool extensions_disabled_; |
665 | 631 |
666 DISALLOW_COPY_AND_ASSIGN(ExtensionPrefs); | 632 DISALLOW_COPY_AND_ASSIGN(ExtensionPrefs); |
667 }; | 633 }; |
668 | 634 |
669 } // namespace extensions | 635 } // namespace extensions |
670 | 636 |
671 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_PREFS_H_ | 637 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_PREFS_H_ |
OLD | NEW |