Home | History | Annotate | Download | only in browser
      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_LINUX)
     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  // defined(OS_LINUX)
     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<InfoBarDelegate> with a pointer to the delegate that was added.
    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<std::pair<InfoBarDelegate*, bool> > with a pointer to the removed
    132   // delegate and whether the removal should be animated.
    133   NOTIFICATION_TAB_CONTENTS_INFOBAR_REMOVED,
    134 
    135   // This message is sent when an InfoBar is replacing another infobar in an
    136   // InfoBarService.  The source is a Source<InfoBarService> with a pointer to
    137   // the InfoBarService the InfoBar was removed from.  The details is a
    138   // Details<std::pair<InfoBarDelegate*, InfoBarDelegate*> > with pointers to
    139   // the old and new delegates, respectively.
    140   NOTIFICATION_TAB_CONTENTS_INFOBAR_REPLACED,
    141 
    142   // This is sent when an externally hosted tab is closed.  No details are
    143   // expected.
    144   NOTIFICATION_EXTERNAL_TAB_CLOSED,
    145 
    146   // Indicates that the new page tab has finished loading. This is used for
    147   // performance testing to see how fast we can load it after startup, and is
    148   // only called once for the lifetime of the browser. The source is unused.
    149   // Details is an integer: the number of milliseconds elapsed between
    150   // starting and finishing all painting.
    151   NOTIFICATION_INITIAL_NEW_TAB_UI_LOAD,
    152 
    153   // Used to fire notifications about how long various events took to
    154   // complete.  E.g., this is used to get more fine grained timings from the
    155   // new tab page.  The source is a WebContents and the details is a
    156   // MetricEventDurationDetails.
    157   NOTIFICATION_METRIC_EVENT_DURATION,
    158 
    159   // This notification is sent when extensions::TabHelper::SetExtensionApp is
    160   // invoked. The source is the extensions::TabHelper SetExtensionApp was
    161   // invoked on.
    162   NOTIFICATION_TAB_CONTENTS_APPLICATION_EXTENSION_CHANGED,
    163 
    164   // Notification posted when the element that is focused has been touched. A
    165   // bool parameter is passed in this notification which indicates if this node
    166   // accepts. The source is the RenderViewHost.
    167   NOTIFICATION_FOCUSED_NODE_TOUCHED,
    168 
    169   // Tabs --------------------------------------------------------------------
    170 
    171   // Sent when a tab is added to a WebContentsDelegate. The source is the
    172   // WebContentsDelegate and the details is the added WebContents.
    173   NOTIFICATION_TAB_ADDED,
    174 
    175   // This notification is sent after a tab has been appended to the tab_strip.
    176   // The source is a Source<WebContents> of the tab being added. There
    177   // are no details.
    178   NOTIFICATION_TAB_PARENTED,
    179 
    180   // This message is sent before a tab has been closed.  The source is a
    181   // Source<NavigationController> with a pointer to the controller for the
    182   // closed tab.  No details are expected.
    183   //
    184   // See also content::NOTIFICATION_WEB_CONTENTS_DESTROYED, which is sent when
    185   // the WebContents containing the NavigationController is destroyed.
    186   NOTIFICATION_TAB_CLOSING,
    187 
    188   // Stuff inside the tabs ---------------------------------------------------
    189 
    190   // This notification is sent when the result of a find-in-page search is
    191   // available with the browser process. The source is a Source<WebContents>.
    192   // Details encompass a FindNotificationDetail object that tells whether the
    193   // match was found or not found.
    194   NOTIFICATION_FIND_RESULT_AVAILABLE,
    195 
    196   // BackgroundContents ------------------------------------------------------
    197 
    198   // A new background contents was opened by script. The source is the parent
    199   // profile and the details are BackgroundContentsOpenedDetails.
    200   NOTIFICATION_BACKGROUND_CONTENTS_OPENED,
    201 
    202   // The background contents navigated to a new location. The source is the
    203   // parent Profile, and the details are the BackgroundContents that was
    204   // navigated.
    205   NOTIFICATION_BACKGROUND_CONTENTS_NAVIGATED,
    206 
    207   // The background contents were closed by someone invoking window.close()
    208   // or the parent application was uninstalled.
    209   // The source is the parent profile, and the details are the
    210   // BackgroundContents.
    211   NOTIFICATION_BACKGROUND_CONTENTS_CLOSED,
    212 
    213   // The background contents is being deleted. The source is the
    214   // parent Profile, and the details are the BackgroundContents being deleted.
    215   NOTIFICATION_BACKGROUND_CONTENTS_DELETED,
    216 
    217   // The background contents has crashed. The source is the parent Profile,
    218   // and the details are the BackgroundContents.
    219   NOTIFICATION_BACKGROUND_CONTENTS_TERMINATED,
    220 
    221   // The background contents associated with a hosted app has changed (either
    222   // a new background contents has been created, or an existing background
    223   // contents has closed). The source is the parent Profile, and the details
    224   // are the BackgroundContentsService.
    225   NOTIFICATION_BACKGROUND_CONTENTS_SERVICE_CHANGED,
    226 
    227   // Chrome has entered/exited background mode. The source is the
    228   // BackgroundModeManager and the details are a boolean value which is set to
    229   // true if Chrome is now in background mode.
    230   NOTIFICATION_BACKGROUND_MODE_CHANGED,
    231 
    232   // This is sent when a login prompt is shown.  The source is the
    233   // Source<NavigationController> for the tab in which the prompt is shown.
    234   // Details are a LoginNotificationDetails which provide the LoginHandler
    235   // that should be given authentication.
    236   NOTIFICATION_AUTH_NEEDED,
    237 
    238   // This is sent when authentication credentials have been supplied (either
    239   // by the user or by an automation service), but before we've actually
    240   // received another response from the server.  The source is the
    241   // Source<NavigationController> for the tab in which the prompt was shown.
    242   // Details are an AuthSuppliedLoginNotificationDetails which provide the
    243   // LoginHandler that should be given authentication as well as the supplied
    244   // username and password.
    245   NOTIFICATION_AUTH_SUPPLIED,
    246 
    247   // This is sent when an authentication request has been dismissed without
    248   // supplying credentials (either by the user or by an automation service).
    249   // The source is the Source<NavigationController> for the tab in which the
    250   // prompt was shown. Details are a LoginNotificationDetails which provide
    251   // the LoginHandler that should be cancelled.
    252   NOTIFICATION_AUTH_CANCELLED,
    253 
    254   // History -----------------------------------------------------------------
    255 
    256   // Sent when a history service has finished loading. The source is the
    257   // profile that the history service belongs to, and the details is the
    258   // HistoryService.
    259   NOTIFICATION_HISTORY_LOADED,
    260 
    261   // Sent when a URL has been added or modified. This is used by the in-memory
    262   // URL database and the InMemoryURLIndex (both used by autocomplete) to track
    263   // changes to the main history system.
    264   //
    265   // The source is the profile owning the history service that changed, and
    266   // the details is history::URLsModifiedDetails that lists the modified or
    267   // added URLs.
    268   NOTIFICATION_HISTORY_URLS_MODIFIED,
    269 
    270   // Sent when the user visits a URL.
    271   //
    272   // The source is the profile owning the history service that changed, and
    273   // the details is history::URLVisitedDetails.
    274   NOTIFICATION_HISTORY_URL_VISITED,
    275 
    276   // Sent when one or more URLs are deleted.
    277   //
    278   // The source is the profile owning the history service that changed, and
    279   // the details is history::URLsDeletedDetails that lists the deleted URLs.
    280   NOTIFICATION_HISTORY_URLS_DELETED,
    281 
    282   // Sent when a keyword search term is updated. The source is the Profile and
    283   // the details are history::KeywordSearchTermDetails
    284   NOTIFICATION_HISTORY_KEYWORD_SEARCH_TERM_UPDATED,
    285 
    286   // Sent by history when the favicon of a URL changes.  The source is the
    287   // profile, and the details is FaviconChangedDetails (see
    288   // chrome/browser/favicon/favicon_changed_details.h).
    289   NOTIFICATION_FAVICON_CHANGED,
    290 
    291   // Sent by FaviconTabHelper when a tab's favicon has been successfully
    292   // updated. The details are a bool indicating whether the
    293   // NavigationEntry's favicon URL has changed since the previous
    294   // NOTIFICATION_FAVICON_UPDATED notification. The details are true if
    295   // there was no previous NOTIFICATION_FAVICON_UPDATED notification for the
    296   // current NavigationEntry.
    297   NOTIFICATION_FAVICON_UPDATED,
    298 
    299   // Profiles -----------------------------------------------------------------
    300 
    301   // Sent after a Profile has been created. This notification is sent both for
    302   // normal and OTR profiles.
    303   // The details are none and the source is the new profile.
    304   NOTIFICATION_PROFILE_CREATED,
    305 
    306   // Sent after a Profile has been added to ProfileManager.
    307   // The details are none and the source is the new profile.
    308   NOTIFICATION_PROFILE_ADDED,
    309 
    310   // Sent before a Profile is destroyed. This notification is sent both for
    311   // normal and OTR profiles.
    312   // The details are none and the source is a Profile*.
    313   NOTIFICATION_PROFILE_DESTROYED,
    314 
    315   // Sent after the URLRequestContextGetter for a Profile has been initialized.
    316   // The details are none and the source is a Profile*.
    317   NOTIFICATION_PROFILE_URL_REQUEST_CONTEXT_GETTER_INITIALIZED,
    318 
    319   // TopSites ----------------------------------------------------------------
    320 
    321   // Sent by TopSites when it finishes loading. The source is the profile the
    322   // details the TopSites.
    323   NOTIFICATION_TOP_SITES_LOADED,
    324 
    325   // Sent by TopSites when it has finished updating its most visited URLs
    326   // cache after querying the history service. The source is the TopSites and
    327   // the details a CancelableRequestProvider::Handle from the history service
    328   // query.
    329   // Used only in testing.
    330   NOTIFICATION_TOP_SITES_UPDATED,
    331 
    332   // Sent by TopSites when the either one of the most visited urls changed, or
    333   // one of the images changes. The source is the TopSites, the details not
    334   // used.
    335   NOTIFICATION_TOP_SITES_CHANGED,
    336 
    337   // Task Manager ------------------------------------------------------------
    338 
    339   // The TaskManagerChildProcessResourceProvider collects the list of child
    340   // processes when StartUpdating is called. This data is collected on the IO
    341   // thread and passed back to the UI thread. Once all entries are added to the
    342   // task manager, this notification is sent.
    343   NOTIFICATION_TASK_MANAGER_CHILD_PROCESSES_DATA_READY,
    344 
    345   // Sent when a renderer process is notified of new v8 heap statistics. The
    346   // source is the ID of the renderer process, and the details are a
    347   // V8HeapStatsDetails object.
    348   NOTIFICATION_RENDERER_V8_HEAP_STATS_COMPUTED,
    349 
    350   // Sent when a renderer process is notified of a new FPS value. The source
    351   // is the ID of the renderer process, and the details are an FPSDetails
    352   // object.
    353   NOTIFICATION_RENDERER_FPS_COMPUTED,
    354 
    355   // Non-history storage services --------------------------------------------
    356 
    357   // Notification that the TemplateURLService has finished loading from the
    358   // database. The source is the TemplateURLService, and the details are
    359   // NoDetails.
    360   NOTIFICATION_TEMPLATE_URL_SERVICE_LOADED,
    361 
    362   // Sent when a TemplateURL is removed from the model. The source is the
    363   // Profile, and the details the id of the TemplateURL being removed.
    364   NOTIFICATION_TEMPLATE_URL_REMOVED,
    365 
    366   // Sent when the prefs relating to the default search engine have changed due
    367   // to policy.  Source and details are unused.
    368   NOTIFICATION_DEFAULT_SEARCH_POLICY_CHANGED,
    369 
    370   // The state of a web resource has been changed. A resource may have been
    371   // added, removed, or altered. Source is WebResourceService, and the
    372   // details are NoDetails.
    373   NOTIFICATION_PROMO_RESOURCE_STATE_CHANGED,
    374 
    375   // A safe browsing database update completed.  Source is the
    376   // SafeBrowsingService and the details are a bool indicating whether the
    377   // update was successful.
    378   NOTIFICATION_SAFE_BROWSING_UPDATE_COMPLETE,
    379 
    380   // Autocomplete ------------------------------------------------------------
    381 
    382   // Sent by the autocomplete controller when done.  The source is the
    383   // AutocompleteController, the details not used.
    384   NOTIFICATION_AUTOCOMPLETE_CONTROLLER_RESULT_READY,
    385 
    386   // This is sent when an item of the Omnibox popup is selected. The source
    387   // is the profile.
    388   NOTIFICATION_OMNIBOX_OPENED_URL,
    389 
    390   // This is sent from Instant when the omnibox focus state changes.
    391   NOTIFICATION_OMNIBOX_FOCUS_CHANGED,
    392 
    393   // Sent when the Google URL for a profile has been updated.  Some services
    394   // cache this value and need to update themselves when it changes.  See
    395   // google_util::GetGoogleURLAndUpdateIfNecessary().  The source is the
    396   // Profile, the details a GoogleURLTracker::UpdatedDetails containing the old
    397   // and new URLs.
    398   //
    399   // Note that because incognito mode requests for the GoogleURLTracker are
    400   // redirected to the non-incognito profile's copy, this notification will only
    401   // ever fire on non-incognito profiles; thus listeners should use
    402   // GetOriginalProfile() when constructing a Source to filter against.
    403   NOTIFICATION_GOOGLE_URL_UPDATED,
    404 
    405   // Printing ----------------------------------------------------------------
    406 
    407   // Notification from PrintJob that an event occurred. It can be that a page
    408   // finished printing or that the print job failed. Details is
    409   // PrintJob::EventDetails. Source is a PrintJob.
    410   NOTIFICATION_PRINT_JOB_EVENT,
    411 
    412   // Sent when a PrintJob has been released.
    413   // Source is the WebContents that holds the print job.
    414   NOTIFICATION_PRINT_JOB_RELEASED,
    415 
    416   // Shutdown ----------------------------------------------------------------
    417 
    418   // Sent when WM_ENDSESSION has been received, after the browsers have been
    419   // closed but before browser process has been shutdown. The source/details
    420   // are all source and no details.
    421   NOTIFICATION_SESSION_END,
    422 
    423   // User Scripts ------------------------------------------------------------
    424 
    425   // Sent when there are new user scripts available.  The details are a
    426   // pointer to SharedMemory containing the new scripts.
    427   NOTIFICATION_USER_SCRIPTS_UPDATED,
    428 
    429 #if !defined(OS_ANDROID)
    430   // User Style Sheet --------------------------------------------------------
    431 
    432   // Sent when the user style sheet has changed.
    433   NOTIFICATION_USER_STYLE_SHEET_UPDATED,
    434 #endif
    435 
    436   // Extensions --------------------------------------------------------------
    437 
    438   // Sent when a CrxInstaller finishes. Source is the CrxInstaller that
    439   // finished. The details are the extension which was installed.
    440   NOTIFICATION_CRX_INSTALLER_DONE,
    441 
    442   // Sent when the known installed extensions have all been loaded.  In
    443   // testing scenarios this can happen multiple times if extensions are
    444   // unloaded and reloaded. The source is a Profile.
    445   NOTIFICATION_EXTENSIONS_READY,
    446 
    447   // Sent when an extension icon being displayed in the location bar is updated.
    448   // The source is the Profile and the details are the WebContents for
    449   // the tab.
    450   NOTIFICATION_EXTENSION_LOCATION_BAR_UPDATED,
    451 
    452   // Sent when a new extension is loaded. The details are an Extension, and
    453   // the source is a Profile.
    454   NOTIFICATION_EXTENSION_LOADED,
    455 
    456   // An error occured while attempting to load an extension. The details are a
    457   // string with details about why the load failed.
    458   NOTIFICATION_EXTENSION_LOAD_ERROR,
    459 
    460   // Sent when an extension is enabled. Under most circumstances, listeners
    461   // will want to use NOTIFICATION_EXTENSION_LOADED. This notification is only
    462   // fired when the "Enable" button is hit in the extensions tab.  The details
    463   // are an Extension, and the source is a Profile.
    464   NOTIFICATION_EXTENSION_ENABLED,
    465 
    466   // Sent when attempting to load a new extension, but they are disabled. The
    467   // details are an Extension*, and the source is a Profile*.
    468   NOTIFICATION_EXTENSION_UPDATE_DISABLED,
    469 
    470   // Sent when an extension's permissions change. The details are an
    471   // UpdatedExtensionPermissionsInfo, and the source is a Profile.
    472   NOTIFICATION_EXTENSION_PERMISSIONS_UPDATED,
    473 
    474   // Sent when new extensions are installed, or existing extensions are updated.
    475   // The details are an InstalledExtensionInfo, and the source is a Profile.
    476   NOTIFICATION_EXTENSION_INSTALLED,
    477 
    478   // An error occured during extension install. The details are a string with
    479   // details about why the install failed.
    480   NOTIFICATION_EXTENSION_INSTALL_ERROR,
    481 
    482   // Sent when an extension has been uninstalled. The details are an Extension,
    483   // and the source is a Profile.
    484   NOTIFICATION_EXTENSION_UNINSTALLED,
    485 
    486   // Sent when an extension uninstall is not allowed because the extension is
    487   // not user manageable.  The details are an Extension, and the source is a
    488   // Profile.
    489   NOTIFICATION_EXTENSION_UNINSTALL_NOT_ALLOWED,
    490 
    491   // Sent when an extension is unloaded. This happens when an extension is
    492   // uninstalled or disabled. The details are an UnloadedExtensionInfo, and
    493   // the source is a Profile.
    494   //
    495   // Note that when this notification is sent, ExtensionService has already
    496   // removed the extension from its internal state.
    497   NOTIFICATION_EXTENSION_UNLOADED,
    498 
    499   // Sent when an Extension object is removed from ExtensionService. This
    500   // can happen when an extension is uninstalled, upgraded, or blacklisted,
    501   // including all cases when the Extension is deleted. The details are an
    502   // Extension, and the source is a Profile.
    503   NOTIFICATION_EXTENSION_REMOVED,
    504 
    505   // Sent after a new ExtensionHost is created. The details are
    506   // an ExtensionHost* and the source is a Profile*.
    507   NOTIFICATION_EXTENSION_HOST_CREATED,
    508 
    509   // Sent before an ExtensionHost is destroyed. The details are
    510   // an ExtensionHost* and the source is a Profile*.
    511   NOTIFICATION_EXTENSION_HOST_DESTROYED,
    512 
    513   // Sent by an ExtensionHost when it has finished its initial page load,
    514   // including any external resources.
    515   // The details are an ExtensionHost* and the source is a Profile*.
    516   NOTIFICATION_EXTENSION_HOST_DID_STOP_LOADING,
    517 
    518   // Sent by an ExtensionHost when its render view requests closing through
    519   // window.close(). The details are an ExtensionHost* and the source is a
    520   // Profile*.
    521   NOTIFICATION_EXTENSION_HOST_VIEW_SHOULD_CLOSE,
    522 
    523   // Sent when extension render process ends (whether it crashes or closes).
    524   // The details are an ExtensionHost* and the source is a Profile*. Not sent
    525   // during browser shutdown.
    526   NOTIFICATION_EXTENSION_PROCESS_TERMINATED,
    527 
    528   // Sent when a background page is ready so other components can load.
    529   NOTIFICATION_EXTENSION_BACKGROUND_PAGE_READY,
    530 
    531   // Sent when a browser action's state has changed. The source is the
    532   // ExtensionAction* that changed.  The details are the Profile* that the
    533   // browser action belongs to.
    534   NOTIFICATION_EXTENSION_BROWSER_ACTION_UPDATED,
    535 
    536   // Sent when the count of page actions has changed. Note that some of them
    537   // may not apply to the current page. The source is a LocationBar*. There
    538   // are no details.
    539   NOTIFICATION_EXTENSION_PAGE_ACTION_COUNT_CHANGED,
    540 
    541   // Sent when a browser action's visibility has changed. The source is the
    542   // ExtensionPrefs* that changed, and the details are a std::string with the
    543   // extension's ID.
    544   NOTIFICATION_EXTENSION_BROWSER_ACTION_VISIBILITY_CHANGED,
    545 
    546   // Sent when a page action's visibility has changed. The source is the
    547   // ExtensionAction* that changed. The details are a WebContents*.
    548   NOTIFICATION_EXTENSION_PAGE_ACTION_VISIBILITY_CHANGED,
    549 
    550   // Sent when a system indicator action's state has changed. The source is the
    551   // Profile* that the browser action belongs to. The details are the
    552   // ExtensionAction* that changed.
    553   NOTIFICATION_EXTENSION_SYSTEM_INDICATOR_UPDATED,
    554 
    555   // Sent when an extension command has been removed. The source is the profile
    556   // and the details is a std::pair of two std::string objects (an extension ID
    557   // and the name of the command being removed).
    558   NOTIFICATION_EXTENSION_COMMAND_REMOVED,
    559 
    560   // Sent when an extension command has been added. The source is the profile
    561   // and the details is a std::pair of two std::string objects (an extension ID
    562   // and the name of the command being added).
    563   NOTIFICATION_EXTENSION_COMMAND_ADDED,
    564 
    565   // Sent when an extension command shortcut for a browser action is activated
    566   // on Mac. The source is the profile and the details is a std::pair of a
    567   // std::string containing an extension ID and a gfx::NativeWindow for the
    568   // associated window.
    569   NOTIFICATION_EXTENSION_COMMAND_BROWSER_ACTION_MAC,
    570 
    571   // Sent when an extension command shortcut for a page action is activated
    572   // on Mac. The source is the profile and the details is a std::pair of a
    573   // std::string containing an extension ID and a gfx::NativeWindow for the
    574   // associated window.
    575   NOTIFICATION_EXTENSION_COMMAND_PAGE_ACTION_MAC,
    576 
    577   // Sent when an extension command shortcut for a script badge is activated
    578   // on Mac. The source is the profile and the details is a std::pair of a
    579   // std::string containing an extension ID and a gfx::NativeWindow for the
    580   // associated window.
    581   NOTIFICATION_EXTENSION_COMMAND_SCRIPT_BADGE_MAC,
    582 
    583   // A new extension RenderViewHost has been registered. The details are
    584   // the RenderViewHost*.
    585   NOTIFICATION_EXTENSION_VIEW_REGISTERED,
    586 
    587   // An extension RenderViewHost has been unregistered. The details are
    588   // the RenderViewHost*.
    589   NOTIFICATION_EXTENSION_VIEW_UNREGISTERED,
    590 
    591   // Sent by an extension to notify the browser about the results of a unit
    592   // test.
    593   NOTIFICATION_EXTENSION_TEST_PASSED,
    594   NOTIFICATION_EXTENSION_TEST_FAILED,
    595 
    596   // Sent by extension test javascript code, typically in a browser test. The
    597   // sender is a std::string representing the extension id, and the details
    598   // are a std::string with some message. This is particularly useful when you
    599   // want to have C++ code wait for javascript code to do something.
    600   NOTIFICATION_EXTENSION_TEST_MESSAGE,
    601 
    602   // Sent when an bookmarks extensions API function was successfully invoked.
    603   // The source is the id of the extension that invoked the function, and the
    604   // details are a pointer to the const BookmarksFunction in question.
    605   NOTIFICATION_EXTENSION_BOOKMARKS_API_INVOKED,
    606 
    607   // Sent when a downloads extensions API event is fired. The source is an
    608   // ExtensionDownloadsEventRouter::NotificationSource, and the details is a
    609   // std::string containing json. Used for testing.
    610   NOTIFICATION_EXTENSION_DOWNLOADS_EVENT,
    611 
    612   // Sent when an omnibox extension has sent back omnibox suggestions. The
    613   // source is the profile, and the details are an
    614   // extensions::api::omnibox::SendSuggestions::Params object.
    615   NOTIFICATION_EXTENSION_OMNIBOX_SUGGESTIONS_READY,
    616 
    617   // Sent when the user accepts the input in an extension omnibox keyword
    618   // session. The source is the profile.
    619   NOTIFICATION_EXTENSION_OMNIBOX_INPUT_ENTERED,
    620 
    621   // Sent when an omnibox extension has updated the default suggestion. The
    622   // source is the profile.
    623   NOTIFICATION_EXTENSION_OMNIBOX_DEFAULT_SUGGESTION_CHANGED,
    624 
    625   // Sent when the extension updater starts checking for updates to installed
    626   // extensions. The source is a Profile, and there are no details.
    627   NOTIFICATION_EXTENSION_UPDATING_STARTED,
    628 
    629   // The extension updater found an update and will attempt to download and
    630   // install it. The source is a Profile, and the details are an
    631   // extensions::UpdateDetails object with the extension id and version of the
    632   // found update.
    633   NOTIFICATION_EXTENSION_UPDATE_FOUND,
    634 
    635   // Desktop Notifications ---------------------------------------------------
    636 
    637   // This notification is sent when a balloon is connected to a renderer
    638   // process to render the balloon contents.  The source is a
    639   // Source<BalloonHost> with a pointer to the the balloon.  A
    640   // NOTIFY_BALLOON_DISCONNECTED is guaranteed before the source pointer
    641   // becomes junk. No details expected.
    642   NOTIFICATION_NOTIFY_BALLOON_CONNECTED,
    643 
    644   // This message is sent after a balloon is disconnected from the renderer
    645   // process. The source is a Source<BalloonHost> with a pointer to the
    646   // balloon host (the pointer is usable). No details are expected.
    647   NOTIFICATION_NOTIFY_BALLOON_DISCONNECTED,
    648 
    649   // Upgrade notifications ---------------------------------------------------
    650 
    651   // Sent when Chrome believes an update has been installed and available for
    652   // long enough with the user shutting down to let it take effect. See
    653   // upgrade_detector.cc for details on how long it waits. No details are
    654   // expected.
    655   NOTIFICATION_UPGRADE_RECOMMENDED,
    656 
    657   // Sent when a critical update has been installed. No details are expected.
    658   NOTIFICATION_CRITICAL_UPGRADE_INSTALLED,
    659 
    660   // Sent when the current install is outdated. No details are expected.
    661   NOTIFICATION_OUTDATED_INSTALL,
    662 
    663   // Software incompatibility notifications ----------------------------------
    664 
    665   // Sent when Chrome has finished compiling the list of loaded modules (and
    666   // other modules of interest). No details are expected.
    667   NOTIFICATION_MODULE_LIST_ENUMERATED,
    668 
    669   // Sent when Chrome is done scanning the module list and when the user has
    670   // acknowledged the module incompatibility. No details are expected.
    671   NOTIFICATION_MODULE_INCOMPATIBILITY_BADGE_CHANGE,
    672 
    673   // Accessibility Notifications ---------------------------------------------
    674 
    675   // Notification that a window in the browser UI (not the web content)
    676   // was opened, for propagating to an accessibility extension.
    677   // Details will be an AccessibilityWindowInfo.
    678   NOTIFICATION_ACCESSIBILITY_WINDOW_OPENED,
    679 
    680   // Notification that a window in the browser UI was closed.
    681   // Details will be an AccessibilityWindowInfo.
    682   NOTIFICATION_ACCESSIBILITY_WINDOW_CLOSED,
    683 
    684   // Notification that a control in the browser UI was focused.
    685   // Details will be an AccessibilityControlInfo.
    686   NOTIFICATION_ACCESSIBILITY_CONTROL_FOCUSED,
    687 
    688   // Notification that a control in the browser UI had its action taken,
    689   // like pressing a button or toggling a checkbox.
    690   // Details will be an AccessibilityControlInfo.
    691   NOTIFICATION_ACCESSIBILITY_CONTROL_ACTION,
    692 
    693   // Notification that text box in the browser UI had text change.
    694   // Details will be an AccessibilityControlInfo.
    695   NOTIFICATION_ACCESSIBILITY_TEXT_CHANGED,
    696 
    697   // Notification that a pop-down menu was opened, for propagating
    698   // to an accessibility extension.
    699   // Details will be an AccessibilityMenuInfo.
    700   NOTIFICATION_ACCESSIBILITY_MENU_OPENED,
    701 
    702   // Notification that a pop-down menu was closed, for propagating
    703   // to an accessibility extension.
    704   // Details will be an AccessibilityMenuInfo.
    705   NOTIFICATION_ACCESSIBILITY_MENU_CLOSED,
    706 
    707   // Content Settings --------------------------------------------------------
    708 
    709   // Sent when content settings change. The source is a HostContentSettings
    710   // object, the details are ContentSettingsNotificationsDetails.
    711   NOTIFICATION_CONTENT_SETTINGS_CHANGED,
    712 
    713   // Sent when the collect cookies dialog is shown. The source is a
    714   // TabSpecificContentSettings object, there are no details.
    715   NOTIFICATION_COLLECTED_COOKIES_SHOWN,
    716 
    717   // Sent when a non-default setting in the the notification content settings
    718   // map has changed. The source is the DesktopNotificationService, the
    719   // details are None.
    720   NOTIFICATION_DESKTOP_NOTIFICATION_SETTINGS_CHANGED,
    721 
    722   // Sent when content settings change for a tab. The source is a
    723   // content::WebContents object, the details are None.
    724   NOTIFICATION_WEB_CONTENT_SETTINGS_CHANGED,
    725 
    726   // Sync --------------------------------------------------------------------
    727 
    728   // The sync service has finished the datatype configuration process. The
    729   // source is the ProfileSyncService object of the Profile. There are no
    730   // details.
    731   NOTIFICATION_SYNC_CONFIGURE_DONE,
    732 
    733   // A service is requesting a sync datatype refresh for the current profile.
    734   // The details value is a const syncer::ModelTypeSet.
    735   // If the payload map is empty, it should be treated as an invalidation for
    736   // all enabled types. This is used by session sync.
    737   NOTIFICATION_SYNC_REFRESH_LOCAL,
    738 
    739   // External notification requesting a sync datatype refresh for the current
    740   // profile. The details value is a const syncer::ObjectIdInvalidationMap.
    741   // If the payload map is empty, it should be treated as an invalidation for
    742   // all enabled types. This is used for notifications on Android.
    743   NOTIFICATION_SYNC_REFRESH_REMOTE,
    744 
    745   // The session service has been saved.  This notification type is only sent
    746   // if there were new SessionService commands to save, and not for no-op save
    747   // operations.
    748   NOTIFICATION_SESSION_SERVICE_SAVED,
    749 
    750   // A foreign session has been updated.  If a new tab page is open, the
    751   // foreign session handler needs to update the new tab page's foreign
    752   // session data.
    753   NOTIFICATION_FOREIGN_SESSION_UPDATED,
    754 
    755   // Foreign sessions has been disabled. New tabs should not display foreign
    756   // session data.
    757   NOTIFICATION_FOREIGN_SESSION_DISABLED,
    758 
    759   // All tab metadata has been loaded from disk asynchronously.
    760   // Sent on the UI thread.
    761   // The source is the Profile. There are no details.
    762   NOTIFICATION_SESSION_RESTORE_COMPLETE,
    763 
    764   // Cookies -----------------------------------------------------------------
    765 
    766   // Sent when a cookie changes. The source is a Profile object, the details
    767   // are a ChromeCookieDetails object.
    768   NOTIFICATION_COOKIE_CHANGED,
    769 
    770   // Token Service -----------------------------------------------------------
    771 
    772   // When the token service has a new token available for a service, one of
    773   // these notifications is issued per new token.
    774   // The source is a TokenService on the Profile. The details are a
    775   // TokenAvailableDetails object.
    776   NOTIFICATION_TOKEN_AVAILABLE,
    777 
    778   // When there aren't any additional tokens left to load, this notification
    779   // is sent.
    780   // The source is a TokenService on the profile. There are no details.
    781   NOTIFICATION_TOKEN_LOADING_FINISHED,
    782 
    783   // If a token request failed, one of these is issued per failed request.
    784   // The source is a TokenService on the Profile. The details are a
    785   // TokenRequestFailedDetails object.
    786   NOTIFICATION_TOKEN_REQUEST_FAILED,
    787 
    788   // Fired when the TokenService has had all of its tokens removed (such as due
    789   // to the user signing out). The source is the TokenService. There are no
    790   // details.
    791   NOTIFICATION_TOKENS_CLEARED,
    792 
    793   // Sent when a user signs into Google services such as sync.
    794   // The source is the Profile. The details are a
    795   // GoogleServiceSigninSuccessDetails object.
    796   NOTIFICATION_GOOGLE_SIGNIN_SUCCESSFUL,
    797 
    798   // Sent when a user fails to sign into Google services such as sync.
    799   // The source is the Profile. The details are a GoogleServiceAuthError
    800   // object.
    801   NOTIFICATION_GOOGLE_SIGNIN_FAILED,
    802 
    803   // Sent when the currently signed-in user for a user has been signed out.
    804   // The source is the Profile. The details are a
    805   // GoogleServiceSignoutDetails object.
    806   NOTIFICATION_GOOGLE_SIGNED_OUT,
    807 
    808   // Download Notifications --------------------------------------------------
    809 
    810   // Sent when a download is initiated. It is possible that the download will
    811   // not actually begin due to the DownloadRequestLimiter cancelling it
    812   // prematurely.
    813   // The source is the corresponding RenderViewHost. There are no details.
    814   NOTIFICATION_DOWNLOAD_INITIATED,
    815 
    816   // Misc --------------------------------------------------------------------
    817 
    818   // Sent when PerformanceMonitor has finished all the initial steps of data
    819   // collection and has begun passively observing. The source is the
    820   // PerformanceMonitor*. No details are expected.
    821   NOTIFICATION_PERFORMANCE_MONITOR_INITIALIZED,
    822 
    823 #if defined(OS_CHROMEOS)
    824   // Sent when a chromium os user logs in.
    825   // The details are a chromeos::User object.
    826   NOTIFICATION_LOGIN_USER_CHANGED,
    827 
    828   // Sent immediately after the logged-in user's profile is ready.
    829   // The details are a Profile object.
    830   NOTIFICATION_LOGIN_USER_PROFILE_PREPARED,
    831 
    832   // Sent when the chromium session of a particular user is started.
    833   // If this is a new user on the machine this will not be sent until a profile
    834   // picture has been selected, unlike NOTIFICATION_LOGIN_USER_CHANGED which is
    835   // sent immediately after the user has logged in. This will be sent again if
    836   // the browser crashes and restarts.
    837   // The details are a chromeos::User object.
    838   NOTIFICATION_SESSION_STARTED,
    839 
    840   // Sent when user image is updated.
    841   NOTIFICATION_LOGIN_USER_IMAGE_CHANGED,
    842 
    843   // Sent by UserManager when a profile image download has been completed.
    844   NOTIFICATION_PROFILE_IMAGE_UPDATED,
    845 
    846   // Sent by UserManager when profile image download has failed or user has the
    847   // default profile image or no profile image at all. No details are expected.
    848   NOTIFICATION_PROFILE_IMAGE_UPDATE_FAILED,
    849 
    850   // Sent when a chromium os user attempts to log in.  The source is
    851   // all and the details are AuthenticationNotificationDetails.
    852   NOTIFICATION_LOGIN_AUTHENTICATION,
    853 
    854   // Sent when webui lock screen is ready.
    855   NOTIFICATION_LOCK_WEBUI_READY,
    856 
    857   // Sent when webui lock screen wallpaper is loaded and displayed.
    858   NOTIFICATION_LOCK_BACKGROUND_DISPLAYED,
    859 
    860   // Sent when GAIA iframe has been loaded. First paint event after this fires
    861   // NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE.
    862   // Possible scenarios:
    863   // 1. Boot into device that has user pods display disabled or no users.
    864   //    Note that booting with network not connected would first generate
    865   //    NOTIFICATION_LOGIN_NETWORK_ERROR_SHOWN.
    866   // 2. From the user pods list, open "Add User" for the second time
    867   //    (see below).
    868   // TODO(nkostylev): Send this notification any time "Add User" is activated
    869   //                  even if it has been silently preloaded on boot.
    870   // Not sent on "silent preload" i.e. when booting into login screen
    871   // with user pods, GAIA frame is silently preloaded in the background.
    872   // Activating it ("Add User") for the first time would not generate this
    873   // notification.
    874   NOTIFICATION_LOGIN_WEBUI_LOADED,
    875 
    876   // Sent when a network error message is displayed on the WebUI login screen.
    877   // First paint event of this fires NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE.
    878   NOTIFICATION_LOGIN_NETWORK_ERROR_SHOWN,
    879 
    880   // Sent when the specific part of login/lock WebUI is considered to be
    881   // visible. That moment is tracked as the first paint event after one of the:
    882   // 1. NOTIFICATION_LOGIN_WEBUI_LOADED
    883   // 2. NOTIFICATION_LOGIN_NETWORK_ERROR_SHOWN
    884   //
    885   // Possible series of notifications:
    886   // 1. Boot into fresh OOBE
    887   //    NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE
    888   // 2. Boot into user pods list (normal boot). Same for lock screen.
    889   //    NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE
    890   // 3. Boot into GAIA sign in UI (user pods display disabled or no users):
    891   //    if no network is connected or flaky network
    892   //    (NOTIFICATION_LOGIN_NETWORK_ERROR_SHOWN +
    893   //     NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE)
    894   //    NOTIFICATION_LOGIN_WEBUI_LOADED
    895   //    NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE
    896   // 4. Boot into retail mode
    897   //    NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE
    898   // 5. Boot into kiosk mode
    899   //    NOTIFICATION_KIOSK_APP_LAUNCHED
    900   NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE,
    901 
    902   // Sent when proxy dialog is closed.
    903   NOTIFICATION_LOGIN_PROXY_CHANGED,
    904 
    905   // Send when kiosk auto-launch warning screen is visible.
    906   NOTIFICATION_KIOSK_AUTOLAUNCH_WARNING_VISIBLE,
    907 
    908   // Send when kiosk auto-launch warning screen had completed.
    909   NOTIFICATION_KIOSK_AUTOLAUNCH_WARNING_COMPLETED,
    910 
    911   // Send when enable consumer kiosk warning screen is visible.
    912   NOTIFICATION_KIOSK_ENABLE_WARNING_VISIBLE,
    913 
    914   // Send when consumer kiosk has been enabled.
    915   NOTIFICATION_KIOSK_ENABLED,
    916 
    917   // Send when enable consumer kiosk warning screen had completed.
    918   NOTIFICATION_KIOSK_ENABLE_WARNING_COMPLETED,
    919 
    920   // Sent when kiosk app list is loaded in UI.
    921   NOTIFICATION_KIOSK_APPS_LOADED,
    922 
    923   // Sent when a kiosk app is launched.
    924   NOTIFICATION_KIOSK_APP_LAUNCHED,
    925 
    926   // Sent when the user list has changed.
    927   NOTIFICATION_USER_LIST_CHANGED,
    928 
    929   // Sent when the screen lock state has changed. The source is
    930   // ScreenLocker and the details is a bool specifing that the
    931   // screen is locked. When details is a false, the source object
    932   // is being deleted, so the receiver shouldn't use the screen locker
    933   // object.
    934   NOTIFICATION_SCREEN_LOCK_STATE_CHANGED,
    935 
    936   // Sent by DeviceSettingsService to indicate that the ownership status
    937   // changed. If you can, please use DeviceSettingsService::Observer instead.
    938   // Other singleton-based services can't use that because Observer
    939   // unregistration is impossible due to unpredictable deletion order.
    940   NOTIFICATION_OWNERSHIP_STATUS_CHANGED,
    941 
    942   // This is sent to a ChromeOS settings observer when a system setting is
    943   // changed. The source is the CrosSettings and the details a std::string of
    944   // the changed setting.
    945   NOTIFICATION_SYSTEM_SETTING_CHANGED,
    946 
    947   // Sent by SIM unlock dialog when it has finished with the process of
    948   // updating RequirePin setting. RequirePin setting might have been changed
    949   // to a new value or update might have been canceled.
    950   // In either case notification is sent and details contain a bool
    951   // that represents current value.
    952   NOTIFICATION_REQUIRE_PIN_SETTING_CHANGE_ENDED,
    953 
    954   // Sent by SIM unlock dialog when it has finished the EnterPin or
    955   // EnterPuk dialog, either because the user cancelled, or entered a
    956   // PIN or PUK.
    957   NOTIFICATION_ENTER_PIN_ENDED,
    958 
    959   // Sent when large cursor is toggled.
    960   NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_LARGE_CURSOR,
    961 
    962   // Sent when high contrast mode is toggled.
    963   NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_HIGH_CONTRAST_MODE,
    964 
    965   // Sent when screen magnifier is toggled.
    966   NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFIER,
    967 
    968   // Sent when spoken feedback is toggled.
    969   NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK,
    970 
    971 #endif
    972 
    973 #if defined(TOOLKIT_VIEWS)
    974   // Sent when a bookmark's context menu is shown. Used to notify
    975   // tests that the context menu has been created and shown.
    976   NOTIFICATION_BOOKMARK_CONTEXT_MENU_SHOWN,
    977 
    978   // Notification that the nested loop using during tab dragging has returned.
    979   // Used for testing.
    980   NOTIFICATION_TAB_DRAG_LOOP_DONE,
    981 #endif
    982 
    983   // Send when a context menu is shown. Used to notify tests that the context
    984   // menu has been created and shown.
    985   NOTIFICATION_RENDER_VIEW_CONTEXT_MENU_SHOWN,
    986 
    987   // Sent when the Instant Controller determines whether an Instant tab supports
    988   // the Instant API or not.
    989   NOTIFICATION_INSTANT_TAB_SUPPORT_DETERMINED,
    990 
    991   // Sent when the Instant Controller determines whether the NTP supports the
    992   // Instant API or not.
    993   NOTIFICATION_INSTANT_NTP_SUPPORT_DETERMINED,
    994 
    995   // Sent when the Instant Controller has sent the Most Visited Items to the
    996   // renderer.
    997   NOTIFICATION_INSTANT_SENT_MOST_VISITED_ITEMS,
    998 
    999   // Sent when the CaptivePortalService checks if we're behind a captive portal.
   1000   // The Source is the Profile the CaptivePortalService belongs to, and the
   1001   // Details are a Details<CaptivePortalService::CheckResults>.
   1002   NOTIFICATION_CAPTIVE_PORTAL_CHECK_RESULT,
   1003 
   1004   // Password Store ----------------------------------------------------------
   1005   // This notification is sent whenenever login entries stored in the password
   1006   // store are changed. The detail of this notification is a list of changes
   1007   // represented by a vector of PasswordStoreChange. Each change includes a
   1008   // change type (ADD, UPDATE, or REMOVE) as well as the
   1009   // |content::PasswordForm|s that were affected.
   1010   NOTIFICATION_LOGINS_CHANGED,
   1011 
   1012   // Sent when the applications in the NTP app launcher have been reordered.
   1013   // The details, if not NoDetails, is the std::string ID of the extension that
   1014   // was moved.
   1015   NOTIFICATION_EXTENSION_LAUNCHER_REORDERED,
   1016 
   1017   // Sent when an app is installed and an NTP has been shown. Source is the
   1018   // WebContents that was shown, and Details is the string ID of the extension
   1019   // which was installed.
   1020   NOTIFICATION_APP_INSTALLED_TO_NTP,
   1021 
   1022   // Similar to NOTIFICATION_APP_INSTALLED_TO_NTP but used to nofity ash AppList
   1023   // about installed app. Source is the profile in which the app is installed
   1024   // and Details is the string ID of the extension.
   1025   NOTIFICATION_APP_INSTALLED_TO_APPLIST,
   1026 
   1027 #if defined(USE_ASH)
   1028   // Sent when wallpaper show animation has finished.
   1029   NOTIFICATION_WALLPAPER_ANIMATION_FINISHED,
   1030 
   1031   // Sent when the Ash session has started. In its current incantation this is
   1032   // generated when the metro app has connected to the browser IPC channel.
   1033   // Used only on Windows.
   1034   NOTIFICATION_ASH_SESSION_STARTED,
   1035   // Sent when the Ash session ended. Currently this means the metro app exited.
   1036   // Used only on Windows.
   1037   NOTIFICATION_ASH_SESSION_ENDED,
   1038 #endif
   1039 
   1040   // Protocol Handler Registry -----------------------------------------------
   1041   // Sent when a ProtocolHandlerRegistry is changed. The source is the profile.
   1042   NOTIFICATION_PROTOCOL_HANDLER_REGISTRY_CHANGED,
   1043 
   1044   // Sent when the cached profile info has changed.
   1045   NOTIFICATION_PROFILE_CACHED_INFO_CHANGED,
   1046 
   1047   // Sent when the cached profile has finished writing a profile picture to
   1048   // disk.
   1049   NOTIFICATION_PROFILE_CACHE_PICTURE_SAVED,
   1050 
   1051   // Sent when the browser enters or exits fullscreen mode.
   1052   NOTIFICATION_FULLSCREEN_CHANGED,
   1053 
   1054   // Sent when the FullscreenController changes, confirms, or denies mouse lock.
   1055   // The source is the browser's FullscreenController, no details.
   1056   NOTIFICATION_MOUSE_LOCK_CHANGED,
   1057 
   1058   // Sent by the PluginPrefs when there is a change of plugin enable/disable
   1059   // status. The source is the profile.
   1060   NOTIFICATION_PLUGIN_ENABLE_STATUS_CHANGED,
   1061 
   1062   // Panels Notifications. The Panels are small browser windows near the bottom
   1063   // of the screen.
   1064   // Sent when all nonblocking bounds animations are finished across panels.
   1065   // Used only in unit testing.
   1066   NOTIFICATION_PANEL_BOUNDS_ANIMATIONS_FINISHED,
   1067 
   1068   // Sent when panel gains/loses focus.
   1069   // The source is the Panel, no details.
   1070   // Used only in unit testing.
   1071   NOTIFICATION_PANEL_CHANGED_ACTIVE_STATUS,
   1072 
   1073   // Sent when panel is minimized/restored/shows title only etc.
   1074   // The source is the Panel, no details.
   1075   NOTIFICATION_PANEL_CHANGED_EXPANSION_STATE,
   1076 
   1077   // Sent when panel window size is known. This is for platforms where the
   1078   // window creation is async and size of the window only becomes known later.
   1079   // Used only in unit testing.
   1080   NOTIFICATION_PANEL_WINDOW_SIZE_KNOWN,
   1081 
   1082   // Sent when panel app icon is loaded.
   1083   // Used only in unit testing.
   1084   NOTIFICATION_PANEL_APP_ICON_LOADED,
   1085 
   1086   // Sent when panel collection get updated.
   1087   // The source is the PanelCollection, no details.
   1088   // Used only in coordination with notification balloons.
   1089   NOTIFICATION_PANEL_COLLECTION_UPDATED,
   1090 
   1091   // Sent when panel is closed.
   1092   // The source is the Panel, no details.
   1093   NOTIFICATION_PANEL_CLOSED,
   1094 
   1095   // Sent when a global error has changed and the error UI should update it
   1096   // self. The source is a Source<Profile> containing the profile for the
   1097   // error. The detail is a GlobalError object that has changed or NULL if
   1098   // all error UIs should update.
   1099   NOTIFICATION_GLOBAL_ERRORS_CHANGED,
   1100 
   1101   // BrowsingDataRemover ----------------------------------------------------
   1102   // Sent on the UI thread after BrowsingDataRemover has removed browsing data
   1103   // but before it has notified its explicit observers. The source is a
   1104   // Source<Profile> containing the profile in which browsing data was removed,
   1105   // and the detail is a BrowsingDataRemover::NotificationDetail containing the
   1106   // removal mask and the start of the removal timeframe with which
   1107   // BrowsingDataRemove::Remove was called.
   1108   NOTIFICATION_BROWSING_DATA_REMOVED,
   1109 
   1110   // The user accepted or dismissed a SSL client authentication request.
   1111   // The source is a Source<net::HttpNetworkSession>.  Details is a
   1112   // (std::pair<net::SSLCertRequestInfo*, net::X509Certificate*>).
   1113   NOTIFICATION_SSL_CLIENT_AUTH_CERT_SELECTED,
   1114 
   1115   // Blocked content.
   1116   // Sent when content changes to or from the blocked state in
   1117   // BlockedContentTabHelper.
   1118   // The source is the WebContents of the blocked content and details
   1119   // is a boolean: true if the content is entering the blocked state, false
   1120   // if it is leaving.
   1121   NOTIFICATION_CONTENT_BLOCKED_STATE_CHANGED,
   1122 
   1123   // Session Restore --------------------------------------------------------
   1124 
   1125   // Sent when synchronous (startup) session restore completes. No details or
   1126   // source.
   1127   NOTIFICATION_SESSION_RESTORE_DONE,
   1128 
   1129   // Note:-
   1130   // Currently only Content and Chrome define and use notifications.
   1131   // Custom notifications not belonging to Content and Chrome should start
   1132   // from here.
   1133   NOTIFICATION_CHROME_END,
   1134 };
   1135 
   1136 }  // namespace chrome
   1137 
   1138 #endif  // CHROME_BROWSER_CHROME_NOTIFICATION_TYPES_H_
   1139