Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(608)

Side by Side Diff: chrome/browser/extensions/extension_service.h

Issue 14757022: Add a non-blocking "OneShotEvent" class (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add a test for the behavior within a Post()ed callback Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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_SERVICE_H_ 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_SERVICE_H_
6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_SERVICE_H_ 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_SERVICE_H_
7 7
8 #include <list> 8 #include <list>
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
(...skipping 20 matching lines...) Expand all
31 #include "chrome/browser/extensions/menu_manager.h" 31 #include "chrome/browser/extensions/menu_manager.h"
32 #include "chrome/browser/extensions/pending_extension_manager.h" 32 #include "chrome/browser/extensions/pending_extension_manager.h"
33 #include "chrome/browser/extensions/process_map.h" 33 #include "chrome/browser/extensions/process_map.h"
34 #include "chrome/browser/extensions/update_observer.h" 34 #include "chrome/browser/extensions/update_observer.h"
35 #include "chrome/common/extensions/extension.h" 35 #include "chrome/common/extensions/extension.h"
36 #include "chrome/common/extensions/extension_constants.h" 36 #include "chrome/common/extensions/extension_constants.h"
37 #include "chrome/common/extensions/extension_set.h" 37 #include "chrome/common/extensions/extension_set.h"
38 #include "chrome/common/extensions/manifest.h" 38 #include "chrome/common/extensions/manifest.h"
39 #include "content/public/browser/notification_observer.h" 39 #include "content/public/browser/notification_observer.h"
40 #include "content/public/browser/notification_registrar.h" 40 #include "content/public/browser/notification_registrar.h"
41 #include "extensions/common/one_shot_event.h"
41 #include "sync/api/string_ordinal.h" 42 #include "sync/api/string_ordinal.h"
42 #include "sync/api/sync_change.h" 43 #include "sync/api/sync_change.h"
43 #include "sync/api/syncable_service.h" 44 #include "sync/api/syncable_service.h"
44 45
45 class CommandLine; 46 class CommandLine;
46 class ExtensionErrorUI; 47 class ExtensionErrorUI;
47 class ExtensionSyncData; 48 class ExtensionSyncData;
48 class ExtensionToolbarModel; 49 class ExtensionToolbarModel;
49 class GURL; 50 class GURL;
50 class Profile; 51 class Profile;
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 const std::string& extension_id); 193 const std::string& extension_id);
193 194
194 // Constructor stores pointers to |profile| and |extension_prefs| but 195 // Constructor stores pointers to |profile| and |extension_prefs| but
195 // ownership remains at caller. 196 // ownership remains at caller.
196 ExtensionService(Profile* profile, 197 ExtensionService(Profile* profile,
197 const CommandLine* command_line, 198 const CommandLine* command_line,
198 const base::FilePath& install_directory, 199 const base::FilePath& install_directory,
199 extensions::ExtensionPrefs* extension_prefs, 200 extensions::ExtensionPrefs* extension_prefs,
200 extensions::Blacklist* blacklist, 201 extensions::Blacklist* blacklist,
201 bool autoupdate_enabled, 202 bool autoupdate_enabled,
202 bool extensions_enabled); 203 bool extensions_enabled,
204 extensions::OneShotEvent* ready);
203 205
204 virtual ~ExtensionService(); 206 virtual ~ExtensionService();
205 207
206 // Gets the list of currently installed extensions. 208 // Gets the list of currently installed extensions.
207 virtual const ExtensionSet* extensions() const OVERRIDE; 209 virtual const ExtensionSet* extensions() const OVERRIDE;
208 virtual const ExtensionSet* disabled_extensions() const OVERRIDE; 210 virtual const ExtensionSet* disabled_extensions() const OVERRIDE;
209 const ExtensionSet* terminated_extensions() const; 211 const ExtensionSet* terminated_extensions() const;
210 const ExtensionSet* blacklisted_extensions() const; 212 const ExtensionSet* blacklisted_extensions() const;
211 213
212 // Returns a set of all installed, disabled, blacklisted, and terminated 214 // Returns a set of all installed, disabled, blacklisted, and terminated
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
697 699
698 struct NaClModuleInfo { 700 struct NaClModuleInfo {
699 NaClModuleInfo(); 701 NaClModuleInfo();
700 ~NaClModuleInfo(); 702 ~NaClModuleInfo();
701 703
702 GURL url; 704 GURL url;
703 std::string mime_type; 705 std::string mime_type;
704 }; 706 };
705 typedef std::list<NaClModuleInfo> NaClModuleInfoList; 707 typedef std::list<NaClModuleInfo> NaClModuleInfoList;
706 708
707 // Sets the ready_ flag and sends a notification to the listeners. 709 // Signals *ready_ and sends a notification to the listeners.
708 void SetReadyAndNotifyListeners(); 710 void SetReadyAndNotifyListeners();
709 711
710 // Return true if the sync type of |extension| matches |type|. 712 // Return true if the sync type of |extension| matches |type|.
711 bool IsCorrectSyncType(const extensions::Extension& extension, 713 bool IsCorrectSyncType(const extensions::Extension& extension,
712 syncer::ModelType type) 714 syncer::ModelType type)
713 const; 715 const;
714 716
715 void OnExtensionInstallPrefChanged(); 717 void OnExtensionInstallPrefChanged();
716 718
717 // Handles setting the extension specific values in |extension_sync_data| to 719 // Handles setting the extension specific values in |extension_sync_data| to
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
892 // Whether to notify users when they attempt to install an extension. 894 // Whether to notify users when they attempt to install an extension.
893 bool show_extensions_prompts_; 895 bool show_extensions_prompts_;
894 896
895 // Whether to delay installing of extension updates until the extension is 897 // Whether to delay installing of extension updates until the extension is
896 // idle. 898 // idle.
897 bool install_updates_when_idle_; 899 bool install_updates_when_idle_;
898 900
899 // Used by dispatchers to limit API quota for individual extensions. 901 // Used by dispatchers to limit API quota for individual extensions.
900 ExtensionsQuotaService quota_service_; 902 ExtensionsQuotaService quota_service_;
901 903
902 // Record that Init() has been called, and chrome::EXTENSIONS_READY 904 // Signaled when all extensions are loaded.
903 // has fired. 905 extensions::OneShotEvent* const ready_;
904 bool ready_;
905 906
906 // Our extension updater, if updates are turned on. 907 // Our extension updater, if updates are turned on.
907 scoped_ptr<extensions::ExtensionUpdater> updater_; 908 scoped_ptr<extensions::ExtensionUpdater> updater_;
908 909
909 // The model that tracks extensions with BrowserAction buttons. 910 // The model that tracks extensions with BrowserAction buttons.
910 ExtensionToolbarModel toolbar_model_; 911 ExtensionToolbarModel toolbar_model_;
911 912
912 // Map unloaded extensions' ids to their paths. When a temporarily loaded 913 // Map unloaded extensions' ids to their paths. When a temporarily loaded
913 // extension is unloaded, we lose the information about it and don't have 914 // extension is unloaded, we lose the information about it and don't have
914 // any in the extension preferences file. 915 // any in the extension preferences file.
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
997 ObserverList<extensions::UpdateObserver, true> update_observers_; 998 ObserverList<extensions::UpdateObserver, true> update_observers_;
998 999
999 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest, 1000 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest,
1000 InstallAppsWithUnlimtedStorage); 1001 InstallAppsWithUnlimtedStorage);
1001 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest, 1002 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest,
1002 InstallAppsAndCheckStorageProtection); 1003 InstallAppsAndCheckStorageProtection);
1003 DISALLOW_COPY_AND_ASSIGN(ExtensionService); 1004 DISALLOW_COPY_AND_ASSIGN(ExtensionService);
1004 }; 1005 };
1005 1006
1006 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_SERVICE_H_ 1007 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_SERVICE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698