mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 666516. Stop casting things gotten by contract to concrete classes. r=kaie
This commit is contained in:
parent
20a7be87b7
commit
c98f58f505
@ -65,6 +65,7 @@ extern PRLogModuleInfo* gPIPNSSLog;
|
||||
NSSCleanupAutoPtrClass(CERTCertificate, CERT_DestroyCertificate)
|
||||
|
||||
static NS_DEFINE_CID(kNSSComponentCID, NS_NSSCOMPONENT_CID);
|
||||
static NS_DEFINE_CID(kCertOverrideCID, NS_CERTOVERRIDE_CID);
|
||||
|
||||
// treeArrayElStr
|
||||
//
|
||||
@ -198,6 +199,11 @@ nsCertTree::nsCertTree() : mTreeArray(NULL)
|
||||
mCompareCache.ops = nsnull;
|
||||
mNSSComponent = do_GetService(kNSSComponentCID);
|
||||
mOverrideService = do_GetService("@mozilla.org/security/certoverride;1");
|
||||
// Might be a different service if someone is overriding the contract
|
||||
nsCOMPtr<nsICertOverrideService> origCertOverride =
|
||||
do_GetService(kCertOverrideCID);
|
||||
mOriginalOverrideService =
|
||||
static_cast<nsCertOverrideService*>(origCertOverride.get());
|
||||
mCellText = nsnull;
|
||||
}
|
||||
|
||||
@ -485,9 +491,7 @@ nsCertTree::GetCertsByTypeFromCertList(CERTCertList *aCertList,
|
||||
if (!aCertList)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
nsCertOverrideService *cos =
|
||||
reinterpret_cast<nsCertOverrideService*>(mOverrideService.get());
|
||||
if (!cos)
|
||||
if (!mOriginalOverrideService)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
nsTHashtable<nsCStringHashKey> allHostPortOverrideKeys;
|
||||
@ -495,9 +499,10 @@ nsCertTree::GetCertsByTypeFromCertList(CERTCertList *aCertList,
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
if (aWantedType == nsIX509Cert::SERVER_CERT) {
|
||||
cos->EnumerateCertOverrides(nsnull,
|
||||
CollectAllHostPortOverridesCallback,
|
||||
&allHostPortOverrideKeys);
|
||||
mOriginalOverrideService->
|
||||
EnumerateCertOverrides(nsnull,
|
||||
CollectAllHostPortOverridesCallback,
|
||||
&allHostPortOverrideKeys);
|
||||
}
|
||||
|
||||
CERTCertListNode *node;
|
||||
@ -637,7 +642,7 @@ nsCertTree::GetCertsByTypeFromCertList(CERTCertList *aCertList,
|
||||
++count;
|
||||
++InsertPosition;
|
||||
}
|
||||
if (addOverrides && cos) {
|
||||
if (addOverrides) {
|
||||
nsCertAndArrayAndPositionAndCounterAndTracker cap;
|
||||
cap.certai = certai;
|
||||
cap.array = &mDispInfo;
|
||||
@ -645,7 +650,8 @@ nsCertTree::GetCertsByTypeFromCertList(CERTCertList *aCertList,
|
||||
cap.counter = 0;
|
||||
cap.tracker = &allHostPortOverrideKeys;
|
||||
|
||||
cos->EnumerateCertOverrides(pipCert, MatchingCertOverridesCallback, &cap);
|
||||
mOriginalOverrideService->
|
||||
EnumerateCertOverrides(pipCert, MatchingCertOverridesCallback, &cap);
|
||||
count += cap.counter;
|
||||
}
|
||||
}
|
||||
@ -657,7 +663,8 @@ nsCertTree::GetCertsByTypeFromCertList(CERTCertList *aCertList,
|
||||
cap.position = 0;
|
||||
cap.counter = 0;
|
||||
cap.tracker = &allHostPortOverrideKeys;
|
||||
cos->EnumerateCertOverrides(nsnull, AddRemaningHostPortOverridesCallback, &cap);
|
||||
mOriginalOverrideService->
|
||||
EnumerateCertOverrides(nsnull, AddRemaningHostPortOverridesCallback, &cap);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
|
@ -155,6 +155,7 @@ private:
|
||||
PLDHashTable mCompareCache;
|
||||
nsCOMPtr<nsINSSComponent> mNSSComponent;
|
||||
nsCOMPtr<nsICertOverrideService> mOverrideService;
|
||||
nsRefPtr<nsCertOverrideService> mOriginalOverrideService;
|
||||
|
||||
treeArrayEl *GetThreadDescAtIndex(PRInt32 _index);
|
||||
already_AddRefed<nsIX509Cert>
|
||||
|
Loading…
Reference in New Issue
Block a user