/* 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/. */
/// Object acting as the nsIWebProgress instance for a BrowsingContext over its /// lifetime. /// /// An active toplevel CanonicalBrowsingContext will always have a /// BrowsingContextWebProgress, which will be moved between contexts as /// BrowsingContextGroup-changing loads are performed. /// /// Subframes will only have a `BrowsingContextWebProgress` if they are loaded /// in a content process, and will use the nsDocShell instead if they are loaded /// in the parent process, as parent process documents cannot have or be /// out-of-process iframes. class BrowsingContextWebProgress final : public nsIWebProgress, public nsIWebProgressListener { public:
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(BrowsingContextWebProgress,
nsIWebProgress)
NS_DECL_NSIWEBPROGRESS
NS_DECL_NSIWEBPROGRESSLISTENER
using ListenerArray = nsAutoTObserverArray<ListenerInfo, 4>;
ListenerArray mListenerInfoList;
// The current BrowsingContext which owns this BrowsingContextWebProgress. // This context may change during navigations and may not be fully attached at // all times.
RefPtr<CanonicalBrowsingContext> mCurrentBrowsingContext;
// The current request being actively loaded by the BrowsingContext. Only set // while mIsLoadingDocument is true, and is used to fire STATE_STOP // notifications if the BrowsingContext is discarded while the load is // ongoing.
nsCOMPtr<nsIRequest> mLoadingDocumentRequest;
// The most recent load type observed for this BrowsingContextWebProgress.
uint32_t mLoadType = 0;
// Are we currently in the process of loading a document? This is true between // the `STATE_START` notification from content and the `STATE_STOP` // notification being received. Duplicate `STATE_START` events may be // discarded while loading a document to avoid noise caused by process // switches. bool mIsLoadingDocument = false;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.