1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 EXTENSIONS_BROWSER_NOTIFICATION_TYPES_H_ 6 #define EXTENSIONS_BROWSER_NOTIFICATION_TYPES_H_ 7 8 #include "content/public/browser/notification_types.h" 9 10 namespace extensions { 11 12 // Only notifications fired by the extensions module should be here. The 13 // extensions module should not listen to notifications fired by the 14 // embedder. 15 enum NotificationType { 16 NOTIFICATION_EXTENSIONS_START = content::NOTIFICATION_CONTENT_END, 17 18 // Sent when a CrxInstaller finishes. Source is the CrxInstaller that 19 // finished. The details are the extension which was installed. 20 NOTIFICATION_CRX_INSTALLER_DONE = NOTIFICATION_EXTENSIONS_START, 21 22 // Sent when the known installed extensions have all been loaded. In 23 // testing scenarios this can happen multiple times if extensions are 24 // unloaded and reloaded. The source is a BrowserContext*. 25 // 26 // DEPRECATED: Use ExtensionSystem::Get(browser_context)->ready().Post(). 27 NOTIFICATION_EXTENSIONS_READY_DEPRECATED, 28 29 // Sent when a new extension is loaded. The details are an Extension, and 30 // the source is a BrowserContext*. 31 // 32 // DEPRECATED: Use ExtensionRegistry::AddObserver instead. 33 NOTIFICATION_EXTENSION_LOADED_DEPRECATED, 34 35 // An error occured while attempting to load an extension. The details are a 36 // string with details about why the load failed. 37 NOTIFICATION_EXTENSION_LOAD_ERROR, 38 39 // Sent when an extension is enabled. Under most circumstances, listeners will 40 // want to use ExtensionRegistryObserver::OnExtensionLoaded(). This 41 // notification is only fired when the "Enable" button is hit in the 42 // extensions tab. The details are an Extension, and the source is a 43 // BrowserContext*. 44 NOTIFICATION_EXTENSION_ENABLED, 45 46 // Sent when attempting to load a new extension, but they are disabled. The 47 // details are an Extension, and the source is a BrowserContext*. 48 NOTIFICATION_EXTENSION_UPDATE_DISABLED, 49 50 // Sent when an extension's permissions change. The details are an 51 // UpdatedExtensionPermissionsInfo, and the source is a BrowserContext*. 52 NOTIFICATION_EXTENSION_PERMISSIONS_UPDATED, 53 54 // Sent immediately before new extensions are installed or existing 55 // extensions are updated. The details are an InstalledExtensionInfo, and the 56 // source is a BrowserContext*. 57 // 58 // DEPRECATED: Use ExtensionRegistry::AddObserver instead. 59 NOTIFICATION_EXTENSION_WILL_BE_INSTALLED_DEPRECATED, 60 61 // An error occured during extension install. The details are a string with 62 // details about why the install failed. 63 NOTIFICATION_EXTENSION_INSTALL_ERROR, 64 65 // Sent when an extension has been uninstalled. The details are an Extension, 66 // and the source is a BrowserContext*. 67 // 68 // DEPRECATED: Use ExtensionRegistry::AddObserver instead. 69 NOTIFICATION_EXTENSION_UNINSTALLED_DEPRECATED, 70 71 // Sent when an extension uninstall is not allowed because the extension is 72 // not user manageable. The details are an Extension, and the source is a 73 // BrowserContext*. 74 NOTIFICATION_EXTENSION_UNINSTALL_NOT_ALLOWED, 75 76 // Sent when an extension is unloaded. This happens when an extension is 77 // uninstalled or disabled. The details are an UnloadedExtensionInfo, and the 78 // source is a BrowserContext*. 79 // 80 // Note that when this notification is sent, the ExtensionService and the 81 // ExtensionRegistry have already removed the extension from their internal 82 // state. 83 // 84 // DEPRECATED: Use ExtensionRegistry::AddObserver instead. 85 NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED, 86 87 // Sent when an Extension object is removed from ExtensionService. This 88 // can happen when an extension is uninstalled, upgraded, or blacklisted, 89 // including all cases when the Extension is deleted. The details are an 90 // Extension, and the source is a BrowserContext*. 91 NOTIFICATION_EXTENSION_REMOVED, 92 93 // Sent after a new ExtensionHost* is created. The details are 94 // an ExtensionHost* and the source is a BrowserContext*. 95 NOTIFICATION_EXTENSION_HOST_CREATED, 96 97 // Sent before an ExtensionHost* is destroyed. The details are 98 // an ExtensionHost* and the source is a BrowserContext*. 99 NOTIFICATION_EXTENSION_HOST_DESTROYED, 100 101 // Sent by an ExtensionHost* when it has finished its initial page load, 102 // including any external resources. 103 // The details are an ExtensionHost* and the source is a BrowserContext*. 104 NOTIFICATION_EXTENSION_HOST_DID_STOP_LOADING, 105 106 // Sent by an ExtensionHost* when its render view requests closing through 107 // window.close(). The details are an ExtensionHost* and the source is a 108 // BrowserContext*. 109 NOTIFICATION_EXTENSION_HOST_VIEW_SHOULD_CLOSE, 110 111 // Sent when extension render process ends (whether it crashes or closes). The 112 // details are an ExtensionHost* and the source is a BrowserContext*. Not sent 113 // during browser shutdown. 114 NOTIFICATION_EXTENSION_PROCESS_TERMINATED, 115 116 // Sent when a background page is ready so other components can load. 117 NOTIFICATION_EXTENSION_BACKGROUND_PAGE_READY, 118 119 // Sent when the count of page actions has changed. Note that some of them 120 // may not apply to the current page. The source is a LocationBar*. There 121 // are no details. 122 NOTIFICATION_EXTENSION_PAGE_ACTION_COUNT_CHANGED, 123 124 // Sent when a browser action's visibility has changed. The source is the 125 // ExtensionPrefs* that changed, and the details are a std::string with the 126 // extension's ID. 127 NOTIFICATION_EXTENSION_BROWSER_ACTION_VISIBILITY_CHANGED, 128 129 // Sent when an extension command has been removed. The source is the 130 // BrowserContext* and the details is a std::pair of two std::string objects 131 // (an extension ID and the name of the command being removed). 132 NOTIFICATION_EXTENSION_COMMAND_REMOVED, 133 134 // Sent when an extension command has been added. The source is the 135 // BrowserContext* and the details is a std::pair of two std::string objects 136 // (an extension ID and the name of the command being added). 137 NOTIFICATION_EXTENSION_COMMAND_ADDED, 138 139 // Sent when an extension command shortcut for a browser action is activated 140 // on Mac. The source is the BrowserContext* and the details is a std::pair of 141 // a std::string containing an extension ID and a gfx::NativeWindow for the 142 // associated window. 143 NOTIFICATION_EXTENSION_COMMAND_BROWSER_ACTION_MAC, 144 145 // Sent when an extension command shortcut for a page action is activated 146 // on Mac. The source is the BrowserContext* and the details is a std::pair of 147 // a 148 // std::string containing an extension ID and a gfx::NativeWindow for the 149 // associated window. 150 NOTIFICATION_EXTENSION_COMMAND_PAGE_ACTION_MAC, 151 152 // A new extension RenderViewHost has been registered. The details are 153 // the RenderViewHost*. 154 NOTIFICATION_EXTENSION_VIEW_REGISTERED, 155 156 // An extension RenderViewHost has been unregistered. The details are 157 // the RenderViewHost*. 158 NOTIFICATION_EXTENSION_VIEW_UNREGISTERED, 159 160 // Sent by an extension to notify the browser about the results of a unit 161 // test. 162 NOTIFICATION_EXTENSION_TEST_PASSED, 163 NOTIFICATION_EXTENSION_TEST_FAILED, 164 165 // Sent by extension test javascript code, typically in a browser test. The 166 // sender is a std::string representing the extension id, and the details 167 // are a std::string with some message. This is particularly useful when you 168 // want to have C++ code wait for javascript code to do something. 169 NOTIFICATION_EXTENSION_TEST_MESSAGE, 170 171 // Sent when an bookmarks extensions API function was successfully invoked. 172 // The source is the id of the extension that invoked the function, and the 173 // details are a pointer to the const BookmarksFunction in question. 174 NOTIFICATION_EXTENSION_BOOKMARKS_API_INVOKED, 175 176 // Sent when a downloads extensions API event is fired. The source is an 177 // ExtensionDownloadsEventRouter::NotificationSource, and the details is a 178 // std::string containing json. Used for testing. 179 NOTIFICATION_EXTENSION_DOWNLOADS_EVENT, 180 181 // Sent when an omnibox extension has sent back omnibox suggestions. The 182 // source is the BrowserContext*, and the details are an 183 // extensions::api::omnibox::SendSuggestions::Params object. 184 NOTIFICATION_EXTENSION_OMNIBOX_SUGGESTIONS_READY, 185 186 // Sent when the user accepts the input in an extension omnibox keyword 187 // session. The source is the BrowserContext*. 188 NOTIFICATION_EXTENSION_OMNIBOX_INPUT_ENTERED, 189 190 // Sent when an omnibox extension has updated the default suggestion. The 191 // source is the BrowserContext*. 192 NOTIFICATION_EXTENSION_OMNIBOX_DEFAULT_SUGGESTION_CHANGED, 193 194 // Sent when the extension updater starts checking for updates to installed 195 // extensions. The source is a BrowserContext*, and there are no details. 196 NOTIFICATION_EXTENSION_UPDATING_STARTED, 197 198 // The extension updater found an update and will attempt to download and 199 // install it. The source is a BrowserContext*, and the details are an 200 // extensions::UpdateDetails object with the extension id and version of the 201 // found update. 202 NOTIFICATION_EXTENSION_UPDATE_FOUND, 203 204 // Sent when there are new user scripts available. The details are a 205 // pointer to SharedMemory containing the new scripts. 206 NOTIFICATION_USER_SCRIPTS_UPDATED, 207 NOTIFICATION_EXTENSIONS_END 208 }; 209 210 } // namespace extensions 211 212 #endif // EXTENSIONS_BROWSER_NOTIFICATION_TYPES_H_ 213