From 64ccce7c224292fed7c2e5766b0d012913aaa17d Mon Sep 17 00:00:00 2001 From: roytam1 Date: Sat, 19 Sep 2020 07:15:01 +0800 Subject: [PATCH] partly import changes from tenfourfox: - #622: M1660537 M1641487(modified) M1645492 (291688840) --- dom/base/nsFrameLoader.cpp | 4 ++++ security/manager/ssl/nsCertTree.cpp | 37 ++++------------------------- 2 files changed, 8 insertions(+), 33 deletions(-) diff --git a/dom/base/nsFrameLoader.cpp b/dom/base/nsFrameLoader.cpp index 942a841025..221ca2e865 100644 --- a/dom/base/nsFrameLoader.cpp +++ b/dom/base/nsFrameLoader.cpp @@ -2432,6 +2432,10 @@ nsFrameLoader::CheckForRecursiveLoad(nsIURI* aURI) nsresult nsFrameLoader::GetWindowDimensions(nsIntRect& aRect) { + if (!mOwnerContent) { + return NS_ERROR_FAILURE; + } + // Need to get outer window position here nsIDocument* doc = mOwnerContent->GetComposedDoc(); if (!doc) { diff --git a/security/manager/ssl/nsCertTree.cpp b/security/manager/ssl/nsCertTree.cpp index 1ad4e296b7..52d948dbb6 100644 --- a/security/manager/ssl/nsCertTree.cpp +++ b/security/manager/ssl/nsCertTree.cpp @@ -465,17 +465,9 @@ nsCertTree::GetCertsByTypeFromCertList(CERTCertList *aCertList, // overrides, we are storing certs without any trust flags associated. // So we must check whether the cert really belongs to the // server, email or unknown tab. We will lookup the cert in the override - // list to come to the decision. Unfortunately, the lookup in the - // override list is quite expensive. Therefore we are using this - // lengthy if/else statement to minimize - // the number of override-list-lookups. - - if (aWantedType == nsIX509Cert::SERVER_CERT - && thisCertType == nsIX509Cert::UNKNOWN_CERT) { - // This unknown cert was stored without trust - // Are there host:port based overrides stored? - // If yes, display them. - addOverrides = true; + // list to come to the decision. + if (aWantedType == nsIX509Cert::SERVER_CERT) { + wantThisCertIfHaveOverrides = true; } else if (aWantedType == nsIX509Cert::UNKNOWN_CERT @@ -486,27 +478,6 @@ nsCertTree::GetCertsByTypeFromCertList(CERTCertList *aCertList, wantThisCertIfNoOverrides = true; } else - if (aWantedType == nsIX509Cert::SERVER_CERT - && thisCertType == nsIX509Cert::SERVER_CERT) { - // This server cert is explicitly marked as a web site peer, - // with or without trust, but editable, so show it - wantThisCert = true; - // Are there host:port based overrides stored? - // If yes, display them. - addOverrides = true; - } - else - if (aWantedType == nsIX509Cert::SERVER_CERT - && thisCertType == nsIX509Cert::EMAIL_CERT) { - // This cert might have been categorized as an email cert - // because it carries an email address. But is it really one? - // Our cert categorization is uncertain when it comes to - // distinguish between email certs and web site certs. - // So, let's see if we have an override for that cert - // and if there is, conclude it's really a web site cert. - addOverrides = true; - } - else if (aWantedType == nsIX509Cert::EMAIL_CERT && thisCertType == nsIX509Cert::EMAIL_CERT) { // This cert might have been categorized as an email cert @@ -544,7 +515,7 @@ nsCertTree::GetCertsByTypeFromCertList(CERTCertList *aCertList, if (wantThisCertIfHaveOverrides) { if (NS_SUCCEEDED(rv) && ocount > 0) { // there are overrides for this cert - wantThisCert = true; + addOverrides = true; } } }