Bug 1564221 - Add a contract ID for nsITransportSecurityInfo r=keeler

There is now a contract ID for `nsITransportSecurityInfo`, allowing
`mozilla::psm::TransportSecurityInfo` instances to be created from JS. Tests
using a JS-implemented `nsITransportSecurityInfo` that were not modifying,
e.g., the `serverCert` attribute have been updated to create a
`mozilla::psm::TransportSecurityInfo` via the contract.

Differential Revision: https://phabricator.services.mozilla.com/D40346

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Barret Rennie 2019-08-20 21:38:59 +00:00
parent a9f1a2a5c2
commit ac3d0eba23
11 changed files with 31 additions and 27 deletions

View File

@ -139,7 +139,7 @@ Classes = [
},
{
'cid': '{16786594-0296-4471-8096-8f84497ca428}',
'contract_ids': [],
'contract_ids': ['@mozilla.org/security/transportsecurityinfo;1'],
'type': 'mozilla::psm::TransportSecurityInfo',
'legacy_constructor':
'mozilla::psm::NSSConstructor<mozilla::psm::TransportSecurityInfo>',

View File

@ -3,22 +3,6 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
var FakeTransportSecurityInfo = function() {};
FakeTransportSecurityInfo.prototype = {
serverCert: null,
cipherName: null,
keyLength: 2048,
isDomainMismatch: false,
isNotValidAtThisTime: false,
isUntrusted: false,
isExtendedValidation: false,
getInterface(aIID) {
return this.QueryInterface(aIID);
},
QueryInterface: ChromeUtils.generateQI(["nsITransportSecurityInfo"]),
};
function whenNewWindowLoaded(aOptions, aCallback) {
let win = OpenBrowserWindow(aOptions);
win.addEventListener(
@ -49,7 +33,9 @@ function test() {
function doTest(aIsPrivateMode, aWindow, aCallback) {
BrowserTestUtils.browserLoaded(aWindow.gBrowser.selectedBrowser).then(
() => {
let secInfo = new FakeTransportSecurityInfo();
let secInfo = Cc[
"@mozilla.org/security/transportsecurityinfo;1"
].createInstance(Ci.nsITransportSecurityInfo);
uri = aWindow.Services.io.newURI("https://localhost/img.png");
gSSService.processHeader(
Ci.nsISiteSecurityService.HEADER_HSTS,

View File

@ -47,7 +47,9 @@ function run_test() {
Ci.nsISiteSecurityService
);
let uri = Services.io.newURI("http://localhost");
let secInfo = new FakeTransportSecurityInfo();
let secInfo = Cc[
"@mozilla.org/security/transportsecurityinfo;1"
].createInstance(Ci.nsITransportSecurityInfo);
SSService.processHeader(
Ci.nsISiteSecurityService.HEADER_HSTS,
uri,

View File

@ -58,7 +58,9 @@ function do_state_read(aSubject, aTopic, aData) {
0
)
);
let secInfo = new FakeTransportSecurityInfo();
let secInfo = Cc[
"@mozilla.org/security/transportsecurityinfo;1"
].createInstance(Ci.nsITransportSecurityInfo);
for (let i = 0; i < 2000; i++) {
let uri = Services.io.newURI("http://bad" + i + ".example.com");
gSSService.processHeader(

View File

@ -26,7 +26,9 @@ add_task(async function run_test() {
let SSService = Cc["@mozilla.org/ssservice;1"].getService(
Ci.nsISiteSecurityService
);
let secInfo = new FakeTransportSecurityInfo();
let secInfo = Cc[
"@mozilla.org/security/transportsecurityinfo;1"
].createInstance(Ci.nsITransportSecurityInfo);
let header = "max-age=50000";
SSService.processHeader(
Ci.nsISiteSecurityService.HEADER_HSTS,

View File

@ -121,7 +121,9 @@ function run_test() {
let maxAge = "max-age=" + i * 1000;
// alternate setting includeSubdomains
let includeSubdomains = i % 2 == 0 ? "; includeSubdomains" : "";
let secInfo = new FakeTransportSecurityInfo();
let secInfo = Cc[
"@mozilla.org/security/transportsecurityinfo;1"
].createInstance(Ci.nsITransportSecurityInfo);
SSService.processHeader(
Ci.nsISiteSecurityService.HEADER_HSTS,
uris[uriIndex],

View File

@ -16,7 +16,9 @@ function run_test() {
// These cases are only relevant as long as bug 1118522 hasn't been fixed.
ok(!SSService.isSecureURI(Ci.nsISiteSecurityService.HEADER_HSTS, uri2, 0));
let secInfo = new FakeTransportSecurityInfo();
let secInfo = Cc[
"@mozilla.org/security/transportsecurityinfo;1"
].createInstance(Ci.nsITransportSecurityInfo);
SSService.processHeader(
Ci.nsISiteSecurityService.HEADER_HSTS,
uri,

View File

@ -1,7 +1,9 @@
"use strict";
function check_ip(s, v, ip) {
let secInfo = new FakeTransportSecurityInfo();
let secInfo = Cc[
"@mozilla.org/security/transportsecurityinfo;1"
].createInstance(Ci.nsITransportSecurityInfo);
let str = "https://";
if (v == 6) {

View File

@ -9,7 +9,9 @@
// STS parser tests
let sss = Cc["@mozilla.org/ssservice;1"].getService(Ci.nsISiteSecurityService);
let secInfo = new FakeTransportSecurityInfo();
let secInfo = Cc[
"@mozilla.org/security/transportsecurityinfo;1"
].createInstance(Ci.nsITransportSecurityInfo);
function testSuccess(header, expectedMaxAge, expectedIncludeSubdomains) {
let dummyUri = Services.io.newURI("https://foo.com/bar.html");

View File

@ -16,7 +16,9 @@ function run_test() {
let SSService = Cc["@mozilla.org/ssservice;1"].getService(
Ci.nsISiteSecurityService
);
let secInfo = new FakeTransportSecurityInfo();
let secInfo = Cc[
"@mozilla.org/security/transportsecurityinfo;1"
].createInstance(Ci.nsITransportSecurityInfo);
let unlikelyHost = "highlyunlikely.example.com";
let uri = Services.io.newURI("https://" + unlikelyHost);
let subDomainUri = Services.io.newURI("https://subdomain." + unlikelyHost);

View File

@ -14,7 +14,9 @@ Observer.prototype = {
};
var gObserver = new Observer();
var secInfo = new FakeTransportSecurityInfo();
var secInfo = Cc[
"@mozilla.org/security/transportsecurityinfo;1"
].createInstance(Ci.nsITransportSecurityInfo);
function cleanup() {
Services.obs.removeObserver(gObserver, "last-pb-context-exited");