Skip to content

Commit b847043

Browse files
author
Nicolas Chaim Echeverria
committed
Bug 726125: Certificates of signed extensions were getting validated on each startup. r=taras, sr=bzbarsky
1 parent de80406 commit b847043

File tree

4 files changed

+5
-102
lines changed

4 files changed

+5
-102
lines changed

js/xpconnect/tests/mochitest/Makefile.in

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,7 @@ MOCHITEST_CHROME_FILES = \
8383

8484
ifneq ($(OS_TARGET),Android)
8585
ifndef MOZ_PLATFORM_MAEMO
86-
MOCHITEST_FILES += test_bug657267.html \
87-
bug657267.jar \
88-
test_bug564330.html \
86+
MOCHITEST_FILES += test_bug564330.html \
8987
test_bug618017.html
9088
endif
9189
endif
-2.17 KB
Binary file not shown.

js/xpconnect/tests/mochitest/test_bug657267.html

Lines changed: 0 additions & 44 deletions
This file was deleted.

modules/libjar/nsJARChannel.cpp

Lines changed: 4 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -491,62 +491,11 @@ nsJARChannel::GetURI(nsIURI **aURI)
491491
}
492492

493493
NS_IMETHODIMP
494-
nsJARChannel::GetOwner(nsISupports **result)
494+
nsJARChannel::GetOwner(nsISupports **aOwner)
495495
{
496-
nsresult rv;
497-
498-
if (mOwner) {
499-
NS_ADDREF(*result = mOwner);
500-
return NS_OK;
501-
}
502-
503-
if (!mJarInput) {
504-
*result = nullptr;
505-
return NS_OK;
506-
}
507-
508-
//-- Verify signature, if one is present, and set owner accordingly
509-
nsCOMPtr<nsIZipReader> jarReader;
510-
mJarInput->GetJarReader(getter_AddRefs(jarReader));
511-
if (!jarReader)
512-
return NS_ERROR_NOT_INITIALIZED;
513-
514-
nsCOMPtr<nsIPrincipal> cert;
515-
rv = jarReader->GetCertificatePrincipal(mJarEntry, getter_AddRefs(cert));
516-
if (NS_FAILED(rv)) return rv;
517-
518-
if (cert) {
519-
nsCAutoString certFingerprint;
520-
rv = cert->GetFingerprint(certFingerprint);
521-
if (NS_FAILED(rv)) return rv;
522-
523-
nsCAutoString subjectName;
524-
rv = cert->GetSubjectName(subjectName);
525-
if (NS_FAILED(rv)) return rv;
526-
527-
nsCAutoString prettyName;
528-
rv = cert->GetPrettyName(prettyName);
529-
if (NS_FAILED(rv)) return rv;
530-
531-
nsCOMPtr<nsISupports> certificate;
532-
rv = cert->GetCertificate(getter_AddRefs(certificate));
533-
if (NS_FAILED(rv)) return rv;
534-
535-
nsCOMPtr<nsIScriptSecurityManager> secMan =
536-
do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv);
537-
if (NS_FAILED(rv)) return rv;
538-
539-
rv = secMan->GetCertificatePrincipal(certFingerprint, subjectName,
540-
prettyName, certificate,
541-
mJarBaseURI,
542-
getter_AddRefs(cert));
543-
if (NS_FAILED(rv)) return rv;
544-
545-
mOwner = do_QueryInterface(cert, &rv);
546-
if (NS_FAILED(rv)) return rv;
547-
548-
NS_ADDREF(*result = mOwner);
549-
}
496+
// JAR signatures are not processed to avoid main-thread network I/O (bug 726125)
497+
*aOwner = mOwner;
498+
NS_IF_ADDREF(*aOwner);
550499
return NS_OK;
551500
}
552501

0 commit comments

Comments
 (0)