blob: e9228e1b4ee5180f988b8a08b5786a082af75e07 [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CONTENT_PUBLIC_BROWSER_NOTIFICATION_TYPES_H_
#define CONTENT_PUBLIC_BROWSER_NOTIFICATION_TYPES_H_
// This file describes various types used to describe and filter notifications
// that pass through the NotificationService.
//
// Only notifications that are fired from the content module should be here. We
// should never have a notification that is fired by the embedder and listened
// to by content.
namespace content {
enum NotificationType {
NOTIFICATION_CONTENT_START = 0,
// General -----------------------------------------------------------------
// Special signal value to represent an interest in all notifications.
// Not valid when posting a notification.
NOTIFICATION_ALL = NOTIFICATION_CONTENT_START,
// NavigationController ----------------------------------------------------
// A new pending navigation has been created. Pending entries are created
// when the user requests the navigation. We don't know if it will actually
// happen until it does (at this point, it will be "committed." Note that
// renderer- initiated navigations such as link clicks will never be
// pending.
//
// This notification is called after the pending entry is created, but
// before we actually try to navigate. The source will be the
// NavigationController that owns the pending entry, and the details
// will be a NavigationEntry.
NOTIFICATION_NAV_ENTRY_PENDING,
// A new non-pending navigation entry has been created. This will
// correspond to one NavigationController entry being created (in the case
// of new navigations) or renavigated to (for back/forward navigations).
//
// The source will be the navigation controller doing the commit. The
// details will be NavigationController::LoadCommittedDetails.
// DEPRECATED: Use WebContentsObserver::NavigationEntryCommitted()
NOTIFICATION_NAV_ENTRY_COMMITTED,
// Indicates that the NavigationController given in the Source has
// decreased its back/forward list count by removing entries from either
// the front or back of its list. This is usually the result of going back
// and then doing a new navigation, meaning all the "forward" items are
// deleted.
//
// This normally happens as a result of a new navigation. It will be
// followed by a NAV_ENTRY_COMMITTED message for the new page that
// caused the pruning. It could also be a result of removing an item from
// the list to fix up after interstitials.
//
// The details are NavigationController::PrunedDetails.
NOTIFICATION_NAV_LIST_PRUNED,
// Indicates that a NavigationEntry has changed. The source will be the
// NavigationController that owns the NavigationEntry. The details will be
// a NavigationController::EntryChangedDetails struct.
//
// This will NOT be sent on navigation, interested parties should also
// listen for NAV_ENTRY_COMMITTED to handle that case. This will be
// sent when the entry is updated outside of navigation (like when a new
// title comes).
NOTIFICATION_NAV_ENTRY_CHANGED,
// Other load-related (not from NavigationController) ----------------------
// Corresponds to ViewHostMsg_DocumentOnLoadCompletedInMainFrame. The source
// is the WebContents.
// DEPRECATED: Use WebContentsObserver::DocumentOnLoadCompletedInMainFrame()
NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME,
// A content load is starting. The source will be a
// Source<NavigationController> corresponding to the tab in which the load
// is occurring. No details are expected for this notification.
// DEPRECATED: Use WebContentsObserver::DidStartLoading()
NOTIFICATION_LOAD_START,
// A content load has stopped. The source will be a
// Source<NavigationController> corresponding to the tab in which the load
// is occurring. Details in the form of a LoadNotificationDetails object
// are optional.
// DEPRECATED: Use WebContentsObserver::DidStopLoading()
NOTIFICATION_LOAD_STOP,
// A redirect was received while requesting a resource. The source will be
// a Source<WebContents> corresponding to the tab in which the request was
// issued. Details in the form of a ResourceRedirectDetails are provided.
// DEPRECATED: Use WebContentsObserver::DidGetRedirectForResourceRequest()
NOTIFICATION_RESOURCE_RECEIVED_REDIRECT,
// WebContents ---------------------------------------------------------------
// This notification is sent when a render view host has connected to a
// renderer process. The source is a Source<WebContents> with a pointer to
// the WebContents. A WEB_CONTENTS_DISCONNECTED notification is
// guaranteed before the source pointer becomes junk. No details are
// expected.
// DEPRECATED: Use WebContentsObserver::RenderViewReady()
NOTIFICATION_WEB_CONTENTS_CONNECTED,
// This message is sent after a WebContents is disconnected from the
// renderer process. The source is a Source<WebContents> with a pointer to
// the WebContents (the pointer is usable). No details are expected.
// DEPRECATED: This is fired in two situations: when the render process
// crashes, in which case use WebContentsObserver::RenderProcessGone, and when
// the WebContents is being torn down, in which case use
// WebContentsObserver::WebContentsDestroyed()
NOTIFICATION_WEB_CONTENTS_DISCONNECTED,
// This notification is sent when a WebContents is being destroyed. Any
// object holding a reference to a WebContents can listen to that
// notification to properly reset the reference. The source is a
// Source<WebContents>.
// DEPRECATED: Use WebContentsObserver::WebContentsDestroyed()
NOTIFICATION_WEB_CONTENTS_DESTROYED,
// A RenderViewHost was created for a WebContents. The source is the
// associated WebContents, and the details is the RenderViewHost
// pointer.
NOTIFICATION_WEB_CONTENTS_RENDER_VIEW_HOST_CREATED,
// Indicates that a RenderProcessHost was created and its handle is now
// available. The source will be the RenderProcessHost that corresponds to
// the process.
NOTIFICATION_RENDERER_PROCESS_CREATED,
// Indicates that a RenderProcessHost is destructing. The source will be the
// RenderProcessHost that corresponds to the process.
NOTIFICATION_RENDERER_PROCESS_TERMINATED,
// Indicates that a render process was closed (meaning it exited, but the
// RenderProcessHost might be reused). The source will be the corresponding
// RenderProcessHost. The details will be a RendererClosedDetails struct.
// This may get sent along with RENDERER_PROCESS_TERMINATED.
NOTIFICATION_RENDERER_PROCESS_CLOSED,
// Indicates that a RenderWidgetHost has become unresponsive for a period of
// time. The source will be the RenderWidgetHost that corresponds to the
// hung view, and no details are expected.
NOTIFICATION_RENDER_WIDGET_HOST_HANG,
// This is sent when a RenderWidgetHost is being destroyed. The source is
// the RenderWidgetHost, the details are not used.
NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED,
// Sent after the backing store has been updated but before the widget has
// painted. The source is the RenderWidgetHost, the details are not used.
NOTIFICATION_RENDER_WIDGET_HOST_DID_UPDATE_BACKING_STORE,
// Sent from RenderViewHost::ClosePage. The hosted RenderView has
// processed the onbeforeunload handler and is about to be sent a
// ViewMsg_ClosePage message to complete the tear-down process. The source
// is the RenderViewHost sending the message, and no details are provided.
// Note: This message is not sent in response to RenderView closure
// initiated by window.close().
NOTIFICATION_RENDER_VIEW_HOST_WILL_CLOSE_RENDER_VIEW,
// Indicates a RenderWidgetHost has been hidden or restored. The source is
// the RWH whose visibility changed, the details is a bool set to true if
// the new state is "visible."
NOTIFICATION_RENDER_WIDGET_VISIBILITY_CHANGED,
// The focused element inside a page has changed. The source is the
// RenderViewHost. The details is a Details<const bool> that indicates whether
// or not an editable node was focused.
NOTIFICATION_FOCUS_CHANGED_IN_PAGE,
// Notification from WebContents that we have received a response from the
// renderer in response to a dom automation controller action. The source is
// the RenderViewHost, and the details is a string with the response.
NOTIFICATION_DOM_OPERATION_RESPONSE,
// Custom notifications used by the embedder should start from here.
NOTIFICATION_CONTENT_END,
};
} // namespace content
#endif // CONTENT_PUBLIC_BROWSER_NOTIFICATION_TYPES_H_