• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2012 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 CHROME_BROWSER_CHROME_NOTIFICATION_TYPES_H_
6 #define CHROME_BROWSER_CHROME_NOTIFICATION_TYPES_H_
7 
8 #include "build/build_config.h"
9 #include "content/public/browser/notification_types.h"
10 
11 namespace chrome {
12 
13 enum NotificationType {
14   NOTIFICATION_CHROME_START = content::NOTIFICATION_CONTENT_END,
15 
16   // Browser-window ----------------------------------------------------------
17 
18   // This message is sent after a window has been opened.  The source is a
19   // Source<Browser> containing the affected Browser.  No details are
20   // expected.
21   NOTIFICATION_BROWSER_OPENED = NOTIFICATION_CHROME_START,
22 
23   // This message is sent soon after BROWSER_OPENED, and indicates that
24   // the Browser's |window_| is now non-NULL. The source is a Source<Browser>
25   // containing the affected Browser.  No details are expected.
26   NOTIFICATION_BROWSER_WINDOW_READY,
27 
28   // This message is sent when a browser is closing. The source is a
29   // Source<Browser> containing the affected Browser. No details are expected.
30   // This is sent prior to BROWSER_CLOSED, and may be sent more than once for a
31   // particular browser.
32   NOTIFICATION_BROWSER_CLOSING,
33 
34   // This message is sent after a window has been closed.  The source is a
35   // Source<Browser> containing the affected Browser.  No details are exptected.
36   NOTIFICATION_BROWSER_CLOSED,
37 
38   // This message is sent when closing a browser has been cancelled, either by
39   // the user cancelling a beforeunload dialog, or IsClosingPermitted()
40   // disallowing closing. This notification implies that no BROWSER_CLOSING or
41   // BROWSER_CLOSED notification will be sent.
42   // The source is a Source<Browser> containing the affected browser. No details
43   // are expected.
44   NOTIFICATION_BROWSER_CLOSE_CANCELLED,
45 
46   // Indicates that a top window has been closed.  The source is the HWND
47   // that was closed, no details are expected.
48   NOTIFICATION_WINDOW_CLOSED,
49 
50 #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
51   // On Linux maximize can be an asynchronous operation. This notification
52   // indicates that the window has been maximized. The source is
53   // a Source<BrowserWindow> containing the BrowserWindow that was maximized.
54   // No details are expected.
55   NOTIFICATION_BROWSER_WINDOW_MAXIMIZED,
56 #endif
57 
58   // Sent when the language (English, French...) for a page has been detected.
59   // The details Details<std::string> contain the ISO 639-1 language code and
60   // the source is Source<WebContents>.
61   NOTIFICATION_TAB_LANGUAGE_DETERMINED,
62 
63   // Sent when a page has been translated. The source is the tab for that page
64   // (Source<WebContents>) and the details are the language the page was
65   // originally in and the language it was translated to
66   // (std::pair<std::string, std::string>).
67   NOTIFICATION_PAGE_TRANSLATED,
68 
69   // The user has changed the browser theme. The source is a
70   // Source<ThemeService>. There are no details.
71   NOTIFICATION_BROWSER_THEME_CHANGED,
72 
73 #if defined(USE_AURA)
74   // The user has changed the fling curve configuration.
75   // Source<GesturePrefsObserver>. There are no details.
76   NOTIFICATION_BROWSER_FLING_CURVE_PARAMETERS_CHANGED,
77 #endif  // defined(USE_AURA)
78 
79   // Sent when the renderer returns focus to the browser, as part of focus
80   // traversal. The source is the browser, there are no details.
81   NOTIFICATION_FOCUS_RETURNED_TO_BROWSER,
82 
83   // A new tab is created from an existing tab to serve as a target of a
84   // navigation that is about to happen. The source will be a Source<Profile>
85   // corresponding to the profile in which the new tab will live.  Details in
86   // the form of a RetargetingDetails object are provided.
87   NOTIFICATION_RETARGETING,
88 
89   // Application-wide ----------------------------------------------------------
90 
91   // This message is sent when the application is terminating (the last
92   // browser window has shutdown as part of an explicit user-initiated exit,
93   // or the user closed the last browser window on Windows/Linux and there are
94   // no BackgroundContents keeping the browser running). No source or details
95   // are passed.
96   NOTIFICATION_APP_TERMINATING,
97 
98 #if defined(OS_MACOSX)
99   // This notification is sent when the app has no key window, such as when
100   // all windows are closed but the app is still active. No source or details
101   // are provided.
102   NOTIFICATION_NO_KEY_WINDOW,
103 #endif
104 
105   // This is sent when the user has chosen to exit the app, but before any
106   // browsers have closed. This is sent if the user chooses to exit (via exit
107   // menu item or keyboard shortcut) or to restart the process (such as in flags
108   // page), not if Chrome exits by some other means (such as the user closing
109   // the last window). No source or details are passed.
110   //
111   // Note that receiving this notification does not necessarily mean the process
112   // will exit because the shutdown process can be cancelled by an unload
113   // handler.  Use APP_TERMINATING for such needs.
114   NOTIFICATION_CLOSE_ALL_BROWSERS_REQUEST,
115 
116   // Application-modal dialogs -----------------------------------------------
117 
118   // Sent after an application-modal dialog has been shown. The source
119   // is the dialog.
120   NOTIFICATION_APP_MODAL_DIALOG_SHOWN,
121 
122   // This message is sent when a new InfoBar has been added to an
123   // InfoBarService.  The source is a Source<InfoBarService> with a pointer to
124   // the InfoBarService the InfoBar was added to.  The details is a
125   // Details<InfoBar::AddedDetails>.
126   NOTIFICATION_TAB_CONTENTS_INFOBAR_ADDED,
127 
128   // This message is sent when an InfoBar is about to be removed from an
129   // InfoBarService.  The source is a Source<InfoBarService> with a pointer to
130   // the InfoBarService the InfoBar was removed from.  The details is a
131   // Details<InfoBar::RemovedDetails>.
132   NOTIFICATION_TAB_CONTENTS_INFOBAR_REMOVED,
133 
134   // Used to fire notifications about how long various events took to
135   // complete.  E.g., this is used to get more fine grained timings from the
136   // new tab page.  The source is a WebContents and the details is a
137   // MetricEventDurationDetails.
138   NOTIFICATION_METRIC_EVENT_DURATION,
139 
140   // This notification is sent when extensions::TabHelper::SetExtensionApp is
141   // invoked. The source is the extensions::TabHelper SetExtensionApp was
142   // invoked on.
143   NOTIFICATION_TAB_CONTENTS_APPLICATION_EXTENSION_CHANGED,
144 
145   // Tabs --------------------------------------------------------------------
146 
147   // Sent when a tab is added to a WebContentsDelegate. The source is the
148   // WebContentsDelegate and the details is the added WebContents.
149   NOTIFICATION_TAB_ADDED,
150 
151   // This notification is sent after a tab has been appended to the tab_strip.
152   // The source is a Source<WebContents> of the tab being added. There
153   // are no details.
154   NOTIFICATION_TAB_PARENTED,
155 
156   // This message is sent before a tab has been closed.  The source is a
157   // Source<NavigationController> with a pointer to the controller for the
158   // closed tab.  No details are expected.
159   //
160   // See also content::NOTIFICATION_WEB_CONTENTS_DESTROYED, which is sent when
161   // the WebContents containing the NavigationController is destroyed.
162   NOTIFICATION_TAB_CLOSING,
163 
164   // Stuff inside the tabs ---------------------------------------------------
165 
166   // This notification is sent when the result of a find-in-page search is
167   // available with the browser process. The source is a Source<WebContents>.
168   // Details encompass a FindNotificationDetail object that tells whether the
169   // match was found or not found.
170   NOTIFICATION_FIND_RESULT_AVAILABLE,
171 
172   // BackgroundContents ------------------------------------------------------
173 
174   // A new background contents was opened by script. The source is the parent
175   // profile and the details are BackgroundContentsOpenedDetails.
176   NOTIFICATION_BACKGROUND_CONTENTS_OPENED,
177 
178   // The background contents navigated to a new location. The source is the
179   // parent Profile, and the details are the BackgroundContents that was
180   // navigated.
181   NOTIFICATION_BACKGROUND_CONTENTS_NAVIGATED,
182 
183   // The background contents were closed by someone invoking window.close()
184   // or the parent application was uninstalled.
185   // The source is the parent profile, and the details are the
186   // BackgroundContents.
187   NOTIFICATION_BACKGROUND_CONTENTS_CLOSED,
188 
189   // The background contents is being deleted. The source is the
190   // parent Profile, and the details are the BackgroundContents being deleted.
191   NOTIFICATION_BACKGROUND_CONTENTS_DELETED,
192 
193   // The background contents has crashed. The source is the parent Profile,
194   // and the details are the BackgroundContents.
195   NOTIFICATION_BACKGROUND_CONTENTS_TERMINATED,
196 
197   // The background contents associated with a hosted app has changed (either
198   // a new background contents has been created, or an existing background
199   // contents has closed). The source is the parent Profile, and the details
200   // are the BackgroundContentsService.
201   NOTIFICATION_BACKGROUND_CONTENTS_SERVICE_CHANGED,
202 
203   // Chrome has entered/exited background mode. The source is the
204   // BackgroundModeManager and the details are a boolean value which is set to
205   // true if Chrome is now in background mode.
206   NOTIFICATION_BACKGROUND_MODE_CHANGED,
207 
208   // This is sent when a login prompt is shown.  The source is the
209   // Source<NavigationController> for the tab in which the prompt is shown.
210   // Details are a LoginNotificationDetails which provide the LoginHandler
211   // that should be given authentication.
212   NOTIFICATION_AUTH_NEEDED,
213 
214   // This is sent when authentication credentials have been supplied (either
215   // by the user or by an automation service), but before we've actually
216   // received another response from the server.  The source is the
217   // Source<NavigationController> for the tab in which the prompt was shown.
218   // Details are an AuthSuppliedLoginNotificationDetails which provide the
219   // LoginHandler that should be given authentication as well as the supplied
220   // username and password.
221   NOTIFICATION_AUTH_SUPPLIED,
222 
223   // This is sent when an authentication request has been dismissed without
224   // supplying credentials (either by the user or by an automation service).
225   // The source is the Source<NavigationController> for the tab in which the
226   // prompt was shown. Details are a LoginNotificationDetails which provide
227   // the LoginHandler that should be cancelled.
228   NOTIFICATION_AUTH_CANCELLED,
229 
230   // History -----------------------------------------------------------------
231 
232   // Sent when a history service has finished loading. The source is the
233   // profile that the history service belongs to, and the details is the
234   // HistoryService.
235   NOTIFICATION_HISTORY_LOADED,
236 
237   // Sent when a URL has been added or modified. This is used by the in-memory
238   // URL database and the InMemoryURLIndex (both used by autocomplete) to track
239   // changes to the main history system.
240   //
241   // The source is the profile owning the history service that changed, and
242   // the details is history::URLsModifiedDetails that lists the modified or
243   // added URLs.
244   NOTIFICATION_HISTORY_URLS_MODIFIED,
245 
246   // Sent when the user visits a URL.
247   //
248   // The source is the profile owning the history service that changed, and
249   // the details is history::URLVisitedDetails.
250   NOTIFICATION_HISTORY_URL_VISITED,
251 
252   // Sent when one or more URLs are deleted.
253   //
254   // The source is the profile owning the history service that changed, and
255   // the details is history::URLsDeletedDetails that lists the deleted URLs.
256   NOTIFICATION_HISTORY_URLS_DELETED,
257 
258   // Sent when a keyword search term is updated. The source is the Profile and
259   // the details is history::KeywordSearchUpdatedDetails.
260   NOTIFICATION_HISTORY_KEYWORD_SEARCH_TERM_UPDATED,
261 
262   // Sent when a keyword search term is deleted. The source is the Profile and
263   // the details is history::KeywordSearchDeletedDetails.
264   NOTIFICATION_HISTORY_KEYWORD_SEARCH_TERM_DELETED,
265 
266   // Sent by history when the favicon of a URL changes.  The source is the
267   // profile, and the details is FaviconChangedDetails (see
268   // chrome/browser/favicon/favicon_changed_details.h).
269   NOTIFICATION_FAVICON_CHANGED,
270 
271   // Sent by FaviconTabHelper when a tab's favicon has been successfully
272   // updated. The details are a bool indicating whether the
273   // NavigationEntry's favicon URL has changed since the previous
274   // NOTIFICATION_FAVICON_UPDATED notification. The details are true if
275   // there was no previous NOTIFICATION_FAVICON_UPDATED notification for the
276   // current NavigationEntry.
277   NOTIFICATION_FAVICON_UPDATED,
278 
279   // Profiles -----------------------------------------------------------------
280 
281   // Sent after a Profile has been created. This notification is sent both for
282   // normal and OTR profiles.
283   // The details are none and the source is the new profile.
284   NOTIFICATION_PROFILE_CREATED,
285 
286   // Sent after a Profile has been added to ProfileManager.
287   // The details are none and the source is the new profile.
288   NOTIFICATION_PROFILE_ADDED,
289 
290   // Sent early in the process of destroying a Profile, at the time a user
291   // initiates the deletion of a profile versus the much later time when the
292   // profile object is actually destroyed (use NOTIFICATION_PROFILE_DESTROYED).
293   // The details are none and the source is a Profile*.
294   NOTIFICATION_PROFILE_DESTRUCTION_STARTED,
295 
296   // Sent before a Profile is destroyed. This notification is sent both for
297   // normal and OTR profiles.
298   // The details are none and the source is a Profile*.
299   NOTIFICATION_PROFILE_DESTROYED,
300 
301   // Sent after the URLRequestContextGetter for a Profile has been initialized.
302   // The details are none and the source is a Profile*.
303   NOTIFICATION_PROFILE_URL_REQUEST_CONTEXT_GETTER_INITIALIZED,
304 
305   // TopSites ----------------------------------------------------------------
306 
307   // Sent by TopSites when it finishes loading. The source is the profile the
308   // details the TopSites.
309   NOTIFICATION_TOP_SITES_LOADED,
310 
311   // Sent by TopSites when the either one of the most visited urls changed, or
312   // one of the images changes. The source is the TopSites, the details not
313   // used.
314   NOTIFICATION_TOP_SITES_CHANGED,
315 
316   // Task Manager ------------------------------------------------------------
317 
318   // Sent when a renderer process is notified of new v8 heap statistics. The
319   // source is the ID of the renderer process, and the details are a
320   // V8HeapStatsDetails object.
321   NOTIFICATION_RENDERER_V8_HEAP_STATS_COMPUTED,
322 
323   // Non-history storage services --------------------------------------------
324 
325   // Sent when a TemplateURL is removed from the model. The source is the
326   // Profile, and the details the id of the TemplateURL being removed.
327   NOTIFICATION_TEMPLATE_URL_REMOVED,
328 
329   // The state of a web resource has been changed. A resource may have been
330   // added, removed, or altered. Source is WebResourceService, and the
331   // details are NoDetails.
332   NOTIFICATION_PROMO_RESOURCE_STATE_CHANGED,
333 
334   // A safe browsing database update completed.  Source is the
335   // SafeBrowsingService and the details are a bool indicating whether the
336   // update was successful.
337   NOTIFICATION_SAFE_BROWSING_UPDATE_COMPLETE,
338 
339   // Autocomplete ------------------------------------------------------------
340 
341   // Sent by the autocomplete controller when done.  The source is the
342   // AutocompleteController, the details not used.
343   NOTIFICATION_AUTOCOMPLETE_CONTROLLER_RESULT_READY,
344 
345   // This is sent when an item of the Omnibox popup is selected. The source
346   // is the profile.
347   NOTIFICATION_OMNIBOX_OPENED_URL,
348 
349   // This is sent from Instant when the omnibox focus state changes.
350   NOTIFICATION_OMNIBOX_FOCUS_CHANGED,
351 
352   // Printing ----------------------------------------------------------------
353 
354   // Notification from PrintJob that an event occurred. It can be that a page
355   // finished printing or that the print job failed. Details is
356   // PrintJob::EventDetails. Source is a PrintJob.
357   NOTIFICATION_PRINT_JOB_EVENT,
358 
359   // Sent when a PrintJob has been released.
360   // Source is the WebContents that holds the print job.
361   NOTIFICATION_PRINT_JOB_RELEASED,
362 
363   // Shutdown ----------------------------------------------------------------
364 
365   // Sent when WM_ENDSESSION has been received, after the browsers have been
366   // closed but before browser process has been shutdown. The source/details
367   // are all source and no details.
368   NOTIFICATION_SESSION_END,
369 
370   // User Scripts ------------------------------------------------------------
371 
372   // Sent when there are new user scripts available.  The details are a
373   // pointer to SharedMemory containing the new scripts.
374   NOTIFICATION_USER_SCRIPTS_UPDATED,
375 
376   // Extensions --------------------------------------------------------------
377 
378   // Sent when a CrxInstaller finishes. Source is the CrxInstaller that
379   // finished. The details are the extension which was installed.
380   NOTIFICATION_CRX_INSTALLER_DONE,
381 
382   // Sent when the known installed extensions have all been loaded.  In
383   // testing scenarios this can happen multiple times if extensions are
384   // unloaded and reloaded. The source is a Profile.
385   NOTIFICATION_EXTENSIONS_READY,
386 
387   // DEPRECATED: Use ExtensionRegistry::AddObserver instead.
388   //
389   // Sent when a new extension is loaded. The details are an Extension, and
390   // the source is a Profile.
391   NOTIFICATION_EXTENSION_LOADED_DEPRECATED,
392 
393   // An error occured while attempting to load an extension. The details are a
394   // string with details about why the load failed.
395   NOTIFICATION_EXTENSION_LOAD_ERROR,
396 
397   // Sent when an extension is enabled. Under most circumstances, listeners
398   // will want to use NOTIFICATION_EXTENSION_LOADED_DEPRECATED. This
399   // notification is only
400   // fired when the "Enable" button is hit in the extensions tab.  The details
401   // are an Extension, and the source is a Profile.
402   NOTIFICATION_EXTENSION_ENABLED,
403 
404   // Sent when attempting to load a new extension, but they are disabled. The
405   // details are an Extension*, and the source is a Profile*.
406   NOTIFICATION_EXTENSION_UPDATE_DISABLED,
407 
408   // Sent when an extension's permissions change. The details are an
409   // UpdatedExtensionPermissionsInfo, and the source is a Profile.
410   NOTIFICATION_EXTENSION_PERMISSIONS_UPDATED,
411 
412   // DEPRECATED: Use ExtensionRegistry::AddObserver instead.
413   //
414   // Sent when new extensions are installed, or existing extensions are updated.
415   // The details are an InstalledExtensionInfo, and the source is a Profile.
416   NOTIFICATION_EXTENSION_INSTALLED_DEPRECATED,
417 
418   // An error occured during extension install. The details are a string with
419   // details about why the install failed.
420   NOTIFICATION_EXTENSION_INSTALL_ERROR,
421 
422   // DEPRECATED: Use ExtensionRegistry::AddObserver instead.
423   //
424   // Sent when an extension has been uninstalled. The details are an Extension,
425   // and the source is a Profile.
426   NOTIFICATION_EXTENSION_UNINSTALLED_DEPRECATED,
427 
428   // Sent when an extension uninstall is not allowed because the extension is
429   // not user manageable.  The details are an Extension, and the source is a
430   // Profile.
431   NOTIFICATION_EXTENSION_UNINSTALL_NOT_ALLOWED,
432 
433   // DEPRECATED: Use ExtensionRegistry::AddObserver instead.
434   //
435   // Sent when an extension is unloaded. This happens when an extension is
436   // uninstalled or disabled. The details are an UnloadedExtensionInfo, and
437   // the source is a Profile.
438   //
439   // Note that when this notification is sent, ExtensionService has already
440   // removed the extension from its internal state.
441   NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED,
442 
443   // Sent when an Extension object is removed from ExtensionService. This
444   // can happen when an extension is uninstalled, upgraded, or blacklisted,
445   // including all cases when the Extension is deleted. The details are an
446   // Extension, and the source is a Profile.
447   NOTIFICATION_EXTENSION_REMOVED,
448 
449   // Sent after a new ExtensionHost is created. The details are
450   // an ExtensionHost* and the source is a Profile*.
451   NOTIFICATION_EXTENSION_HOST_CREATED,
452 
453   // Sent before an ExtensionHost is destroyed. The details are
454   // an ExtensionHost* and the source is a Profile*.
455   NOTIFICATION_EXTENSION_HOST_DESTROYED,
456 
457   // Sent by an ExtensionHost when it has finished its initial page load,
458   // including any external resources.
459   // The details are an ExtensionHost* and the source is a Profile*.
460   NOTIFICATION_EXTENSION_HOST_DID_STOP_LOADING,
461 
462   // Sent by an ExtensionHost when its render view requests closing through
463   // window.close(). The details are an ExtensionHost* and the source is a
464   // Profile*.
465   NOTIFICATION_EXTENSION_HOST_VIEW_SHOULD_CLOSE,
466 
467   // Sent when extension render process ends (whether it crashes or closes).
468   // The details are an ExtensionHost* and the source is a Profile*. Not sent
469   // during browser shutdown.
470   NOTIFICATION_EXTENSION_PROCESS_TERMINATED,
471 
472   // Sent when a background page is ready so other components can load.
473   NOTIFICATION_EXTENSION_BACKGROUND_PAGE_READY,
474 
475   // Sent when a browser action's state has changed. The source is the
476   // ExtensionAction* that changed.  The details are the Profile* that the
477   // browser action belongs to.
478   NOTIFICATION_EXTENSION_BROWSER_ACTION_UPDATED,
479 
480   // Sent when the count of page actions has changed. Note that some of them
481   // may not apply to the current page. The source is a LocationBar*. There
482   // are no details.
483   NOTIFICATION_EXTENSION_PAGE_ACTION_COUNT_CHANGED,
484 
485   // Sent when a browser action's visibility has changed. The source is the
486   // ExtensionPrefs* that changed, and the details are a std::string with the
487   // extension's ID.
488   NOTIFICATION_EXTENSION_BROWSER_ACTION_VISIBILITY_CHANGED,
489 
490   // Sent when a page action's visibility has changed. The source is the
491   // ExtensionAction* that changed. The details are a WebContents*.
492   NOTIFICATION_EXTENSION_PAGE_ACTION_VISIBILITY_CHANGED,
493 
494   // Sent when a system indicator action's state has changed. The source is the
495   // Profile* that the browser action belongs to. The details are the
496   // ExtensionAction* that changed.
497   NOTIFICATION_EXTENSION_SYSTEM_INDICATOR_UPDATED,
498 
499   // Sent when an extension command has been removed. The source is the profile
500   // and the details is a std::pair of two std::string objects (an extension ID
501   // and the name of the command being removed).
502   NOTIFICATION_EXTENSION_COMMAND_REMOVED,
503 
504   // Sent when an extension command has been added. The source is the profile
505   // and the details is a std::pair of two std::string objects (an extension ID
506   // and the name of the command being added).
507   NOTIFICATION_EXTENSION_COMMAND_ADDED,
508 
509   // Sent when an extension command shortcut for a browser action is activated
510   // on Mac. The source is the profile and the details is a std::pair of a
511   // std::string containing an extension ID and a gfx::NativeWindow for the
512   // associated window.
513   NOTIFICATION_EXTENSION_COMMAND_BROWSER_ACTION_MAC,
514 
515   // Sent when an extension command shortcut for a page action is activated
516   // on Mac. The source is the profile and the details is a std::pair of a
517   // std::string containing an extension ID and a gfx::NativeWindow for the
518   // associated window.
519   NOTIFICATION_EXTENSION_COMMAND_PAGE_ACTION_MAC,
520 
521   // A new extension RenderViewHost has been registered. The details are
522   // the RenderViewHost*.
523   NOTIFICATION_EXTENSION_VIEW_REGISTERED,
524 
525   // An extension RenderViewHost has been unregistered. The details are
526   // the RenderViewHost*.
527   NOTIFICATION_EXTENSION_VIEW_UNREGISTERED,
528 
529   // Sent by an extension to notify the browser about the results of a unit
530   // test.
531   NOTIFICATION_EXTENSION_TEST_PASSED,
532   NOTIFICATION_EXTENSION_TEST_FAILED,
533 
534   // Sent by extension test javascript code, typically in a browser test. The
535   // sender is a std::string representing the extension id, and the details
536   // are a std::string with some message. This is particularly useful when you
537   // want to have C++ code wait for javascript code to do something.
538   NOTIFICATION_EXTENSION_TEST_MESSAGE,
539 
540   // Sent when an bookmarks extensions API function was successfully invoked.
541   // The source is the id of the extension that invoked the function, and the
542   // details are a pointer to the const BookmarksFunction in question.
543   NOTIFICATION_EXTENSION_BOOKMARKS_API_INVOKED,
544 
545   // Sent when a downloads extensions API event is fired. The source is an
546   // ExtensionDownloadsEventRouter::NotificationSource, and the details is a
547   // std::string containing json. Used for testing.
548   NOTIFICATION_EXTENSION_DOWNLOADS_EVENT,
549 
550   // Sent when an omnibox extension has sent back omnibox suggestions. The
551   // source is the profile, and the details are an
552   // extensions::api::omnibox::SendSuggestions::Params object.
553   NOTIFICATION_EXTENSION_OMNIBOX_SUGGESTIONS_READY,
554 
555   // Sent when the user accepts the input in an extension omnibox keyword
556   // session. The source is the profile.
557   NOTIFICATION_EXTENSION_OMNIBOX_INPUT_ENTERED,
558 
559   // Sent when an omnibox extension has updated the default suggestion. The
560   // source is the profile.
561   NOTIFICATION_EXTENSION_OMNIBOX_DEFAULT_SUGGESTION_CHANGED,
562 
563   // Sent when the extension updater starts checking for updates to installed
564   // extensions. The source is a Profile, and there are no details.
565   NOTIFICATION_EXTENSION_UPDATING_STARTED,
566 
567   // The extension updater found an update and will attempt to download and
568   // install it. The source is a Profile, and the details are an
569   // extensions::UpdateDetails object with the extension id and version of the
570   // found update.
571   NOTIFICATION_EXTENSION_UPDATE_FOUND,
572 
573   // Upgrade notifications ---------------------------------------------------
574 
575   // Sent when Chrome believes an update has been installed and available for
576   // long enough with the user shutting down to let it take effect. See
577   // upgrade_detector.cc for details on how long it waits. No details are
578   // expected.
579   NOTIFICATION_UPGRADE_RECOMMENDED,
580 
581   // Sent when a critical update has been installed. No details are expected.
582   NOTIFICATION_CRITICAL_UPGRADE_INSTALLED,
583 
584   // Sent when the current install is outdated. No details are expected.
585   NOTIFICATION_OUTDATED_INSTALL,
586 
587   // Sent when the current install is outdated and auto-update (AU) is disabled.
588   // No details are expected.
589   NOTIFICATION_OUTDATED_INSTALL_NO_AU,
590 
591   // Software incompatibility notifications ----------------------------------
592 
593   // Sent when Chrome has finished compiling the list of loaded modules (and
594   // other modules of interest). No details are expected.
595   NOTIFICATION_MODULE_LIST_ENUMERATED,
596 
597   // Sent when Chrome is done scanning the module list and when the user has
598   // acknowledged the module incompatibility. No details are expected.
599   NOTIFICATION_MODULE_INCOMPATIBILITY_BADGE_CHANGE,
600 
601   // Content Settings --------------------------------------------------------
602 
603   // Sent when content settings change. The source is a HostContentSettings
604   // object, the details are ContentSettingsNotificationsDetails.
605   NOTIFICATION_CONTENT_SETTINGS_CHANGED,
606 
607   // Sent when the collect cookies dialog is shown. The source is a
608   // TabSpecificContentSettings object, there are no details.
609   NOTIFICATION_COLLECTED_COOKIES_SHOWN,
610 
611   // Sent when a non-default setting in the the notification content settings
612   // map has changed. The source is the DesktopNotificationService, the
613   // details are None.
614   NOTIFICATION_DESKTOP_NOTIFICATION_SETTINGS_CHANGED,
615 
616   // Sent when content settings change for a tab. The source is a
617   // content::WebContents object, the details are None.
618   NOTIFICATION_WEB_CONTENT_SETTINGS_CHANGED,
619 
620   // Sync --------------------------------------------------------------------
621 
622   // The sync service has finished the datatype configuration process. The
623   // source is the ProfileSyncService object of the Profile. There are no
624   // details.
625   NOTIFICATION_SYNC_CONFIGURE_DONE,
626 
627   // A service is requesting a sync datatype refresh for the current profile.
628   // The details value is a const syncer::ModelTypeSet.
629   // If the payload map is empty, it should be treated as an invalidation for
630   // all enabled types. This is used by session sync.
631   NOTIFICATION_SYNC_REFRESH_LOCAL,
632 
633   // External notification requesting a sync datatype refresh for the current
634   // profile. The details value is a const syncer::ObjectIdInvalidationMap.
635   // If the payload map is empty, it should be treated as an invalidation for
636   // all enabled types. This is used for notifications on Android.
637   NOTIFICATION_SYNC_REFRESH_REMOTE,
638 
639   // The session service has been saved.  This notification type is only sent
640   // if there were new SessionService commands to save, and not for no-op save
641   // operations.
642   NOTIFICATION_SESSION_SERVICE_SAVED,
643 
644   // A foreign session has been updated.  If a new tab page is open, the
645   // foreign session handler needs to update the new tab page's foreign
646   // session data.
647   NOTIFICATION_FOREIGN_SESSION_UPDATED,
648 
649   // Foreign sessions has been disabled. New tabs should not display foreign
650   // session data.
651   NOTIFICATION_FOREIGN_SESSION_DISABLED,
652 
653   // All tab metadata has been loaded from disk asynchronously.
654   // Sent on the UI thread.
655   // The source is the Profile. There are no details.
656   NOTIFICATION_SESSION_RESTORE_COMPLETE,
657 
658   // Cookies -----------------------------------------------------------------
659 
660   // Sent when a cookie changes. The source is a Profile object, the details
661   // are a ChromeCookieDetails object.
662   NOTIFICATION_COOKIE_CHANGED,
663 
664   // Download Notifications --------------------------------------------------
665 
666   // Sent when a download is initiated. It is possible that the download will
667   // not actually begin due to the DownloadRequestLimiter cancelling it
668   // prematurely.
669   // The source is the corresponding RenderViewHost. There are no details.
670   NOTIFICATION_DOWNLOAD_INITIATED,
671 
672   // Misc --------------------------------------------------------------------
673 
674   // Sent when PerformanceMonitor has finished all the initial steps of data
675   // collection and has begun passively observing. The source is the
676   // PerformanceMonitor*. No details are expected.
677   NOTIFICATION_PERFORMANCE_MONITOR_INITIALIZED,
678 
679 #if defined(OS_CHROMEOS)
680   // Sent when a chromium os user logs in.
681   // The details are a chromeos::User object.
682   NOTIFICATION_LOGIN_USER_CHANGED,
683 
684   // Sent immediately after the logged-in user's profile is ready.
685   // The details are a Profile object.
686   NOTIFICATION_LOGIN_USER_PROFILE_PREPARED,
687 
688   // Sent when the chromium session of a particular user is started.
689   // If this is a new user on the machine this will not be sent until a profile
690   // picture has been selected, unlike NOTIFICATION_LOGIN_USER_CHANGED which is
691   // sent immediately after the user has logged in. This will be sent again if
692   // the browser crashes and restarts.
693   // The details are a chromeos::User object.
694   NOTIFICATION_SESSION_STARTED,
695 
696   // Sent when user image is updated.
697   NOTIFICATION_LOGIN_USER_IMAGE_CHANGED,
698 
699   // Sent by UserManager when a profile image download has been completed.
700   NOTIFICATION_PROFILE_IMAGE_UPDATED,
701 
702   // Sent by UserManager when profile image download has failed or user has the
703   // default profile image or no profile image at all. No details are expected.
704   NOTIFICATION_PROFILE_IMAGE_UPDATE_FAILED,
705 
706   // Sent when a chromium os user attempts to log in.  The source is
707   // all and the details are AuthenticationNotificationDetails.
708   NOTIFICATION_LOGIN_AUTHENTICATION,
709 
710   // Sent when a network error message is displayed on the WebUI login screen.
711   // First paint event of this fires NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE.
712   NOTIFICATION_LOGIN_NETWORK_ERROR_SHOWN,
713 
714   // Sent when the specific part of login/lock WebUI is considered to be
715   // visible. That moment is tracked as the first paint event after one of the:
716   // NOTIFICATION_LOGIN_NETWORK_ERROR_SHOWN
717   //
718   // Possible series of notifications:
719   // 1. Boot into fresh OOBE
720   //    NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE
721   // 2. Boot into user pods list (normal boot). Same for lock screen.
722   //    NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE
723   // 3. Boot into GAIA sign in UI (user pods display disabled or no users):
724   //    if no network is connected or flaky network
725   //    (NOTIFICATION_LOGIN_NETWORK_ERROR_SHOWN +
726   //     NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE)
727   //    NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE
728   // 4. Boot into retail mode
729   //    NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE
730   // 5. Boot into kiosk mode
731   //    NOTIFICATION_KIOSK_APP_LAUNCHED
732   NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE,
733 
734   // Sent when proxy dialog is closed.
735   NOTIFICATION_LOGIN_PROXY_CHANGED,
736 
737   // Send when kiosk auto-launch warning screen is visible.
738   NOTIFICATION_KIOSK_AUTOLAUNCH_WARNING_VISIBLE,
739 
740   // Send when kiosk auto-launch warning screen had completed.
741   NOTIFICATION_KIOSK_AUTOLAUNCH_WARNING_COMPLETED,
742 
743   // Send when enable consumer kiosk warning screen is visible.
744   NOTIFICATION_KIOSK_ENABLE_WARNING_VISIBLE,
745 
746   // Send when consumer kiosk has been enabled.
747   NOTIFICATION_KIOSK_ENABLED,
748 
749   // Send when enable consumer kiosk warning screen had completed.
750   NOTIFICATION_KIOSK_ENABLE_WARNING_COMPLETED,
751 
752   // Sent when kiosk app list is loaded in UI.
753   NOTIFICATION_KIOSK_APPS_LOADED,
754 
755   // Sent when a kiosk app is launched.
756   NOTIFICATION_KIOSK_APP_LAUNCHED,
757 
758   // Sent when the user list has changed.
759   NOTIFICATION_USER_LIST_CHANGED,
760 
761   // Sent when the screen lock state has changed. The source is
762   // ScreenLocker and the details is a bool specifing that the
763   // screen is locked. When details is a false, the source object
764   // is being deleted, so the receiver shouldn't use the screen locker
765   // object.
766   NOTIFICATION_SCREEN_LOCK_STATE_CHANGED,
767 
768   // Sent by DeviceSettingsService to indicate that the ownership status
769   // changed. If you can, please use DeviceSettingsService::Observer instead.
770   // Other singleton-based services can't use that because Observer
771   // unregistration is impossible due to unpredictable deletion order.
772   NOTIFICATION_OWNERSHIP_STATUS_CHANGED,
773 
774   // Sent by SIM unlock dialog when it has finished with the process of
775   // updating RequirePin setting. RequirePin setting might have been changed
776   // to a new value or update might have been canceled.
777   // In either case notification is sent and details contain a bool
778   // that represents current value.
779   NOTIFICATION_REQUIRE_PIN_SETTING_CHANGE_ENDED,
780 
781   // Sent by SIM unlock dialog when it has finished the EnterPin or
782   // EnterPuk dialog, either because the user cancelled, or entered a
783   // PIN or PUK.
784   NOTIFICATION_ENTER_PIN_ENDED,
785 #endif
786 
787 #if defined(TOOLKIT_VIEWS)
788   // Sent when a bookmark's context menu is shown. Used to notify
789   // tests that the context menu has been created and shown.
790   NOTIFICATION_BOOKMARK_CONTEXT_MENU_SHOWN,
791 
792   // Notification that the nested loop using during tab dragging has returned.
793   // Used for testing.
794   NOTIFICATION_TAB_DRAG_LOOP_DONE,
795 #endif
796 
797   // Send when a context menu is shown. Used to notify tests that the context
798   // menu has been created and shown.
799   NOTIFICATION_RENDER_VIEW_CONTEXT_MENU_SHOWN,
800 
801   // Sent when the Instant Controller determines whether an Instant tab supports
802   // the Instant API or not.
803   NOTIFICATION_INSTANT_TAB_SUPPORT_DETERMINED,
804 
805   // Sent when the Instant Controller determines whether the NTP supports the
806   // Instant API or not.
807   NOTIFICATION_INSTANT_NTP_SUPPORT_DETERMINED,
808 
809   // Sent when the CaptivePortalService checks if we're behind a captive portal.
810   // The Source is the Profile the CaptivePortalService belongs to, and the
811   // Details are a Details<CaptivePortalService::CheckResults>.
812   NOTIFICATION_CAPTIVE_PORTAL_CHECK_RESULT,
813 
814   // Sent when the applications in the NTP app launcher have been reordered.
815   // The details, if not NoDetails, is the std::string ID of the extension that
816   // was moved.
817   NOTIFICATION_EXTENSION_LAUNCHER_REORDERED,
818 
819   // Sent when an app is installed and an NTP has been shown. Source is the
820   // WebContents that was shown, and Details is the string ID of the extension
821   // which was installed.
822   NOTIFICATION_APP_INSTALLED_TO_NTP,
823 
824   // Similar to NOTIFICATION_APP_INSTALLED_TO_NTP but used to nofity ash AppList
825   // about installed app. Source is the profile in which the app is installed
826   // and Details is the string ID of the extension.
827   NOTIFICATION_APP_INSTALLED_TO_APPLIST,
828 
829 #if defined(USE_ASH)
830   // Sent when wallpaper show animation has finished.
831   NOTIFICATION_WALLPAPER_ANIMATION_FINISHED,
832 
833   // Sent when the Ash session has started. In its current incantation this is
834   // generated when the metro app has connected to the browser IPC channel.
835   // Used only on Windows.
836   NOTIFICATION_ASH_SESSION_STARTED,
837   // Sent when the Ash session ended. Currently this means the metro app exited.
838   // Used only on Windows.
839   NOTIFICATION_ASH_SESSION_ENDED,
840 #endif
841 
842   // Protocol Handler Registry -----------------------------------------------
843   // Sent when a ProtocolHandlerRegistry is changed. The source is the profile.
844   NOTIFICATION_PROTOCOL_HANDLER_REGISTRY_CHANGED,
845 
846   // Sent when the cached profile info has changed.
847   NOTIFICATION_PROFILE_CACHED_INFO_CHANGED,
848 
849   // Sent when the cached profile has finished writing a profile picture to
850   // disk.
851   NOTIFICATION_PROFILE_CACHE_PICTURE_SAVED,
852 
853   // Sent when the browser enters or exits fullscreen mode.
854   NOTIFICATION_FULLSCREEN_CHANGED,
855 
856   // Sent when the FullscreenController changes, confirms, or denies mouse lock.
857   // The source is the browser's FullscreenController, no details.
858   NOTIFICATION_MOUSE_LOCK_CHANGED,
859 
860   // Sent by the PluginPrefs when there is a change of plugin enable/disable
861   // status. The source is the profile.
862   NOTIFICATION_PLUGIN_ENABLE_STATUS_CHANGED,
863 
864   // Panels Notifications. The Panels are small browser windows near the bottom
865   // of the screen.
866   // Sent when all nonblocking bounds animations are finished across panels.
867   // Used only in unit testing.
868   NOTIFICATION_PANEL_BOUNDS_ANIMATIONS_FINISHED,
869 
870   // Sent when panel gains/loses focus.
871   // The source is the Panel, no details.
872   // Used only in unit testing.
873   NOTIFICATION_PANEL_CHANGED_ACTIVE_STATUS,
874 
875   // Sent when panel is minimized/restored/shows title only etc.
876   // The source is the Panel, no details.
877   NOTIFICATION_PANEL_CHANGED_EXPANSION_STATE,
878 
879   // Sent when panel window size is known. This is for platforms where the
880   // window creation is async and size of the window only becomes known later.
881   // Used only in unit testing.
882   NOTIFICATION_PANEL_WINDOW_SIZE_KNOWN,
883 
884   // Sent when panel app icon is loaded.
885   // Used only in unit testing.
886   NOTIFICATION_PANEL_APP_ICON_LOADED,
887 
888   // Sent when panel collection get updated.
889   // The source is the PanelCollection, no details.
890   // Used only in coordination with notification balloons.
891   NOTIFICATION_PANEL_COLLECTION_UPDATED,
892 
893   // Sent when panel is closed.
894   // The source is the Panel, no details.
895   NOTIFICATION_PANEL_CLOSED,
896 
897   // Sent when a global error has changed and the error UI should update it
898   // self. The source is a Source<Profile> containing the profile for the
899   // error. The detail is a GlobalError object that has changed or NULL if
900   // all error UIs should update.
901   NOTIFICATION_GLOBAL_ERRORS_CHANGED,
902 
903   // BrowsingDataRemover ----------------------------------------------------
904   // Sent on the UI thread after BrowsingDataRemover has removed browsing data
905   // but before it has notified its explicit observers. The source is a
906   // Source<Profile> containing the profile in which browsing data was removed,
907   // and the detail is a BrowsingDataRemover::NotificationDetail containing the
908   // removal mask and the start of the removal timeframe with which
909   // BrowsingDataRemove::Remove was called.
910   NOTIFICATION_BROWSING_DATA_REMOVED,
911 
912   // The user accepted or dismissed a SSL client authentication request.
913   // The source is a Source<net::HttpNetworkSession>.  Details is a
914   // (std::pair<net::SSLCertRequestInfo*, net::X509Certificate*>).
915   NOTIFICATION_SSL_CLIENT_AUTH_CERT_SELECTED,
916 
917   // Session Restore --------------------------------------------------------
918 
919   // Sent when synchronous (startup) session restore completes. No details or
920   // source.
921   NOTIFICATION_SESSION_RESTORE_DONE,
922 
923   // Note:-
924   // Currently only Content and Chrome define and use notifications.
925   // Custom notifications not belonging to Content and Chrome should start
926   // from here.
927   NOTIFICATION_CHROME_END,
928 };
929 
930 }  // namespace chrome
931 
932 #endif  // CHROME_BROWSER_CHROME_NOTIFICATION_TYPES_H_
933