Bug 1248452: Rewrite NS_IsHSTSUpgradeRedirect to use HttpBaseChannel::GetSecureUpgradedURI. r=jduell

This commit is contained in:
Daniel Holbert 2016-02-17 19:03:41 -08:00
Родитель 2cdfef61a2
Коммит aabf7f299c
1 изменённых файлов: 4 добавлений и 20 удалений

Просмотреть файл

@ -63,6 +63,7 @@
#include "plstr.h"
#include "nsINestedURI.h"
#include "mozilla/dom/nsCSPUtils.h"
#include "mozilla/net/HttpBaseChannel.h"
#include "nsIScriptError.h"
#include "nsISiteSecurityService.h"
#include "nsHttpHandler.h"
@ -1919,30 +1920,13 @@ NS_IsHSTSUpgradeRedirect(nsIChannel *aOldChannel,
return false;
}
bool isHttps;
if (NS_FAILED(newURI->SchemeIs("https", &isHttps)) || !isHttps) {
return false;
}
nsCOMPtr<nsIURI> upgradedURI;
if (NS_FAILED(oldURI->Clone(getter_AddRefs(upgradedURI)))) {
nsresult rv =
HttpBaseChannel::GetSecureUpgradedURI(oldURI, getter_AddRefs(upgradedURI));
if (NS_FAILED(rv)) {
return false;
}
if (NS_FAILED(upgradedURI->SetScheme(NS_LITERAL_CSTRING("https")))) {
return false;
}
int32_t oldPort = -1;
if (NS_FAILED(oldURI->GetPort(&oldPort))) {
return false;
}
if (oldPort == 80 || oldPort == -1) {
upgradedURI->SetPort(-1);
} else {
upgradedURI->SetPort(oldPort);
}
bool res;
return NS_SUCCEEDED(upgradedURI->Equals(newURI, &res)) && res;
}