mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-13 21:35:39 +00:00
Bug 1087442 - Attach LoadInfo inside each individual ProtocolHandler - netUtil changes (r=sicking,sworkman)
This commit is contained in:
parent
05871a3a20
commit
5a98bf956c
@ -188,24 +188,80 @@ NS_NewFileURI(nsIURI* *result,
|
||||
}
|
||||
|
||||
/*
|
||||
* How to create a new Channel using NS_NewChannel:
|
||||
* 1) Please try to call NS_NewChannel providing a requesting *nsINode*
|
||||
* 2) If no requesting nsINode is available,
|
||||
* call NS_NewChannel providing a requesting *nsIPrincipal*.
|
||||
* 3) Call NS_NewChannelInternal *only* if requesting Principal and
|
||||
* the Node's Principal have to be different.
|
||||
* >> Most likely this is not the case! <<
|
||||
* Needs special approval!
|
||||
*/
|
||||
* How to create a new Channel, using NS_NewChannel,
|
||||
* NS_NewChannelWithTriggeringPrincipal, NS_OpenURI,
|
||||
* NS_NewInputStreamChannel, NS_NewChannelInternal
|
||||
* and it's variations:
|
||||
*
|
||||
* @param aURI
|
||||
* nsIURI from which to make a channel
|
||||
* @param aLoadingNode
|
||||
* The loadingDocument of the channel.
|
||||
* The element or document where the result of this request will be
|
||||
* used. This is the document/element that will get access to the
|
||||
* result of this request. For example for an image load, it's the
|
||||
* document in which the image will be loaded. And for a CSS
|
||||
* stylesheet it's the document whose rendering will be affected by
|
||||
* the stylesheet.
|
||||
* If possible, pass in the element which is performing the load. But
|
||||
* if the load is coming from a JS API (such as XMLHttpRequest) or if
|
||||
* the load might be coalesced across multiple elements (such as
|
||||
* for <img>) then pass in the Document node instead.
|
||||
* For loads that are not related to any document, such as loads coming
|
||||
* from addons or internal browser features, use null here.
|
||||
* @param aLoadingPrincipal
|
||||
* The loadingPrincipal of the channel.
|
||||
* The principal of the document where the result of this request will be used.
|
||||
* This is generally the principal of the aLoadingNode. However for
|
||||
* loads where aLoadingNode is null this argument still needs to be
|
||||
* passed. For example for loads from a WebWorker, pass the principal
|
||||
* of that worker. For loads from an addon or from internal browser
|
||||
* features, pass the system principal.
|
||||
* This principal should almost always be the system principal if
|
||||
* aLoadingNode is null. The only exception to this is for loads
|
||||
* from WebWorkers since they don't have any nodes to be passed as
|
||||
* aLoadingNode. Please note, aLoadingPrincipal is *not* the
|
||||
* principal of the resource being loaded. But rather the principal
|
||||
* of the context where the resource will be used.
|
||||
* @param aTriggeringPrincipal
|
||||
* The triggeringPrincipal of the load.
|
||||
* The triggeringPrincipal is the principal of the resource that caused
|
||||
* this particular URL to be loaded.
|
||||
* Most likely the triggeringPrincipal and the loadingPrincipal are
|
||||
* identical, in which case the triggeringPrincipal can be left out.
|
||||
* In some cases the loadingPrincipal and the triggeringPrincipal are
|
||||
* different however, e.g. a stylesheet may import a subresource. In
|
||||
* that case the principal of the stylesheet which contains the
|
||||
* import command is the triggeringPrincipal, and the principal of
|
||||
* the document whose rendering is affected is the loadingPrincipal.
|
||||
* @param aSecurityFlags
|
||||
* The securityFlags of the channel.
|
||||
* Any of the securityflags defined in nsILoadInfo.idl
|
||||
* @param aContentPolicyType
|
||||
* The contentPolicyType of the channel.
|
||||
* Any of the content types defined in nsIContentPolicy.idl
|
||||
*
|
||||
* Please note, if you provide a loadingNode, then the loadingPrincipal
|
||||
* must match the loadingNode->NodePrincipal(). Alternatively you can
|
||||
* discard the loadingPrincipal if you provide a loadingNode.
|
||||
*
|
||||
* What specific API function to use:
|
||||
* * If possible try to call NS_NewChannel() providing a loading *nsINode*
|
||||
* * If no loading *nsINode* is avaialable, call NS_NewChannel() providing
|
||||
* a loading *nsIPrincipal*.
|
||||
* * Call NS_NewChannelWithTriggeringPrincipal() if the loading principal
|
||||
* and the Node's principal have to be different (see above).
|
||||
* * Call NS_NewChannelInternal() providing aLoadInfo object in cases where
|
||||
* you already have loadInfo object, e.g in case of a channel redirect.
|
||||
*/
|
||||
inline nsresult
|
||||
NS_NewChannelInternal(nsIChannel** outChannel,
|
||||
nsIURI* aUri,
|
||||
nsINode* aRequestingNode,
|
||||
nsIPrincipal* aRequestingPrincipal,
|
||||
nsINode* aLoadingNode,
|
||||
nsIPrincipal* aLoadingPrincipal,
|
||||
nsIPrincipal* aTriggeringPrincipal,
|
||||
nsSecurityFlags aSecurityFlags,
|
||||
nsContentPolicyType aContentPolicyType,
|
||||
nsIURI* aBaseURI = nullptr,
|
||||
nsILoadGroup* aLoadGroup = nullptr,
|
||||
nsIInterfaceRequestor* aCallbacks = nullptr,
|
||||
nsLoadFlags aLoadFlags = nsIRequest::LOAD_NORMAL,
|
||||
@ -218,7 +274,15 @@ NS_NewChannelInternal(nsIChannel** outChannel,
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr<nsIChannel> channel;
|
||||
rv = aIoService->NewChannelFromURI(aUri, getter_AddRefs(channel));
|
||||
rv = aIoService->NewChannelFromURI2(
|
||||
aUri,
|
||||
aLoadingNode ?
|
||||
aLoadingNode->AsDOMNode() : nullptr,
|
||||
aLoadingPrincipal,
|
||||
aTriggeringPrincipal,
|
||||
aSecurityFlags,
|
||||
aContentPolicyType,
|
||||
getter_AddRefs(channel));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
if (aLoadGroup) {
|
||||
@ -252,9 +316,9 @@ NS_NewChannelInternal(nsIChannel** outChannel,
|
||||
|
||||
// create a new Loadinfo with the potentially updated securityFlags
|
||||
loadInfo =
|
||||
new mozilla::LoadInfo(aRequestingPrincipal, aTriggeringPrincipal,
|
||||
aRequestingNode, aSecurityFlags,
|
||||
aContentPolicyType, aBaseURI);
|
||||
new mozilla::LoadInfo(aLoadingPrincipal, aTriggeringPrincipal,
|
||||
aLoadingNode, aSecurityFlags,
|
||||
aContentPolicyType);
|
||||
if (!loadInfo) {
|
||||
return NS_ERROR_UNEXPECTED;
|
||||
}
|
||||
@ -270,6 +334,7 @@ NS_NewChannelInternal(nsIChannel** outChannel,
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// See NS_NewChannelInternal for usage and argument description
|
||||
inline nsresult
|
||||
NS_NewChannelInternal(nsIChannel** outChannel,
|
||||
nsIURI* aUri,
|
||||
@ -287,19 +352,22 @@ NS_NewChannelInternal(nsIChannel** outChannel,
|
||||
aLoadInfo->TriggeringPrincipal(),
|
||||
aLoadInfo->GetSecurityFlags(),
|
||||
aLoadInfo->GetContentPolicyType(),
|
||||
aLoadInfo->BaseURI(),
|
||||
aLoadGroup,
|
||||
aCallbacks,
|
||||
aLoadFlags,
|
||||
aIoService);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
// Please note that we still call SetLoadInfo on the channel because
|
||||
// we want the same instance of the loadInfo to be set on the channel.
|
||||
(*outChannel)->SetLoadInfo(aLoadInfo);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// See NS_NewChannelInternal for usage and argument description
|
||||
inline nsresult /*NS_NewChannelWithNodeAndTriggeringPrincipal */
|
||||
NS_NewChannelWithTriggeringPrincipal(nsIChannel** outChannel,
|
||||
nsIURI* aUri,
|
||||
nsINode* aRequestingNode,
|
||||
nsINode* aLoadingNode,
|
||||
nsIPrincipal* aTriggeringPrincipal,
|
||||
nsSecurityFlags aSecurityFlags,
|
||||
nsContentPolicyType aContentPolicyType,
|
||||
@ -308,26 +376,26 @@ NS_NewChannelWithTriggeringPrincipal(nsIChannel** outChannel,
|
||||
nsLoadFlags aLoadFlags = nsIRequest::LOAD_NORMAL,
|
||||
nsIIOService* aIoService = nullptr)
|
||||
{
|
||||
MOZ_ASSERT(aRequestingNode);
|
||||
MOZ_ASSERT(aLoadingNode);
|
||||
NS_ASSERTION(aTriggeringPrincipal, "Can not create channel without a triggering Principal!");
|
||||
return NS_NewChannelInternal(outChannel,
|
||||
aUri,
|
||||
aRequestingNode,
|
||||
aRequestingNode->NodePrincipal(),
|
||||
aLoadingNode,
|
||||
aLoadingNode->NodePrincipal(),
|
||||
aTriggeringPrincipal,
|
||||
aSecurityFlags,
|
||||
aContentPolicyType,
|
||||
nullptr, // aBaseURI
|
||||
aLoadGroup,
|
||||
aCallbacks,
|
||||
aLoadFlags,
|
||||
aIoService);
|
||||
}
|
||||
|
||||
// See NS_NewChannelInternal for usage and argument description
|
||||
inline nsresult /*NS_NewChannelWithPrincipalAndTriggeringPrincipal */
|
||||
NS_NewChannelWithTriggeringPrincipal(nsIChannel** outChannel,
|
||||
nsIURI* aUri,
|
||||
nsIPrincipal* aRequestingPrincipal,
|
||||
nsIPrincipal* aLoadingPrincipal,
|
||||
nsIPrincipal* aTriggeringPrincipal,
|
||||
nsSecurityFlags aSecurityFlags,
|
||||
nsContentPolicyType aContentPolicyType,
|
||||
@ -336,25 +404,25 @@ NS_NewChannelWithTriggeringPrincipal(nsIChannel** outChannel,
|
||||
nsLoadFlags aLoadFlags = nsIRequest::LOAD_NORMAL,
|
||||
nsIIOService* aIoService = nullptr)
|
||||
{
|
||||
NS_ASSERTION(aRequestingPrincipal, "Can not create channel without a requesting Principal!");
|
||||
NS_ASSERTION(aLoadingPrincipal, "Can not create channel without a loading Principal!");
|
||||
return NS_NewChannelInternal(outChannel,
|
||||
aUri,
|
||||
nullptr, // aRequestingNode
|
||||
aRequestingPrincipal,
|
||||
nullptr, // aLoadingNode
|
||||
aLoadingPrincipal,
|
||||
aTriggeringPrincipal,
|
||||
aSecurityFlags,
|
||||
aContentPolicyType,
|
||||
nullptr, // aBaseURI
|
||||
aLoadGroup,
|
||||
aCallbacks,
|
||||
aLoadFlags,
|
||||
aIoService);
|
||||
}
|
||||
|
||||
// See NS_NewChannelInternal for usage and argument description
|
||||
inline nsresult /* NS_NewChannelNode */
|
||||
NS_NewChannel(nsIChannel** outChannel,
|
||||
nsIURI* aUri,
|
||||
nsINode* aRequestingNode,
|
||||
nsINode* aLoadingNode,
|
||||
nsSecurityFlags aSecurityFlags,
|
||||
nsContentPolicyType aContentPolicyType,
|
||||
nsILoadGroup* aLoadGroup = nullptr,
|
||||
@ -362,25 +430,25 @@ NS_NewChannel(nsIChannel** outChannel,
|
||||
nsLoadFlags aLoadFlags = nsIRequest::LOAD_NORMAL,
|
||||
nsIIOService* aIoService = nullptr)
|
||||
{
|
||||
NS_ASSERTION(aRequestingNode, "Can not create channel without a requesting Node!");
|
||||
NS_ASSERTION(aLoadingNode, "Can not create channel without a loading Node!");
|
||||
return NS_NewChannelInternal(outChannel,
|
||||
aUri,
|
||||
aRequestingNode,
|
||||
aRequestingNode->NodePrincipal(),
|
||||
aLoadingNode,
|
||||
aLoadingNode->NodePrincipal(),
|
||||
nullptr, // aTriggeringPrincipal
|
||||
aSecurityFlags,
|
||||
aContentPolicyType,
|
||||
nullptr, // aBaseURI
|
||||
aLoadGroup,
|
||||
aCallbacks,
|
||||
aLoadFlags,
|
||||
aIoService);
|
||||
}
|
||||
|
||||
// See NS_NewChannelInternal for usage and argument description
|
||||
inline nsresult /* NS_NewChannelPrincipal */
|
||||
NS_NewChannel(nsIChannel** outChannel,
|
||||
nsIURI* aUri,
|
||||
nsIPrincipal* aRequestingPrincipal,
|
||||
nsIPrincipal* aLoadingPrincipal,
|
||||
nsSecurityFlags aSecurityFlags,
|
||||
nsContentPolicyType aContentPolicyType,
|
||||
nsILoadGroup* aLoadGroup = nullptr,
|
||||
@ -390,12 +458,11 @@ NS_NewChannel(nsIChannel** outChannel,
|
||||
{
|
||||
return NS_NewChannelInternal(outChannel,
|
||||
aUri,
|
||||
nullptr, // aRequestingNode,
|
||||
aRequestingPrincipal,
|
||||
nullptr, // aLoadingNode,
|
||||
aLoadingPrincipal,
|
||||
nullptr, // aTriggeringPrincipal
|
||||
aSecurityFlags,
|
||||
aContentPolicyType,
|
||||
nullptr, // aBaseURI
|
||||
aLoadGroup,
|
||||
aCallbacks,
|
||||
aLoadFlags,
|
||||
@ -409,8 +476,8 @@ NS_NewChannel(nsIChannel** outChannel,
|
||||
inline nsresult
|
||||
NS_OpenURIInternal(nsIInputStream** outStream,
|
||||
nsIURI* aUri,
|
||||
nsINode* aRequestingNode,
|
||||
nsIPrincipal* aRequestingPrincipal,
|
||||
nsINode* aLoadingNode,
|
||||
nsIPrincipal* aLoadingPrincipal,
|
||||
nsIPrincipal* aTriggeringPrincipal,
|
||||
nsSecurityFlags aSecurityFlags,
|
||||
nsContentPolicyType aContentPolicyType,
|
||||
@ -420,17 +487,16 @@ NS_OpenURIInternal(nsIInputStream** outStream,
|
||||
nsIIOService* aIoService = nullptr, // pass in nsIIOService to optimize callers
|
||||
nsIChannel** outChannel = nullptr)
|
||||
{
|
||||
NS_ASSERTION(aRequestingPrincipal, "Can not create channel without a requesting Principal!");
|
||||
NS_ASSERTION(aLoadingPrincipal, "Can not create channel without a loading Principal!");
|
||||
|
||||
nsCOMPtr<nsIChannel> channel;
|
||||
nsresult rv = NS_NewChannelInternal(getter_AddRefs(channel),
|
||||
aUri,
|
||||
aRequestingNode,
|
||||
aRequestingPrincipal,
|
||||
aLoadingNode,
|
||||
aLoadingPrincipal,
|
||||
aTriggeringPrincipal,
|
||||
aSecurityFlags,
|
||||
aContentPolicyType,
|
||||
nullptr, // aBaseURI
|
||||
aLoadGroup,
|
||||
aCallbacks,
|
||||
aLoadFlags,
|
||||
@ -451,7 +517,7 @@ NS_OpenURIInternal(nsIInputStream** outStream,
|
||||
inline nsresult /* NS_OpenURIprincipal */
|
||||
NS_OpenURI(nsIInputStream** outStream,
|
||||
nsIURI* aUri,
|
||||
nsIPrincipal* aRequestingPrincipal,
|
||||
nsIPrincipal* aLoadingPrincipal,
|
||||
nsSecurityFlags aSecurityFlags,
|
||||
nsContentPolicyType aContentPolicyType,
|
||||
nsILoadGroup* aLoadGroup = nullptr,
|
||||
@ -462,8 +528,8 @@ NS_OpenURI(nsIInputStream** outStream,
|
||||
{
|
||||
return NS_OpenURIInternal(outStream,
|
||||
aUri,
|
||||
nullptr, // aRequestingNode
|
||||
aRequestingPrincipal,
|
||||
nullptr, // aLoadingNode
|
||||
aLoadingPrincipal,
|
||||
nullptr, // aTriggeringPrincipal
|
||||
aSecurityFlags,
|
||||
aContentPolicyType,
|
||||
@ -477,7 +543,7 @@ NS_OpenURI(nsIInputStream** outStream,
|
||||
inline nsresult /* NS_OpenURIWithTriggeringPrincipalAndNode */
|
||||
NS_OpenURIWithTriggeringPrincipal(nsIInputStream** outStream,
|
||||
nsIURI* aUri,
|
||||
nsINode* aRequestingNode,
|
||||
nsINode* aLoadingNode,
|
||||
nsIPrincipal* aTriggeringPrincipal,
|
||||
nsSecurityFlags aSecurityFlags,
|
||||
nsContentPolicyType aContentPolicyType,
|
||||
@ -487,12 +553,12 @@ NS_OpenURIWithTriggeringPrincipal(nsIInputStream** outStream,
|
||||
nsIIOService* aIoService = nullptr,
|
||||
nsIChannel** outChannel = nullptr)
|
||||
{
|
||||
MOZ_ASSERT(aRequestingNode);
|
||||
MOZ_ASSERT(aLoadingNode);
|
||||
NS_ASSERTION(aTriggeringPrincipal, "Can not open uri without a triggering Principal!");
|
||||
return NS_OpenURIInternal(outStream,
|
||||
aUri,
|
||||
aRequestingNode,
|
||||
aRequestingNode->NodePrincipal(),
|
||||
aLoadingNode,
|
||||
aLoadingNode->NodePrincipal(),
|
||||
aTriggeringPrincipal,
|
||||
aSecurityFlags,
|
||||
aContentPolicyType,
|
||||
@ -529,8 +595,8 @@ inline nsresult
|
||||
NS_OpenURIInternal(nsIStreamListener* aListener,
|
||||
nsISupports* aContext,
|
||||
nsIURI* aUri,
|
||||
nsINode* aRequestingNode,
|
||||
nsIPrincipal* aRequestingPrincipal,
|
||||
nsINode* aLoadingNode,
|
||||
nsIPrincipal* aLoadingPrincipal,
|
||||
nsIPrincipal* aTriggeringPrincipal,
|
||||
nsSecurityFlags aSecurityFlags,
|
||||
nsContentPolicyType aContentPolicyType,
|
||||
@ -539,12 +605,12 @@ NS_OpenURIInternal(nsIStreamListener* aListener,
|
||||
nsLoadFlags aLoadFlags = nsIRequest::LOAD_NORMAL,
|
||||
nsIIOService* aIoService = nullptr)
|
||||
{
|
||||
NS_ASSERTION(aRequestingPrincipal, "Can not create channel without a requesting Principal!");
|
||||
NS_ASSERTION(aLoadingPrincipal, "Can not create channel without a loading Principal!");
|
||||
|
||||
nsCOMPtr<nsILoadInfo> loadInfo =
|
||||
new mozilla::LoadInfo(aRequestingPrincipal,
|
||||
new mozilla::LoadInfo(aLoadingPrincipal,
|
||||
aTriggeringPrincipal,
|
||||
aRequestingNode,
|
||||
aLoadingNode,
|
||||
aSecurityFlags,
|
||||
aContentPolicyType);
|
||||
if (!loadInfo) {
|
||||
@ -564,7 +630,7 @@ inline nsresult
|
||||
NS_OpenURI(nsIStreamListener* aListener,
|
||||
nsISupports* aContext,
|
||||
nsIURI* aUri,
|
||||
nsIPrincipal* aRequestingPrincipal,
|
||||
nsIPrincipal* aLoadingPrincipal,
|
||||
nsSecurityFlags aSecurityFlags,
|
||||
nsContentPolicyType aContentPolicyType,
|
||||
nsILoadGroup* aLoadGroup = nullptr,
|
||||
@ -575,8 +641,8 @@ NS_OpenURI(nsIStreamListener* aListener,
|
||||
return NS_OpenURIInternal(aListener,
|
||||
aContext,
|
||||
aUri,
|
||||
nullptr, // aRequestingNode
|
||||
aRequestingPrincipal,
|
||||
nullptr, // aLoadingNode
|
||||
aLoadingPrincipal,
|
||||
nullptr, // aTriggeringPrincipal
|
||||
aSecurityFlags,
|
||||
aContentPolicyType,
|
||||
@ -710,19 +776,15 @@ NS_GetRealPort(nsIURI* aURI)
|
||||
return NS_GetDefaultPort(scheme.get());
|
||||
}
|
||||
|
||||
inline nsresult
|
||||
inline nsresult /* NS_NewInputStreamChannelWithLoadInfo */
|
||||
NS_NewInputStreamChannelInternal(nsIChannel** outChannel,
|
||||
nsIURI* aUri,
|
||||
nsIInputStream* aStream,
|
||||
const nsACString& aContentType,
|
||||
const nsACString& aContentCharset,
|
||||
nsINode* aRequestingNode,
|
||||
nsIPrincipal* aRequestingPrincipal,
|
||||
nsIPrincipal* aTriggeringPrincipal,
|
||||
nsSecurityFlags aSecurityFlags,
|
||||
nsContentPolicyType aContentPolicyType,
|
||||
nsIURI* aBaseURI = nullptr)
|
||||
nsILoadInfo* aLoadInfo)
|
||||
{
|
||||
MOZ_ASSERT(aLoadInfo, "can not create channel without a loadinfo");
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIInputStreamChannel> isc =
|
||||
do_CreateInstance(NS_INPUTSTREAMCHANNEL_CONTRACTID, &rv);
|
||||
@ -745,21 +807,11 @@ NS_NewInputStreamChannelInternal(nsIChannel** outChannel,
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
|
||||
nsCOMPtr<nsILoadInfo> loadInfo =
|
||||
new mozilla::LoadInfo(aRequestingPrincipal,
|
||||
aTriggeringPrincipal,
|
||||
aRequestingNode,
|
||||
aSecurityFlags,
|
||||
aContentPolicyType,
|
||||
aBaseURI);
|
||||
if (!loadInfo) {
|
||||
return NS_ERROR_UNEXPECTED;
|
||||
}
|
||||
channel->SetLoadInfo(loadInfo);
|
||||
channel->SetLoadInfo(aLoadInfo);
|
||||
|
||||
// If we're sandboxed, make sure to clear any owner the channel
|
||||
// might already have.
|
||||
if (loadInfo->GetLoadingSandboxed()) {
|
||||
if (aLoadInfo->GetLoadingSandboxed()) {
|
||||
channel->SetOwner(nullptr);
|
||||
}
|
||||
|
||||
@ -767,11 +819,42 @@ NS_NewInputStreamChannelInternal(nsIChannel** outChannel,
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
inline nsresult
|
||||
NS_NewInputStreamChannelInternal(nsIChannel** outChannel,
|
||||
nsIURI* aUri,
|
||||
nsIInputStream* aStream,
|
||||
const nsACString& aContentType,
|
||||
const nsACString& aContentCharset,
|
||||
nsINode* aLoadingNode,
|
||||
nsIPrincipal* aLoadingPrincipal,
|
||||
nsIPrincipal* aTriggeringPrincipal,
|
||||
nsSecurityFlags aSecurityFlags,
|
||||
nsContentPolicyType aContentPolicyType,
|
||||
nsIURI* aBaseURI = nullptr)
|
||||
{
|
||||
nsCOMPtr<nsILoadInfo> loadInfo =
|
||||
new mozilla::LoadInfo(aLoadingPrincipal,
|
||||
aTriggeringPrincipal,
|
||||
aLoadingNode,
|
||||
aSecurityFlags,
|
||||
aContentPolicyType,
|
||||
aBaseURI);
|
||||
if (!loadInfo) {
|
||||
return NS_ERROR_UNEXPECTED;
|
||||
}
|
||||
return NS_NewInputStreamChannelInternal(outChannel,
|
||||
aUri,
|
||||
aStream,
|
||||
aContentType,
|
||||
aContentCharset,
|
||||
loadInfo);
|
||||
}
|
||||
|
||||
inline nsresult /* NS_NewInputStreamChannelPrincipal */
|
||||
NS_NewInputStreamChannel(nsIChannel** outChannel,
|
||||
nsIURI* aUri,
|
||||
nsIInputStream* aStream,
|
||||
nsIPrincipal* aRequestingPrincipal,
|
||||
nsIPrincipal* aLoadingPrincipal,
|
||||
nsSecurityFlags aSecurityFlags,
|
||||
nsContentPolicyType aContentPolicyType,
|
||||
const nsACString& aContentType = EmptyCString(),
|
||||
@ -782,8 +865,8 @@ NS_NewInputStreamChannel(nsIChannel** outChannel,
|
||||
aStream,
|
||||
aContentType,
|
||||
aContentCharset,
|
||||
nullptr, // aRequestingNode
|
||||
aRequestingPrincipal,
|
||||
nullptr, // aLoadingNode
|
||||
aLoadingPrincipal,
|
||||
nullptr, // aTriggeringPrincipal
|
||||
aSecurityFlags,
|
||||
aContentPolicyType);
|
||||
@ -794,8 +877,8 @@ NS_NewInputStreamChannelInternal(nsIChannel** outChannel,
|
||||
nsIURI* aUri,
|
||||
const nsAString& aData,
|
||||
const nsACString& aContentType,
|
||||
nsINode* aRequestingNode,
|
||||
nsIPrincipal* aRequestingPrincipal,
|
||||
nsINode* aLoadingNode,
|
||||
nsIPrincipal* aLoadingPrincipal,
|
||||
nsIPrincipal* aTriggeringPrincipal,
|
||||
nsSecurityFlags aSecurityFlags,
|
||||
nsContentPolicyType aContentPolicyType,
|
||||
@ -822,8 +905,8 @@ NS_NewInputStreamChannelInternal(nsIChannel** outChannel,
|
||||
stream,
|
||||
aContentType,
|
||||
NS_LITERAL_CSTRING("UTF-8"),
|
||||
aRequestingNode,
|
||||
aRequestingPrincipal,
|
||||
aLoadingNode,
|
||||
aLoadingPrincipal,
|
||||
aTriggeringPrincipal,
|
||||
aSecurityFlags,
|
||||
aContentPolicyType,
|
||||
@ -845,7 +928,7 @@ NS_NewInputStreamChannel(nsIChannel** outChannel,
|
||||
nsIURI* aUri,
|
||||
const nsAString& aData,
|
||||
const nsACString& aContentType,
|
||||
nsIPrincipal* aRequestingPrincipal,
|
||||
nsIPrincipal* aLoadingPrincipal,
|
||||
nsSecurityFlags aSecurityFlags,
|
||||
nsContentPolicyType aContentPolicyType,
|
||||
bool aIsSrcdocChannel = false,
|
||||
@ -855,8 +938,8 @@ NS_NewInputStreamChannel(nsIChannel** outChannel,
|
||||
aUri,
|
||||
aData,
|
||||
aContentType,
|
||||
nullptr, // aRequestingNode
|
||||
aRequestingPrincipal,
|
||||
nullptr, // aLoadingNode
|
||||
aLoadingPrincipal,
|
||||
nullptr, // aTriggeringPrincipal
|
||||
aSecurityFlags,
|
||||
aContentPolicyType,
|
||||
@ -969,8 +1052,8 @@ inline nsresult
|
||||
NS_NewStreamLoaderInternal(nsIStreamLoader** outStream,
|
||||
nsIURI* aUri,
|
||||
nsIStreamLoaderObserver* aObserver,
|
||||
nsINode* aRequestingNode,
|
||||
nsIPrincipal* aRequestingPrincipal,
|
||||
nsINode* aLoadingNode,
|
||||
nsIPrincipal* aLoadingPrincipal,
|
||||
nsSecurityFlags aSecurityFlags,
|
||||
nsContentPolicyType aContentPolicyType,
|
||||
nsISupports* aContext = nullptr,
|
||||
@ -982,12 +1065,11 @@ NS_NewStreamLoaderInternal(nsIStreamLoader** outStream,
|
||||
nsCOMPtr<nsIChannel> channel;
|
||||
nsresult rv = NS_NewChannelInternal(getter_AddRefs(channel),
|
||||
aUri,
|
||||
aRequestingNode,
|
||||
aRequestingPrincipal,
|
||||
aLoadingNode,
|
||||
aLoadingPrincipal,
|
||||
nullptr, // aTriggeringPrincipal
|
||||
aSecurityFlags,
|
||||
aContentPolicyType,
|
||||
nullptr, // aBaseURI
|
||||
aLoadGroup,
|
||||
aCallbacks,
|
||||
aLoadFlags);
|
||||
@ -1007,7 +1089,7 @@ inline nsresult /* NS_NewStreamLoaderNode */
|
||||
NS_NewStreamLoader(nsIStreamLoader** outStream,
|
||||
nsIURI* aUri,
|
||||
nsIStreamLoaderObserver* aObserver,
|
||||
nsINode* aRequestingNode,
|
||||
nsINode* aLoadingNode,
|
||||
nsSecurityFlags aSecurityFlags,
|
||||
nsContentPolicyType aContentPolicyType,
|
||||
nsISupports* aContext = nullptr,
|
||||
@ -1016,12 +1098,12 @@ NS_NewStreamLoader(nsIStreamLoader** outStream,
|
||||
nsLoadFlags aLoadFlags = nsIRequest::LOAD_NORMAL,
|
||||
nsIURI* aReferrer = nullptr)
|
||||
{
|
||||
NS_ASSERTION(aRequestingNode, "Can not create stream loader without a requesting Node!");
|
||||
NS_ASSERTION(aLoadingNode, "Can not create stream loader without a loading Node!");
|
||||
return NS_NewStreamLoaderInternal(outStream,
|
||||
aUri,
|
||||
aObserver,
|
||||
aRequestingNode,
|
||||
aRequestingNode->NodePrincipal(),
|
||||
aLoadingNode,
|
||||
aLoadingNode->NodePrincipal(),
|
||||
aSecurityFlags,
|
||||
aContentPolicyType,
|
||||
aContext,
|
||||
@ -1035,7 +1117,7 @@ inline nsresult /* NS_NewStreamLoaderPrincipal */
|
||||
NS_NewStreamLoader(nsIStreamLoader** outStream,
|
||||
nsIURI* aUri,
|
||||
nsIStreamLoaderObserver* aObserver,
|
||||
nsIPrincipal* aRequestingPrincipal,
|
||||
nsIPrincipal* aLoadingPrincipal,
|
||||
nsSecurityFlags aSecurityFlags,
|
||||
nsContentPolicyType aContentPolicyType,
|
||||
nsISupports* aContext = nullptr,
|
||||
@ -1047,8 +1129,8 @@ NS_NewStreamLoader(nsIStreamLoader** outStream,
|
||||
return NS_NewStreamLoaderInternal(outStream,
|
||||
aUri,
|
||||
aObserver,
|
||||
nullptr, // aRequestingNode
|
||||
aRequestingPrincipal,
|
||||
nullptr, // aLoadingNode
|
||||
aLoadingPrincipal,
|
||||
aSecurityFlags,
|
||||
aContentPolicyType,
|
||||
aContext,
|
||||
@ -1664,14 +1746,14 @@ NS_ReadInputStreamToString(nsIInputStream *aInputStream,
|
||||
inline nsresult
|
||||
NS_LoadPersistentPropertiesFromURI(nsIPersistentProperties** outResult,
|
||||
nsIURI* aUri,
|
||||
nsIPrincipal* aRequestingPrincipal,
|
||||
nsIPrincipal* aLoadingPrincipal,
|
||||
nsContentPolicyType aContentPolicyType,
|
||||
nsIIOService* aIoService = nullptr)
|
||||
{
|
||||
nsCOMPtr<nsIInputStream> in;
|
||||
nsresult rv = NS_OpenURI(getter_AddRefs(in),
|
||||
aUri,
|
||||
aRequestingPrincipal,
|
||||
aLoadingPrincipal,
|
||||
nsILoadInfo::SEC_NORMAL,
|
||||
aContentPolicyType,
|
||||
nullptr, // aLoadGroup
|
||||
@ -1694,7 +1776,7 @@ NS_LoadPersistentPropertiesFromURI(nsIPersistentProperties** outResult,
|
||||
inline nsresult
|
||||
NS_LoadPersistentPropertiesFromURISpec(nsIPersistentProperties** outResult,
|
||||
const nsACString& aSpec,
|
||||
nsIPrincipal* aRequestingPrincipal,
|
||||
nsIPrincipal* aLoadingPrincipal,
|
||||
nsContentPolicyType aContentPolicyType,
|
||||
const char* aCharset = nullptr,
|
||||
nsIURI* aBaseURI = nullptr,
|
||||
@ -1710,7 +1792,7 @@ NS_LoadPersistentPropertiesFromURISpec(nsIPersistentProperties** outResult,
|
||||
|
||||
return NS_LoadPersistentPropertiesFromURI(outResult,
|
||||
uri,
|
||||
aRequestingPrincipal,
|
||||
aLoadingPrincipal,
|
||||
aContentPolicyType,
|
||||
aIoService);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user