/* 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 "nsIWebBrowserChrome.idl" #include "nsIURI.idl" interface nsIDocShell; interface nsIInputStream; interface nsIRunnable; interface nsIPrincipal; interface nsIContentSecurityPolicy; interface nsIReferrerInfo; webidl Node; /** * nsIWebBrowserChrome3 is an extension to nsIWebBrowserChrome. */ [scriptable, uuid(542b6625-35a9-426a-8257-c12a345383b0)] interface nsIWebBrowserChrome3 : nsIWebBrowserChrome { /** * Determines the appropriate target for a link. * * @param originalTarget * The original link target. * @param linkURI * Link destination URI. * @param aDOMNode * Link DOM node. * @param isAppTab * Whether or not the link is in an app tab. * @returns A new link target, if appropriate. * Otherwise returns originalTarget. */ AString onBeforeLinkTraversal(in AString originalTarget, in nsIURI linkURI, in Node linkNode, in boolean isAppTab); /** * Determines whether a load should continue. * * @param aDocShell * The docshell performing the load. * @param aURI * The URI being loaded. * @param aReferrerInfo * The referrerInfo of the load. * @param aHasPostData * True if the load which is being asked about has associated post data * which would be discarded if the load was redirected across process * boundaries. * @param aTriggeringPrincipal * The principal that initiated the load of aURI. * @param aCsp * The CSP to be used for that load. That is the CSP that e.g. upgrades * the load to HTTPS in case upgrade-insecure-requests is set. */ bool shouldLoadURI(in nsIDocShell aDocShell, in nsIURI aURI, in nsIReferrerInfo aReferrerInfo, in boolean aHasPostData, in nsIPrincipal aTriggeringPrincipal, in nsIContentSecurityPolicy aCsp); bool shouldLoadURIInThisProcess(in nsIURI aURI); };