/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- * vim: ft=cpp tw=78 sw=2 et ts=2 sts=2 cin * 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/. */ #include "nsISupports.idl" interface nsIDOMWindow; /** * An nsILoadContext represents the context of a load. This interface * can be queried for various information about where the load is * happening. */ [scriptable, uuid(48b5bf16-e0c7-11e1-b28e-91726188709b)] interface nsILoadContext : nsISupports { /** * associatedWindow is the window with which the load is associated, if any. * Note that the load may be triggered by a document which is different from * the document in associatedWindow, and in fact the source of the load need * not be same-origin with the document in associatedWindow. This attribute * may be null if there is no associated window. */ readonly attribute nsIDOMWindow associatedWindow; /** * topWindow is the top window which is of same type as associatedWindow. * This is equivalent to associatedWindow.top, but is provided here as a * convenience. All the same caveats as associatedWindow of apply, of * course. This attribute may be null if there is no associated window. */ readonly attribute nsIDOMWindow topWindow; /** * Check whether the load is happening in a particular type of application. * * @param an application type. For now, the constants to be passed here are * the nsIDocShell APP_TYPE_* constants. * * @return whether there is some ancestor of the associatedWindow that is of * the given app type. */ boolean isAppOfType(in unsigned long appType); /** * True if the load context is content (as opposed to chrome). This is * determined based on the type of window the load is performed in, NOT based * on any URIs that might be around. */ readonly attribute boolean isContent; /* * Attribute that determines if private browsing should be used. */ attribute boolean usePrivateBrowsing; %{C++ /** * De-XPCOMed getter to make call-sites cleaner. */ bool UsePrivateBrowsing() { bool usingPB; GetUsePrivateBrowsing(&usingPB); return usingPB; } %} /** * Returns true iif the load is occurring inside a browser element. */ readonly attribute boolean isInBrowserElement; /** * Returns the app id of the app the load is occurring is in. Returns * nsIScriptSecurityManager::NO_APP_ID if the load is not part of an app. */ readonly attribute unsigned long appId; };