Bug 1453559 - Don't use channel URI for loading modules from resource: scheme r=baku
This commit is contained in:
@@ -3054,6 +3054,22 @@ ScriptLoader::NumberOfProcessors()
|
||||
return mNumberOfProcessors;
|
||||
}
|
||||
|
||||
static bool
|
||||
IsInternalURIScheme(nsIURI* uri)
|
||||
{
|
||||
bool isWebExt;
|
||||
if (NS_SUCCEEDED(uri->SchemeIs("moz-extension", &isWebExt)) && isWebExt) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool isResource;
|
||||
if (NS_SUCCEEDED(uri->SchemeIs("resource", &isResource)) && isResource) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
nsresult
|
||||
ScriptLoader::PrepareLoadedRequest(ScriptLoadRequest* aRequest,
|
||||
nsIIncrementalStreamLoader* aLoader,
|
||||
@@ -3142,10 +3158,9 @@ ScriptLoader::PrepareLoadedRequest(ScriptLoadRequest* aRequest,
|
||||
rv = channel->GetOriginalURI(getter_AddRefs(uri));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// Fixup moz-extension URIs, because the channel URI points to file:,
|
||||
// which won't be allowed to load.
|
||||
bool isWebExt = false;
|
||||
if (uri && NS_SUCCEEDED(uri->SchemeIs("moz-extension", &isWebExt)) && isWebExt) {
|
||||
// Fixup moz-extension: and resource: URIs, because the channel URI will
|
||||
// point to file:, which won't be allowed to load.
|
||||
if (uri && IsInternalURIScheme(uri)) {
|
||||
request->mBaseURL = uri;
|
||||
} else {
|
||||
channel->GetURI(getter_AddRefs(request->mBaseURL));
|
||||
|
||||
Reference in New Issue
Block a user