/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * 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 nsIPrincipal; interface nsIURI; /** * C++ exposed interface for the `E10SUtils` object from the * `resource://gre/modules/E10SUtils.jsm` module. */ [scriptable, uuid(1e18680e-052d-4509-a17e-678f5c495e02)] interface nsIE10SUtils : nsISupports { /** * Determine what remote type should be used to load a document with the given * principal. * * @param aPrincipal The result principal for the document being loaded. * @param aChannelOriginalURI. The original URI being loaded * (which isn't always the same as the Principal's * URI) * @param aMultiProcess Does the browser have remote tabs enabled. * @param aRemoteSubframes Does the browser have remote subframes enabled. * @param aPreferredRemoteType If multiple remote types are compatible with * the load, prefer staying in this remote type. * @param aCurrentPrincipal The principal of the currently loaded document. * @param aIsSubframe Is the process switch occuring in a subframe. * * @return The remote type to complete this load in. */ AString getRemoteTypeForPrincipal(in nsIPrincipal aPrincipal, in nsIURI aChannelOriginalURI, in boolean aMultiProcess, in boolean aRemoteSubframes, in AString aPreferredRemoteType, in nsIPrincipal aCurrentPrincipal, in boolean aIsSubframe); };