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

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

Issue 21443002: Add NOTIFICATION_EXTENSION_REMOVED for Extensions removed from ExtensionService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 4 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 <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/compiler_specific.h" 13 #include "base/compiler_specific.h"
14 #include "base/files/file_path.h" 14 #include "base/files/file_path.h"
15 #include "base/gtest_prod_util.h" 15 #include "base/gtest_prod_util.h"
16 #include "base/memory/ref_counted.h" 16 #include "base/memory/ref_counted.h"
17 #include "base/memory/weak_ptr.h" 17 #include "base/memory/weak_ptr.h"
18 #include "base/observer_list.h"
18 #include "base/prefs/pref_change_registrar.h" 19 #include "base/prefs/pref_change_registrar.h"
19 #include "base/strings/string16.h" 20 #include "base/strings/string16.h"
20 #include "chrome/browser/extensions/app_sync_bundle.h" 21 #include "chrome/browser/extensions/app_sync_bundle.h"
21 #include "chrome/browser/extensions/blacklist.h" 22 #include "chrome/browser/extensions/blacklist.h"
22 #include "chrome/browser/extensions/extension_function_histogram_value.h" 23 #include "chrome/browser/extensions/extension_function_histogram_value.h"
23 #include "chrome/browser/extensions/extension_icon_manager.h" 24 #include "chrome/browser/extensions/extension_icon_manager.h"
24 #include "chrome/browser/extensions/extension_prefs.h" 25 #include "chrome/browser/extensions/extension_prefs.h"
25 #include "chrome/browser/extensions/extension_process_manager.h" 26 #include "chrome/browser/extensions/extension_process_manager.h"
26 #include "chrome/browser/extensions/extension_sync_bundle.h" 27 #include "chrome/browser/extensions/extension_sync_bundle.h"
27 #include "chrome/browser/extensions/extension_toolbar_model.h" 28 #include "chrome/browser/extensions/extension_toolbar_model.h"
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 virtual base::SequencedTaskRunner* GetFileTaskRunner() = 0; 129 virtual base::SequencedTaskRunner* GetFileTaskRunner() = 0;
129 }; 130 };
130 131
131 // Manages installed and running Chromium extensions. 132 // Manages installed and running Chromium extensions.
132 class ExtensionService 133 class ExtensionService
133 : public ExtensionServiceInterface, 134 : public ExtensionServiceInterface,
134 public extensions::ExternalProviderInterface::VisitorInterface, 135 public extensions::ExternalProviderInterface::VisitorInterface,
135 public content::NotificationObserver, 136 public content::NotificationObserver,
136 public extensions::Blacklist::Observer { 137 public extensions::Blacklist::Observer {
137 public: 138 public:
139 class DisabledExtensionObserver {
140 public:
141 // Called when an extension is removed from the disabled extensions list.
142 // |was_enabled| is true if it was enabled, false if it was blacklisted
143 // or uninstalled.
144 virtual void OnDisabledExtensionRemoved(
Matt Perry 2013/08/01 00:37:33 This seems oddly specific. I think it should be sp
Yoyo Zhou 2013/08/01 00:46:40 To be clear, there are paths which result in an Ex
145 const extensions::Extension* extension,
146 bool was_enabled) = 0;
147 };
148
138 // If auto-updates are turned on, default to running every 5 hours. 149 // If auto-updates are turned on, default to running every 5 hours.
139 static const int kDefaultUpdateFrequencySeconds = 60 * 60 * 5; 150 static const int kDefaultUpdateFrequencySeconds = 60 * 60 * 5;
140 151
141 // The name of the directory inside the profile where per-app local settings 152 // The name of the directory inside the profile where per-app local settings
142 // are stored. 153 // are stored.
143 static const char kLocalAppSettingsDirectoryName[]; 154 static const char kLocalAppSettingsDirectoryName[];
144 155
145 // The name of the directory inside the profile where per-extension local 156 // The name of the directory inside the profile where per-extension local
146 // settings are stored. 157 // settings are stored.
147 static const char kLocalExtensionSettingsDirectoryName[]; 158 static const char kLocalExtensionSettingsDirectoryName[];
(...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after
678 browser_terminating_ = value; 689 browser_terminating_ = value;
679 } 690 }
680 691
681 // By default ExtensionService will wait with installing an updated extension 692 // By default ExtensionService will wait with installing an updated extension
682 // until the extension is idle. Tests might not like this behavior, so you can 693 // until the extension is idle. Tests might not like this behavior, so you can
683 // disable it with this method. 694 // disable it with this method.
684 void set_install_updates_when_idle_for_test(bool value) { 695 void set_install_updates_when_idle_for_test(bool value) {
685 install_updates_when_idle_ = value; 696 install_updates_when_idle_ = value;
686 } 697 }
687 698
699 // Adds/Removes disabled extension observers.
700 void AddDisabledExtensionObserver(DisabledExtensionObserver* observer);
701 void RemoveDisabledExtensionObserver(DisabledExtensionObserver* observer);
702
688 // Adds/Removes update observers. 703 // Adds/Removes update observers.
689 void AddUpdateObserver(extensions::UpdateObserver* observer); 704 void AddUpdateObserver(extensions::UpdateObserver* observer);
690 void RemoveUpdateObserver(extensions::UpdateObserver* observer); 705 void RemoveUpdateObserver(extensions::UpdateObserver* observer);
691 706
692 // |flare| provides a StartSyncFlare to the SyncableService. See 707 // |flare| provides a StartSyncFlare to the SyncableService. See
693 // sync_start_util for more. 708 // sync_start_util for more.
694 void SetSyncStartFlare(const syncer::SyncableService::StartSyncFlare& flare); 709 void SetSyncStartFlare(const syncer::SyncableService::StartSyncFlare& flare);
695 710
696 private: 711 private:
697 // Contains Extension data that can change during the life of the process, 712 // Contains Extension data that can change during the life of the process,
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
942 957
943 scoped_ptr<ExtensionErrorUI> extension_error_ui_; 958 scoped_ptr<ExtensionErrorUI> extension_error_ui_;
944 // Sequenced task runner for extension related file operations. 959 // Sequenced task runner for extension related file operations.
945 scoped_refptr<base::SequencedTaskRunner> file_task_runner_; 960 scoped_refptr<base::SequencedTaskRunner> file_task_runner_;
946 961
947 #if defined(ENABLE_EXTENSIONS) 962 #if defined(ENABLE_EXTENSIONS)
948 scoped_ptr<extensions::ExtensionActionStorageManager> 963 scoped_ptr<extensions::ExtensionActionStorageManager>
949 extension_action_storage_manager_; 964 extension_action_storage_manager_;
950 #endif 965 #endif
951 966
967 ObserverList<DisabledExtensionObserver, true> disabled_extension_observers_;
952 ObserverList<extensions::UpdateObserver, true> update_observers_; 968 ObserverList<extensions::UpdateObserver, true> update_observers_;
953 969
954 // Run()ning tells sync to try and start soon, because syncable changes 970 // Run()ning tells sync to try and start soon, because syncable changes
955 // have started happening. It will cause sync to call us back 971 // have started happening. It will cause sync to call us back
956 // asynchronously via MergeDataAndStartSyncing as soon as possible. 972 // asynchronously via MergeDataAndStartSyncing as soon as possible.
957 syncer::SyncableService::StartSyncFlare flare_; 973 syncer::SyncableService::StartSyncFlare flare_;
958 974
959 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest, 975 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest,
960 InstallAppsWithUnlimtedStorage); 976 InstallAppsWithUnlimtedStorage);
961 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest, 977 FRIEND_TEST_ALL_PREFIXES(ExtensionServiceTest,
962 InstallAppsAndCheckStorageProtection); 978 InstallAppsAndCheckStorageProtection);
963 DISALLOW_COPY_AND_ASSIGN(ExtensionService); 979 DISALLOW_COPY_AND_ASSIGN(ExtensionService);
964 }; 980 };
965 981
966 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_SERVICE_H_ 982 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_SERVICE_H_
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_disabled_ui.cc ('k') | chrome/browser/extensions/extension_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698