gecko-dev/netwerk/base/nsIURIWithBlobImpl.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

41 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 nsIURI;
%{C++
namespace mozilla {
namespace dom {
class BlobImpl;
}}
%}
[ptr] native BlobImplPtr(mozilla::dom::BlobImpl);
/**
* nsIURIWithBlobImpl is implemented by URIs which are associated with a
* specific BlobImpl.
*/
[builtinclass, builtinclass, uuid(331b41d3-3506-4ab5-bef9-aab41e3202a3)]
interface nsIURIWithBlobImpl : nsISupports
{
/**
* The BlobImpl associated with the resource returned when loading this uri.
*/
readonly attribute nsISupports blobImpl;
};
[builtinclass, uuid(d3e8c9fa-ff07-47cc-90dc-0cc5445ddb59)]
interface nsIBlobURIMutator : nsISupports
{
/**
* Associates a blobImpl 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 setBlobImpl(in BlobImplPtr blobImpl);
};