DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (882de07e4cbe)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsISupports.idl"

interface mozIDOMWindowProxy;
interface nsIEventTarget;
interface nsIEventTarget;
interface nsIWebProgressListener;

/**
 * The nsIWebProgress interface is used to add or remove nsIWebProgressListener
 * instances to observe the loading of asynchronous requests (usually in the
 * instances to observe the loading of asynchronous requests (usually in the
 * context of a DOM window).
 *
 * nsIWebProgress instances may be arranged in a parent-child configuration,
 * corresponding to the parent-child configuration of their respective DOM
 * windows.  However, in some cases a nsIWebProgress instance may not have an
 * windows.  However, in some cases a nsIWebProgress instance may not have an
 * associated DOM window.  The parent-child relationship of nsIWebProgress
 * instances is not made explicit by this interface, but the relationship may
 * exist in some implementations.
 *
 * A nsIWebProgressListener instance receives notifications for the
 * A nsIWebProgressListener instance receives notifications for the
 * nsIWebProgress instance to which it added itself, and it may also receive
 * notifications from any nsIWebProgress instances that are children of that
 * nsIWebProgress instance.
 */
[scriptable, uuid(c4d64640-b332-4db6-a2a5-e08566000dc9)]
interface nsIWebProgress : nsISupports
interface nsIWebProgress : nsISupports
{
  /**
   * The following flags may be combined to form the aNotifyMask parameter for
   * the addProgressListener method.  They limit the set of events that are
   * delivered to an nsIWebProgressListener instance.
   * delivered to an nsIWebProgressListener instance.
   */

  /**
   * These flags indicate the state transistions to observe, corresponding to
   * nsIWebProgressListener::onStateChange.
   * nsIWebProgressListener::onStateChange.
   *
   * NOTIFY_STATE_REQUEST
   *   Only receive the onStateChange event if the aStateFlags parameter
   *   includes nsIWebProgressListener::STATE_IS_REQUEST.
   *
   *
   * NOTIFY_STATE_DOCUMENT
   *   Only receive the onStateChange event if the aStateFlags parameter
   *   includes nsIWebProgressListener::STATE_IS_DOCUMENT.
   *
   * NOTIFY_STATE_NETWORK
   * NOTIFY_STATE_NETWORK
   *   Only receive the onStateChange event if the aStateFlags parameter
   *   includes nsIWebProgressListener::STATE_IS_NETWORK.
   *
   * NOTIFY_STATE_WINDOW
   *   Only receive the onStateChange event if the aStateFlags parameter
   *   includes nsIWebProgressListener::STATE_IS_WINDOW.
   *
   * NOTIFY_STATE_ALL
   *   Receive all onStateChange events.
   */
   */
  const unsigned long NOTIFY_STATE_REQUEST  = 0x00000001;
  const unsigned long NOTIFY_STATE_DOCUMENT = 0x00000002;
  const unsigned long NOTIFY_STATE_NETWORK  = 0x00000004;
  const unsigned long NOTIFY_STATE_WINDOW   = 0x00000008;
  const unsigned long NOTIFY_STATE_ALL      = 0x0000000f;
  const unsigned long NOTIFY_STATE_ALL      = 0x0000000f;

  /**
   * These flags indicate the other events to observe, corresponding to the
   * other four methods defined on nsIWebProgressListener.
   *
   *
   * NOTIFY_PROGRESS
   *   Receive onProgressChange events.
   *
   * NOTIFY_STATUS
   *   Receive onStatusChange events.
   *   Receive onStatusChange events.
   *
   * NOTIFY_SECURITY
   *   Receive onSecurityChange events.
   *
   * NOTIFY_LOCATION
   *   Receive onLocationChange events.
   *
   *
   * NOTIFY_CONTENT_BLOCKING
   *   Receive onContentBlockingEvent events.
   *
   * NOTIFY_REFRESH
   *   Receive onRefreshAttempted events.
   *   Receive onRefreshAttempted events.
   *   This is defined on nsIWebProgressListener2.
   */
  const unsigned long NOTIFY_PROGRESS         = 0x00000010;
  const unsigned long NOTIFY_STATUS           = 0x00000020;
  const unsigned long NOTIFY_SECURITY         = 0x00000040;
  const unsigned long NOTIFY_LOCATION         = 0x00000080;
  const unsigned long NOTIFY_REFRESH          = 0x00000100;
  const unsigned long NOTIFY_REFRESH          = 0x00000100;
  const unsigned long NOTIFY_CONTENT_BLOCKING = 0x00000200;

  /**
   * This flag enables all notifications.
   * This flag enables all notifications.
   */
  const unsigned long NOTIFY_ALL              = 0x000003ff;

  /**
   * Registers a listener to receive web progress events.
   * Registers a listener to receive web progress events.
   *
   * @param aListener
   *        The listener interface to be called when a progress event occurs.
   *        This object must also implement nsISupportsWeakReference.
   * @param aNotifyMask
   * @param aNotifyMask
   *        The types of notifications to receive.
   *
   * @throw NS_ERROR_INVALID_ARG
   *        Indicates that aListener was either null or that it does not
   *        support weak references.
   *        support weak references.
   * @throw NS_ERROR_FAILURE
   *        Indicates that aListener was already registered.
   */
  void addProgressListener(in nsIWebProgressListener aListener,
                           in unsigned long aNotifyMask);
                           in unsigned long aNotifyMask);

  /**
  /**
   * Removes a previously registered listener of progress events.
   * Removes a previously registered listener of progress events.
   *
   * @param aListener
   *        The listener interface previously registered with a call to
   *        The listener interface previously registered with a call to
   *        addProgressListener.
   *
   * @throw NS_ERROR_FAILURE
   *        Indicates that aListener was not registered.
   */
   */
  void removeProgressListener(in nsIWebProgressListener aListener);

  /**
   * The DOM window associated with this nsIWebProgress instance.
   *
   *
   * @throw NS_ERROR_FAILURE
   *        Indicates that there is no associated DOM window.
   */
  readonly attribute mozIDOMWindowProxy DOMWindow;
  readonly attribute uint64_t DOMWindowID;
  readonly attribute uint64_t DOMWindowID;
  readonly attribute uint64_t innerDOMWindowID;

  /**
   * Indicates whether DOMWindow.top == DOMWindow.
   */
   */
  readonly attribute boolean isTopLevel;

  /**
   * Indicates whether or not a document is currently being loaded
   * Indicates whether or not a document is currently being loaded
   * in the context of this nsIWebProgress instance.
   */
  readonly attribute boolean isLoadingDocument;

  /**
   * Contains a load type as specified by the load* constants in
   * nsIDocShellLoadInfo.idl.
   * nsIDocShellLoadInfo.idl.
   */
  readonly attribute unsigned long loadType;

  /**
   * Main thread event target to which progress updates should be
   * Main thread event target to which progress updates should be
   * dispatched. This typically will be a SchedulerEventTarget
   * corresponding to the tab requesting updates.
   */
  attribute nsIEventTarget target;
};
};