/* 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 "nsIWebBrowserChrome2.idl" #include "nsIURI.idl" #include "nsIDOMNode.idl" interface nsIDocShell; interface nsIInputStream; interface nsIPrincipal; /** * nsIWebBrowserChrome3 is an extension to nsIWebBrowserChrome2. */ [scriptable, uuid(542b6625-35a9-426a-8257-c12a345383b0)] interface nsIWebBrowserChrome3 : nsIWebBrowserChrome2 { /** * 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 nsIDOMNode linkNode, in boolean isAppTab); /** * Determines whether a load should continue. * * @param aDocShell * The docshell performing the load. * @param aURI * The URI being loaded. * @param aReferrer * The referrer of the load. * @param aTriggeringPrincipal * The principal that initiated the load of aURI. */ bool shouldLoadURI(in nsIDocShell aDocShell, in nsIURI aURI, in nsIURI aReferrer, in nsIPrincipal aTriggeringPrincipal); /** * Attempts to load the currently loaded page into a fresh process to increase * available memory. * * @param aDocShell * The docshell performing the load. */ bool reloadInFreshProcess(in nsIDocShell aDocShell, in nsIURI aURI, in nsIURI aReferrer, in nsIPrincipal aTriggeringPrincipal); };