Bug 773373 part 3: Reject principals that doesn't have URIs. r=sicking

This commit is contained in:
Jan Varga 2012-09-25 16:06:28 -07:00
parent b6cd49f3fe
commit ec7b4b8c75
2 changed files with 18 additions and 2 deletions

View File

@ -539,8 +539,8 @@ PdfStreamConverter.prototype = {
.getService(Ci.nsIScriptSecurityManager);
var uri = ioService.newURI(PDF_VIEWER_WEB_PAGE, null, null);
// FF16 and below had getCodebasePrincipal (bug 774585)
var resourcePrincipal = 'getSimpleCodebasePrincipal' in securityManager ?
securityManager.getSimpleCodebasePrincipal(uri) :
var resourcePrincipal = 'getNoAppCodebasePrincipal' in securityManager ?
securityManager.getNoAppCodebasePrincipal(uri) :
securityManager.getCodebasePrincipal(uri);
channel.owner = resourcePrincipal;
}

View File

@ -1063,6 +1063,14 @@ nsresult
nsDOMStorage::InitAsSessionStorage(nsIPrincipal *aPrincipal, const nsSubstring &aDocumentURI,
bool aPrivate)
{
nsCOMPtr<nsIURI> uri;
nsresult rv = aPrincipal->GetURI(getter_AddRefs(uri));
NS_ENSURE_SUCCESS(rv, rv);
if (!uri) {
return NS_ERROR_NOT_AVAILABLE;
}
mDocumentURI = aDocumentURI;
mPrincipal = aPrincipal;
@ -1076,6 +1084,14 @@ nsresult
nsDOMStorage::InitAsLocalStorage(nsIPrincipal *aPrincipal, const nsSubstring &aDocumentURI,
bool aPrivate)
{
nsCOMPtr<nsIURI> uri;
nsresult rv = aPrincipal->GetURI(getter_AddRefs(uri));
NS_ENSURE_SUCCESS(rv, rv);
if (!uri) {
return NS_ERROR_NOT_AVAILABLE;
}
mDocumentURI = aDocumentURI;
mPrincipal = aPrincipal;