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.
5 #ifndef EXTENSIONS_BROWSER_NOTIFICATION_TYPES_H_
6 #define EXTENSIONS_BROWSER_NOTIFICATION_TYPES_H_
8 #include "content/public/browser/notification_types.h"
10 namespace extensions
{
12 // Only notifications fired by the extensions module should be here. The
13 // extensions module should not listen to notifications fired by the
15 enum NotificationType
{
16 NOTIFICATION_EXTENSIONS_START
= content::NOTIFICATION_CONTENT_END
,
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
,
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*.
26 // DEPRECATED: Use ExtensionSystem::Get(browser_context)->ready().Post().
27 NOTIFICATION_EXTENSIONS_READY_DEPRECATED
,
29 // Sent when a new extension is loaded. The details are an Extension, and
30 // the source is a BrowserContext*.
32 // DEPRECATED: Use ExtensionRegistry::AddObserver instead.
33 NOTIFICATION_EXTENSION_LOADED_DEPRECATED
,
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
,
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
44 NOTIFICATION_EXTENSION_ENABLED
,
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
,
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
,
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*.
58 // DEPRECATED: Use ExtensionRegistry::AddObserver instead.
59 NOTIFICATION_EXTENSION_WILL_BE_INSTALLED_DEPRECATED
,
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
,
65 // Sent when an extension has been uninstalled. The details are an Extension,
66 // and the source is a BrowserContext*.
68 // DEPRECATED: Use ExtensionRegistry::AddObserver instead.
69 NOTIFICATION_EXTENSION_UNINSTALLED_DEPRECATED
,
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
74 NOTIFICATION_EXTENSION_UNINSTALL_NOT_ALLOWED
,
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*.
80 // Note that when this notification is sent, the ExtensionService and the
81 // ExtensionRegistry have already removed the extension from their internal
84 // DEPRECATED: Use ExtensionRegistry::AddObserver instead.
85 NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED
,
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
,
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
,
97 // Sent before an ExtensionHost* is destroyed. The details are
98 // an ExtensionHost* and the source is a BrowserContext*.
99 NOTIFICATION_EXTENSION_HOST_DESTROYED
,
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
,
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
109 NOTIFICATION_EXTENSION_HOST_VIEW_SHOULD_CLOSE
,
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
,
116 // Sent when a background page is ready so other components can load.
117 NOTIFICATION_EXTENSION_BACKGROUND_PAGE_READY
,
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
122 NOTIFICATION_EXTENSION_PAGE_ACTION_COUNT_CHANGED
,
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
127 NOTIFICATION_EXTENSION_BROWSER_ACTION_VISIBILITY_CHANGED
,
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
,
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
,
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
,
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
148 // std::string containing an extension ID and a gfx::NativeWindow for the
149 // associated window.
150 NOTIFICATION_EXTENSION_COMMAND_PAGE_ACTION_MAC
,
152 // A new extension RenderViewHost has been registered. The details are
153 // the RenderViewHost*.
154 NOTIFICATION_EXTENSION_VIEW_REGISTERED
,
156 // An extension RenderViewHost has been unregistered. The details are
157 // the RenderViewHost*.
158 NOTIFICATION_EXTENSION_VIEW_UNREGISTERED
,
160 // Sent by an extension to notify the browser about the results of a unit
162 NOTIFICATION_EXTENSION_TEST_PASSED
,
163 NOTIFICATION_EXTENSION_TEST_FAILED
,
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
,
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
,
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
,
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
,
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
,
190 // Sent when an omnibox extension has updated the default suggestion. The
191 // source is the BrowserContext*.
192 NOTIFICATION_EXTENSION_OMNIBOX_DEFAULT_SUGGESTION_CHANGED
,
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
,
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
202 NOTIFICATION_EXTENSION_UPDATE_FOUND
,
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
210 } // namespace extensions
212 #endif // EXTENSIONS_BROWSER_NOTIFICATION_TYPES_H_