gecko-dev/netwerk/base/nsIURIWithPrincipal.idl
Valentin Gosu a48c8f1ada Bug 1431760 - Add NS_MutateURI.Apply that allows calling methods declared in other interfaces implemented by NS_MutateURI::mMutator r=mayhemer
* The method can be chained just as the other methods on NS_MutateURI.
* In case the mutator object does not implement the interface, mStatus will be set to an error code.
* This is useful when you are constructing a new URI and the type of the mutator is known. I expect a future patch will add a MaybeApply method, that does not set mStatus to an error code if the mutator does not implement the interface.
* This patch changes nsHostObjectProtocolHandler::NewURI to use the new method and avoid a static_cast<nsHostObjectURI*>(uri)


MozReview-Commit-ID: 9kvXJX54gUP

--HG--
extra : rebase_source : 2a27778ec583251fac26c74d78125bd7266d6d87
2018-01-22 15:52:37 +01:00

40 lines
1.1 KiB
Plaintext

/* 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;
interface nsIURIMutator;
/**
* nsIURIWithPrincipal is implemented by URIs which are associated with a
* specific principal.
*/
[scriptable, builtinclass, uuid(626a5c0c-bfd8-4531-8b47-a8451b0daa33)]
interface nsIURIWithPrincipal : nsISupports
{
/**
* The principal associated with the resource returned when loading this
* uri.
*/
readonly attribute nsIPrincipal principal;
/**
* The uri for the principal.
*/
readonly attribute nsIURI principalUri;
};
[builtinclass, uuid(fa138a89-c76e-4b7f-95ec-c7b56ded5ef5)]
interface nsIPrincipalURIMutator : nsISupports
{
/**
* Associates a principal to the mutated URI.
* Would normally return nsIURIMutator, but since it only gets called
* from C++, there is no need for that.
*/
[must_use, noscript] void setPrincipal(in nsIPrincipal aPrincipal);
};