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 "extensions/browser/notification_types.h"
10
11namespace chrome {
12
13enum NotificationType {
14  NOTIFICATION_CHROME_START = extensions::NOTIFICATION_EXTENSIONS_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 FaviconTabHelper when a tab's favicon has been successfully
267  // updated. The details are a bool indicating whether the
268  // NavigationEntry's favicon URL has changed since the previous
269  // NOTIFICATION_FAVICON_UPDATED notification. The details are true if
270  // there was no previous NOTIFICATION_FAVICON_UPDATED notification for the
271  // current NavigationEntry.
272  NOTIFICATION_FAVICON_UPDATED,
273
274  // Profiles -----------------------------------------------------------------
275
276  // Sent after a Profile has been created. This notification is sent both for
277  // normal and OTR profiles.
278  // The details are none and the source is the new profile.
279  NOTIFICATION_PROFILE_CREATED,
280
281  // Sent after a Profile has been added to ProfileManager.
282  // The details are none and the source is the new profile.
283  NOTIFICATION_PROFILE_ADDED,
284
285  // Sent early in the process of destroying a Profile, at the time a user
286  // initiates the deletion of a profile versus the much later time when the
287  // profile object is actually destroyed (use NOTIFICATION_PROFILE_DESTROYED).
288  // The details are none and the source is a Profile*.
289  NOTIFICATION_PROFILE_DESTRUCTION_STARTED,
290
291  // Sent before a Profile is destroyed. This notification is sent both for
292  // normal and OTR profiles.
293  // The details are none and the source is a Profile*.
294  NOTIFICATION_PROFILE_DESTROYED,
295
296  // Sent after the URLRequestContextGetter for a Profile has been initialized.
297  // The details are none and the source is a Profile*.
298  NOTIFICATION_PROFILE_URL_REQUEST_CONTEXT_GETTER_INITIALIZED,
299
300  // TopSites ----------------------------------------------------------------
301
302  // Sent by TopSites when it finishes loading. The source is the profile the
303  // details the TopSites.
304  NOTIFICATION_TOP_SITES_LOADED,
305
306  // Sent by TopSites when the either one of the most visited urls changed, or
307  // one of the images changes. The source is the TopSites, the details not
308  // used.
309  NOTIFICATION_TOP_SITES_CHANGED,
310
311  // Task Manager ------------------------------------------------------------
312
313  // Sent when a renderer process is notified of new v8 heap statistics. The
314  // source is the ID of the renderer process, and the details are a
315  // V8HeapStatsDetails object.
316  NOTIFICATION_RENDERER_V8_HEAP_STATS_COMPUTED,
317
318  // Non-history storage services --------------------------------------------
319
320  // The state of a web resource has been changed. A resource may have been
321  // added, removed, or altered. Source is WebResourceService, and the
322  // details are NoDetails.
323  NOTIFICATION_PROMO_RESOURCE_STATE_CHANGED,
324
325  // A safe browsing database update completed.  Source is the
326  // SafeBrowsingService and the details are a bool indicating whether the
327  // update was successful.
328  NOTIFICATION_SAFE_BROWSING_UPDATE_COMPLETE,
329
330  // Autocomplete ------------------------------------------------------------
331
332  // Sent by the autocomplete controller when done.  The source is the
333  // AutocompleteController, the details not used.
334  NOTIFICATION_AUTOCOMPLETE_CONTROLLER_RESULT_READY,
335
336  // This is sent when an item of the Omnibox popup is selected. The source
337  // is the profile.
338  NOTIFICATION_OMNIBOX_OPENED_URL,
339
340  // This is sent from Instant when the omnibox focus state changes.
341  NOTIFICATION_OMNIBOX_FOCUS_CHANGED,
342
343  // Printing ----------------------------------------------------------------
344
345  // Notification from PrintJob that an event occurred. It can be that a page
346  // finished printing or that the print job failed. Details is
347  // PrintJob::EventDetails. Source is a PrintJob.
348  NOTIFICATION_PRINT_JOB_EVENT,
349
350  // Sent when a PrintJob has been released.
351  // Source is the WebContents that holds the print job.
352  NOTIFICATION_PRINT_JOB_RELEASED,
353
354  // Shutdown ----------------------------------------------------------------
355
356  // Sent when WM_ENDSESSION has been received, after the browsers have been
357  // closed but before browser process has been shutdown. The source/details
358  // are all source and no details.
359  NOTIFICATION_SESSION_END,
360
361  // Upgrade notifications ---------------------------------------------------
362
363  // Sent when Chrome believes an update has been installed and available for
364  // long enough with the user shutting down to let it take effect. See
365  // upgrade_detector.cc for details on how long it waits. No details are
366  // expected.
367  NOTIFICATION_UPGRADE_RECOMMENDED,
368
369  // Sent when a critical update has been installed. No details are expected.
370  NOTIFICATION_CRITICAL_UPGRADE_INSTALLED,
371
372  // Sent when the current install is outdated. No details are expected.
373  NOTIFICATION_OUTDATED_INSTALL,
374
375  // Sent when the current install is outdated and auto-update (AU) is disabled.
376  // No details are expected.
377  NOTIFICATION_OUTDATED_INSTALL_NO_AU,
378
379  // Software incompatibility notifications ----------------------------------
380
381  // Sent when Chrome has finished compiling the list of loaded modules (and
382  // other modules of interest). No details are expected.
383  NOTIFICATION_MODULE_LIST_ENUMERATED,
384
385  // Sent when Chrome is done scanning the module list and when the user has
386  // acknowledged the module incompatibility. No details are expected.
387  NOTIFICATION_MODULE_INCOMPATIBILITY_BADGE_CHANGE,
388
389  // Content Settings --------------------------------------------------------
390
391  // Sent when the collect cookies dialog is shown. The source is a
392  // TabSpecificContentSettings object, there are no details.
393  NOTIFICATION_COLLECTED_COOKIES_SHOWN,
394
395  // Sent when a non-default setting in the the notification content settings
396  // map has changed. The source is the DesktopNotificationService, the
397  // details are None.
398  NOTIFICATION_DESKTOP_NOTIFICATION_SETTINGS_CHANGED,
399
400  // Sent when content settings change for a tab. The source is a
401  // content::WebContents object, the details are None.
402  NOTIFICATION_WEB_CONTENT_SETTINGS_CHANGED,
403
404  // Sync --------------------------------------------------------------------
405
406  // The sync service has finished the datatype configuration process. The
407  // source is the ProfileSyncService object of the Profile. There are no
408  // details.
409  NOTIFICATION_SYNC_CONFIGURE_DONE,
410
411  // A service is requesting a sync datatype refresh for the current profile.
412  // The details value is a const syncer::ModelTypeSet.
413  // If the payload map is empty, it should be treated as an invalidation for
414  // all enabled types. This is used by session sync.
415  NOTIFICATION_SYNC_REFRESH_LOCAL,
416
417  // External notification requesting a sync datatype refresh for the current
418  // profile. The details value is a const syncer::ObjectIdInvalidationMap.
419  // If the payload map is empty, it should be treated as an invalidation for
420  // all enabled types. This is used for notifications on Android.
421  NOTIFICATION_SYNC_REFRESH_REMOTE,
422
423  // The session service has been saved.  This notification type is only sent
424  // if there were new SessionService commands to save, and not for no-op save
425  // operations.
426  NOTIFICATION_SESSION_SERVICE_SAVED,
427
428  // A foreign session has been updated.  If a new tab page is open, the
429  // foreign session handler needs to update the new tab page's foreign
430  // session data.
431  NOTIFICATION_FOREIGN_SESSION_UPDATED,
432
433  // Foreign sessions has been disabled. New tabs should not display foreign
434  // session data.
435  NOTIFICATION_FOREIGN_SESSION_DISABLED,
436
437  // All tab metadata has been loaded from disk asynchronously.
438  // Sent on the UI thread.
439  // The source is the Profile. There are no details.
440  NOTIFICATION_SESSION_RESTORE_COMPLETE,
441
442  // Cookies -----------------------------------------------------------------
443
444  // Sent when a cookie changes. The source is a Profile object, the details
445  // are a ChromeCookieDetails object.
446  NOTIFICATION_COOKIE_CHANGED,
447
448  // Download Notifications --------------------------------------------------
449
450  // Sent when a download is initiated. It is possible that the download will
451  // not actually begin due to the DownloadRequestLimiter cancelling it
452  // prematurely.
453  // The source is the corresponding RenderViewHost. There are no details.
454  NOTIFICATION_DOWNLOAD_INITIATED,
455
456  // Misc --------------------------------------------------------------------
457
458#if defined(OS_CHROMEOS)
459  // Sent when a chromium os user logs in.
460  // The details are a chromeos::User object.
461  NOTIFICATION_LOGIN_USER_CHANGED,
462
463  // Sent immediately after the logged-in user's profile is ready.
464  // The details are a Profile object.
465  NOTIFICATION_LOGIN_USER_PROFILE_PREPARED,
466
467  // Sent when the chromium session of a particular user is started.
468  // If this is a new user on the machine this will not be sent until a profile
469  // picture has been selected, unlike NOTIFICATION_LOGIN_USER_CHANGED which is
470  // sent immediately after the user has logged in. This will be sent again if
471  // the browser crashes and restarts.
472  // The details are a chromeos::User object.
473  NOTIFICATION_SESSION_STARTED,
474
475  // Sent when user image is updated.
476  NOTIFICATION_LOGIN_USER_IMAGE_CHANGED,
477
478  // Sent by UserManager when a profile image download has been completed.
479  NOTIFICATION_PROFILE_IMAGE_UPDATED,
480
481  // Sent by UserManager when profile image download has failed or user has the
482  // default profile image or no profile image at all. No details are expected.
483  NOTIFICATION_PROFILE_IMAGE_UPDATE_FAILED,
484
485  // Sent when a network error message is displayed on the WebUI login screen.
486  // First paint event of this fires NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE.
487  NOTIFICATION_LOGIN_NETWORK_ERROR_SHOWN,
488
489  // Sent when the specific part of login/lock WebUI is considered to be
490  // visible. That moment is tracked as the first paint event after one of the:
491  // NOTIFICATION_LOGIN_NETWORK_ERROR_SHOWN
492  //
493  // Possible series of notifications:
494  // 1. Boot into fresh OOBE
495  //    NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE
496  // 2. Boot into user pods list (normal boot). Same for lock screen.
497  //    NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE
498  // 3. Boot into GAIA sign in UI (user pods display disabled or no users):
499  //    if no network is connected or flaky network
500  //    (NOTIFICATION_LOGIN_NETWORK_ERROR_SHOWN +
501  //     NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE)
502  //    NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE
503  // 4. Boot into retail mode
504  //    NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE
505  // 5. Boot into kiosk mode
506  //    NOTIFICATION_KIOSK_APP_LAUNCHED
507  NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE,
508
509  // Sent when proxy dialog is closed.
510  NOTIFICATION_LOGIN_PROXY_CHANGED,
511
512  // Send when kiosk auto-launch warning screen is visible.
513  NOTIFICATION_KIOSK_AUTOLAUNCH_WARNING_VISIBLE,
514
515  // Send when kiosk auto-launch warning screen had completed.
516  NOTIFICATION_KIOSK_AUTOLAUNCH_WARNING_COMPLETED,
517
518  // Send when enable consumer kiosk warning screen is visible.
519  NOTIFICATION_KIOSK_ENABLE_WARNING_VISIBLE,
520
521  // Send when consumer kiosk has been enabled.
522  NOTIFICATION_KIOSK_ENABLED,
523
524  // Send when enable consumer kiosk warning screen had completed.
525  NOTIFICATION_KIOSK_ENABLE_WARNING_COMPLETED,
526
527  // Sent when kiosk app list is loaded in UI.
528  NOTIFICATION_KIOSK_APPS_LOADED,
529
530  // Sent when a kiosk app is launched.
531  NOTIFICATION_KIOSK_APP_LAUNCHED,
532
533  // Sent when the user list has changed.
534  NOTIFICATION_USER_LIST_CHANGED,
535
536  // Sent when the screen lock state has changed. The source is
537  // ScreenLocker and the details is a bool specifing that the
538  // screen is locked. When details is a false, the source object
539  // is being deleted, so the receiver shouldn't use the screen locker
540  // object.
541  NOTIFICATION_SCREEN_LOCK_STATE_CHANGED,
542
543  // Sent by DeviceSettingsService to indicate that the ownership status
544  // changed. If you can, please use DeviceSettingsService::Observer instead.
545  // Other singleton-based services can't use that because Observer
546  // unregistration is impossible due to unpredictable deletion order.
547  NOTIFICATION_OWNERSHIP_STATUS_CHANGED,
548#endif
549
550#if defined(TOOLKIT_VIEWS)
551  // Sent when a bookmark's context menu is shown. Used to notify
552  // tests that the context menu has been created and shown.
553  NOTIFICATION_BOOKMARK_CONTEXT_MENU_SHOWN,
554
555  // Notification that the nested loop using during tab dragging has returned.
556  // Used for testing.
557  NOTIFICATION_TAB_DRAG_LOOP_DONE,
558#endif
559
560  // Send when a context menu is shown. Used to notify tests that the context
561  // menu has been created and shown.
562  NOTIFICATION_RENDER_VIEW_CONTEXT_MENU_SHOWN,
563
564  // Sent when the Instant Controller determines whether an Instant tab supports
565  // the Instant API or not.
566  NOTIFICATION_INSTANT_TAB_SUPPORT_DETERMINED,
567
568  // Sent when the Instant Controller determines whether the NTP supports the
569  // Instant API or not.
570  NOTIFICATION_INSTANT_NTP_SUPPORT_DETERMINED,
571
572  // Sent when the CaptivePortalService checks if we're behind a captive portal.
573  // The Source is the Profile the CaptivePortalService belongs to, and the
574  // Details are a Details<CaptivePortalService::CheckResults>.
575  NOTIFICATION_CAPTIVE_PORTAL_CHECK_RESULT,
576
577  // Sent when the applications in the NTP app launcher have been reordered.
578  // The details, if not NoDetails, is the std::string ID of the extension that
579  // was moved.
580  NOTIFICATION_APP_LAUNCHER_REORDERED,
581
582  // Sent when an app is installed and an NTP has been shown. Source is the
583  // WebContents that was shown, and Details is the string ID of the extension
584  // which was installed.
585  NOTIFICATION_APP_INSTALLED_TO_NTP,
586
587  // Similar to NOTIFICATION_APP_INSTALLED_TO_NTP but used to notify ash AppList
588  // about installed app. Source is the profile in which the app is installed
589  // and Details is the string ID of the extension.
590  NOTIFICATION_APP_INSTALLED_TO_APPLIST,
591
592#if defined(USE_ASH)
593  // Sent when wallpaper show animation has finished.
594  NOTIFICATION_WALLPAPER_ANIMATION_FINISHED,
595
596  // Sent when the Ash session has started. In its current incantation this is
597  // generated when the metro app has connected to the browser IPC channel.
598  // Used only on Windows.
599  NOTIFICATION_ASH_SESSION_STARTED,
600
601  // Sent when the Ash session ended. Currently this means the metro app exited.
602  // Used only on Windows.
603  NOTIFICATION_ASH_SESSION_ENDED,
604#endif
605
606  // Protocol Handler Registry -----------------------------------------------
607  // Sent when a ProtocolHandlerRegistry is changed. The source is the profile.
608  NOTIFICATION_PROTOCOL_HANDLER_REGISTRY_CHANGED,
609
610  // Sent when the cached profile info has changed.
611  NOTIFICATION_PROFILE_CACHED_INFO_CHANGED,
612
613  // Sent when the cached profile has finished writing a profile picture to
614  // disk.
615  NOTIFICATION_PROFILE_CACHE_PICTURE_SAVED,
616
617  // Sent when the browser enters or exits fullscreen mode.
618  NOTIFICATION_FULLSCREEN_CHANGED,
619
620  // Sent when the FullscreenController changes, confirms, or denies mouse lock.
621  // The source is the browser's FullscreenController, no details.
622  NOTIFICATION_MOUSE_LOCK_CHANGED,
623
624  // Sent by the PluginPrefs when there is a change of plugin enable/disable
625  // status. The source is the profile.
626  NOTIFICATION_PLUGIN_ENABLE_STATUS_CHANGED,
627
628  // Panels Notifications. The Panels are small browser windows near the bottom
629  // of the screen.
630  // Sent when all nonblocking bounds animations are finished across panels.
631  // Used only in unit testing.
632  NOTIFICATION_PANEL_BOUNDS_ANIMATIONS_FINISHED,
633
634  // Sent when panel gains/loses focus.
635  // The source is the Panel, no details.
636  // Used only in unit testing.
637  NOTIFICATION_PANEL_CHANGED_ACTIVE_STATUS,
638
639  // Sent when panel is minimized/restored/shows title only etc.
640  // The source is the Panel, no details.
641  NOTIFICATION_PANEL_CHANGED_EXPANSION_STATE,
642
643  // Sent when panel window size is known. This is for platforms where the
644  // window creation is async and size of the window only becomes known later.
645  // Used only in unit testing.
646  NOTIFICATION_PANEL_WINDOW_SIZE_KNOWN,
647
648  // Sent when panel app icon is loaded.
649  // Used only in unit testing.
650  NOTIFICATION_PANEL_APP_ICON_LOADED,
651
652  // Sent when panel collection get updated.
653  // The source is the PanelCollection, no details.
654  // Used only in coordination with notification balloons.
655  NOTIFICATION_PANEL_COLLECTION_UPDATED,
656
657  // Sent when panel is closed.
658  // The source is the Panel, no details.
659  NOTIFICATION_PANEL_CLOSED,
660
661  // Sent when a global error has changed and the error UI should update it
662  // self. The source is a Source<Profile> containing the profile for the
663  // error. The detail is a GlobalError object that has changed or NULL if
664  // all error UIs should update.
665  NOTIFICATION_GLOBAL_ERRORS_CHANGED,
666
667  // BrowsingDataRemover ----------------------------------------------------
668  // Sent on the UI thread after BrowsingDataRemover has removed browsing data
669  // but before it has notified its explicit observers. The source is a
670  // Source<Profile> containing the profile in which browsing data was removed,
671  // and the detail is a BrowsingDataRemover::NotificationDetail containing the
672  // removal mask and the start of the removal timeframe with which
673  // BrowsingDataRemove::Remove was called.
674  NOTIFICATION_BROWSING_DATA_REMOVED,
675
676  // The user accepted or dismissed a SSL client authentication request.
677  // The source is a Source<net::HttpNetworkSession>.  Details is a
678  // (std::pair<net::SSLCertRequestInfo*, net::X509Certificate*>).
679  NOTIFICATION_SSL_CLIENT_AUTH_CERT_SELECTED,
680
681  // Session Restore --------------------------------------------------------
682
683  // Sent when synchronous (startup) session restore completes. No details or
684  // source.
685  NOTIFICATION_SESSION_RESTORE_DONE,
686
687  // Note:-
688  // Currently only Content and Chrome define and use notifications.
689  // Custom notifications not belonging to Content and Chrome should start
690  // from here.
691  NOTIFICATION_CHROME_END,
692};
693
694}  // namespace chrome
695
696#endif  // CHROME_BROWSER_CHROME_NOTIFICATION_TYPES_H_
697