Index: chrome/browser/extensions/extension_service.h |
diff --git a/chrome/browser/extensions/extension_service.h b/chrome/browser/extensions/extension_service.h |
index 8e5b8754349d311b5c827272415ffecdca837ee5..1cf4ae57d382e3827e24ba03f0c10b27e8d279ca 100644 |
--- a/chrome/browser/extensions/extension_service.h |
+++ b/chrome/browser/extensions/extension_service.h |
@@ -155,10 +155,25 @@ class ExtensionService |
public content::NotificationObserver, |
public extensions::Blacklist::Observer { |
public: |
+ enum UninstallReason { |
+ UNINSTALL_REASON_DEFAULT, // Usually from testing code |
Devlin
2014/07/01 17:39:10
Please rename this to UNINSTALL_REASON_FOR_TESTING
rpaquay
2014/07/01 22:56:53
Done.
|
+ UNINSTALL_REASON_USER_INITIATED, // User performed some UI gesture |
+ UNINSTALL_REASON_EXTENSION_DISABLED, // Extension disabled due to error |
+ UNINSTALL_REASON_STORAGE_THRESHOLD_EXCEEDED, |
+ UNINSTALL_REASON_EXTERNAL_INSTALL_CANCELED, |
+ UNINSTALL_REASON_MANAGEMENT_API, |
+ UNINSTALL_REASON_SYNC, |
+ UNINSTALL_REASON_ORPHANED_SHARED_MODULE, |
+ UNINSTALL_REASON_ORPHANED_THEME, |
+ UNINSTALL_REASON_ORPHANED_EXTERNAL_EXTENSION, |
+ UNINSTALL_REASON_ORPHANED_EPHEMERAL_EXTENSION |
+ }; |
+ |
// Attempts to uninstall an extension from a given ExtensionService. Returns |
// true iff the target extension exists. |
static bool UninstallExtensionHelper(ExtensionService* extensions_service, |
- const std::string& extension_id); |
+ const std::string& extension_id, |
+ UninstallReason reason); |
// Constructor stores pointers to |profile| and |extension_prefs| but |
// ownership remains at caller. |
@@ -240,14 +255,10 @@ class ExtensionService |
void ReloadExtension(const std::string& extension_id); |
// Uninstalls the specified extension. Callers should only call this method |
- // with extensions that exist. |external_uninstall| is a magical parameter |
- // that is only used to send information to ExtensionPrefs, which external |
- // callers should never set to true. |
- // |
- // TODO(aa): Remove |external_uninstall| -- this information should be passed |
- // to ExtensionPrefs some other way. |
+ // with extensions that exist. |reason| lets the caller specify why the |
+ // extension is uninstalled. |
virtual bool UninstallExtension(const std::string& extension_id, |
- bool external_uninstall, |
+ UninstallReason reason, |
base::string16* error); |
// Enables the extension. If the extension is already enabled, does |