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