diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js index 2a1c6b571fb6..ace53c0c565f 100644 --- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js @@ -1698,6 +1698,14 @@ pref("extensions.formautofill.creditCards.available", true); pref("extensions.formautofill.creditCards.available", false); #endif pref("extensions.formautofill.creditCards.enabled", true); +// Pref for shield/heartbeat to recognize users who have used Credit Card +// Autofill. The valid values can be: +// 0: none +// 1: submitted a manually-filled credit card form (but didn't see the doorhanger +// because of a duplicate profile in the storage) +// 2: saw the doorhanger +// 3: submitted an autofill'ed credit card form +pref("extensions.formautofill.creditCards.used", 0); pref("extensions.formautofill.firstTimeUse", true); pref("extensions.formautofill.heuristics.enabled", true); pref("extensions.formautofill.loglevel", "Warn"); diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/nsModule.cpp index 0810249f4b2a..8860b6f2eb87 100644 --- a/browser/components/build/nsModule.cpp +++ b/browser/components/build/nsModule.cpp @@ -105,7 +105,6 @@ static const mozilla::Module::ContractIDEntry kBrowserContracts[] = { { NS_ABOUT_MODULE_CONTRACTID_PREFIX "newtab", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, { NS_ABOUT_MODULE_CONTRACTID_PREFIX "preferences", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, { NS_ABOUT_MODULE_CONTRACTID_PREFIX "downloads", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, - { NS_ABOUT_MODULE_CONTRACTID_PREFIX "accounts", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, #ifdef MOZ_SERVICES_HEALTHREPORT { NS_ABOUT_MODULE_CONTRACTID_PREFIX "healthreport", &kNS_BROWSER_ABOUT_REDIRECTOR_CID }, #endif diff --git a/browser/extensions/formautofill/FormAutofillDoorhanger.jsm b/browser/extensions/formautofill/FormAutofillDoorhanger.jsm index 07cefdcf2f1c..ccdc85e5bc50 100644 --- a/browser/extensions/formautofill/FormAutofillDoorhanger.jsm +++ b/browser/extensions/formautofill/FormAutofillDoorhanger.jsm @@ -71,7 +71,7 @@ const CONTENT = { hideClose: true, }, }, - update: { + updateAddress: { notificationId: "autofill-address", message: GetStringFromName("updateAddressMessage"), linkMessage: GetStringFromName(autofillOptsKey), @@ -96,7 +96,7 @@ const CONTENT = { hideClose: true, }, }, - creditCard: { + addCreditCard: { notificationId: "autofill-credit-card", message: formatStringFromName("saveCreditCardMessage", [brandShortName], 1), linkMessage: GetStringFromName(autofillSecurityOptionsKey), @@ -149,6 +149,31 @@ const CONTENT = { }, }, }, + updateCreditCard: { + notificationId: "autofill-credit-card", + message: GetStringFromName("updateCreditCardMessage"), + linkMessage: GetStringFromName(autofillOptsKey), + anchor: { + id: "autofill-credit-card-notification-icon", + URL: "chrome://formautofill/content/formfill-anchor.svg", + tooltiptext: GetStringFromName("openAutofillMessagePanel"), + }, + mainAction: { + label: GetStringFromName("updateCreditCardLabel"), + accessKey: "U", + callbackState: "update", + }, + secondaryActions: [{ + label: GetStringFromName("createCreditCardLabel"), + accessKey: "C", + callbackState: "create", + }], + options: { + persistWhileVisible: true, + popupIconURL: "chrome://formautofill/content/icon-credit-card.svg", + hideClose: true, + }, + }, }; let FormAutofillDoorhanger = { diff --git a/browser/extensions/formautofill/FormAutofillParent.jsm b/browser/extensions/formautofill/FormAutofillParent.jsm index f671b53a2f15..8b2ee9fef2c3 100644 --- a/browser/extensions/formautofill/FormAutofillParent.jsm +++ b/browser/extensions/formautofill/FormAutofillParent.jsm @@ -375,7 +375,7 @@ FormAutofillParent.prototype = { if (!this.profileStorage.addresses.mergeIfPossible(address.guid, address.record, true)) { this._recordFormFillingTime("address", "autofill-update", timeStartedFillingMS); - FormAutofillDoorhanger.show(target, "update").then((state) => { + FormAutofillDoorhanger.show(target, "updateAddress").then((state) => { let changedGUIDs = this.profileStorage.addresses.mergeToStorage(address.record, true); switch (state) { case "create": @@ -411,8 +411,8 @@ FormAutofillParent.prototype = { this._recordFormFillingTime("address", "manual", timeStartedFillingMS); // Show first time use doorhanger - if (Services.prefs.getBoolPref("extensions.formautofill.firstTimeUse")) { - Services.prefs.setBoolPref("extensions.formautofill.firstTimeUse", false); + if (FormAutofillUtils.isAutofillAddressesFirstTimeUse) { + Services.prefs.setBoolPref(FormAutofillUtils.ADDRESSES_FIRST_TIME_USE_PREF, false); FormAutofillDoorhanger.show(target, "firstTimeUse").then((state) => { if (state !== "open-pref") { return; @@ -429,10 +429,21 @@ FormAutofillParent.prototype = { }, async _onCreditCardSubmit(creditCard, target, timeStartedFillingMS) { + // Updates the used status for shield/heartbeat to recognize users who have + // used Credit Card Autofill. + let setUsedStatus = status => { + if (FormAutofillUtils.AutofillCreditCardsUsedStatus < status) { + Services.prefs.setIntPref(FormAutofillUtils.CREDITCARDS_USED_STATUS_PREF, status); + } + }; + // We'll show the credit card doorhanger if: // - User applys autofill and changed // - User fills form manually and the filling data is not duplicated to storage if (creditCard.guid) { + // Indicate that the user has used Credit Card Autofill to fill in a form. + setUsedStatus(3); + let originalCCData = this.profileStorage.creditCards.get(creditCard.guid); let unchanged = Object.keys(creditCard.record).every(field => { if (creditCard.record[field] === "" && !originalCCData[field]) { @@ -457,6 +468,11 @@ FormAutofillParent.prototype = { Services.telemetry.scalarAdd("formautofill.creditCards.fill_type_autofill_modified", 1); this._recordFormFillingTime("creditCard", "autofill-update", timeStartedFillingMS); } else { + // Indicate that the user neither sees the doorhanger nor uses Autofill + // but somehow has a duplicate record in the storage. Will be reset to 2 + // if the doorhanger actually shows below. + setUsedStatus(1); + // Add the probe to record credit card manual filling. Services.telemetry.scalarAdd("formautofill.creditCards.fill_type_manual", 1); this._recordFormFillingTime("creditCard", "manual", timeStartedFillingMS); @@ -469,7 +485,10 @@ FormAutofillParent.prototype = { return; } - let state = await FormAutofillDoorhanger.show(target, "creditCard"); + // Indicate that the user has seen the doorhanger. + setUsedStatus(2); + + let state = await FormAutofillDoorhanger.show(target, creditCard.guid ? "updateCreditCard" : "addCreditCard"); if (state == "cancel") { return; } @@ -487,10 +506,13 @@ FormAutofillParent.prototype = { } let changedGUIDs = []; - // TODO: Autofill(with guid) case should show update doorhanger with update/create new. - // It'll be implemented in bug 1403881 and only avoid mergering for now. if (creditCard.guid) { - changedGUIDs.push(this.profileStorage.creditCards.add(creditCard.record)); + if (state == "update") { + this.profileStorage.creditCards.update(creditCard.guid, creditCard.record, true); + changedGUIDs.push(creditCard.guid); + } else if ("create") { + changedGUIDs.push(this.profileStorage.creditCards.add(creditCard.record)); + } } else { changedGUIDs.push(...this.profileStorage.creditCards.mergeToStorage(creditCard.record)); if (!changedGUIDs.length) { diff --git a/browser/extensions/formautofill/FormAutofillUtils.jsm b/browser/extensions/formautofill/FormAutofillUtils.jsm index 721e35cbfea8..077c4f134330 100644 --- a/browser/extensions/formautofill/FormAutofillUtils.jsm +++ b/browser/extensions/formautofill/FormAutofillUtils.jsm @@ -18,7 +18,9 @@ const ALTERNATIVE_COUNTRY_NAMES = { const ADDRESSES_COLLECTION_NAME = "addresses"; const CREDITCARDS_COLLECTION_NAME = "creditCards"; +const ADDRESSES_FIRST_TIME_USE_PREF = "extensions.formautofill.firstTimeUse"; const ENABLED_AUTOFILL_ADDRESSES_PREF = "extensions.formautofill.addresses.enabled"; +const CREDITCARDS_USED_STATUS_PREF = "extensions.formautofill.creditCards.used"; const AUTOFILL_CREDITCARDS_AVAILABLE_PREF = "extensions.formautofill.creditCards.available"; const ENABLED_AUTOFILL_CREDITCARDS_PREF = "extensions.formautofill.creditCards.enabled"; const MANAGE_ADDRESSES_KEYWORDS = ["manageAddressesTitle", "addNewAddressTitle"]; @@ -45,6 +47,8 @@ this.FormAutofillUtils = { CREDITCARDS_COLLECTION_NAME, ENABLED_AUTOFILL_ADDRESSES_PREF, ENABLED_AUTOFILL_CREDITCARDS_PREF, + ADDRESSES_FIRST_TIME_USE_PREF, + CREDITCARDS_USED_STATUS_PREF, MANAGE_ADDRESSES_KEYWORDS, EDIT_ADDRESS_KEYWORDS, MANAGE_CREDITCARDS_KEYWORDS, @@ -608,3 +612,7 @@ XPCOMUtils.defineLazyPreferenceGetter(this.FormAutofillUtils, "isAutofillCreditCardsAvailable", AUTOFILL_CREDITCARDS_AVAILABLE_PREF); XPCOMUtils.defineLazyPreferenceGetter(this.FormAutofillUtils, "_isAutofillCreditCardsEnabled", ENABLED_AUTOFILL_CREDITCARDS_PREF); +XPCOMUtils.defineLazyPreferenceGetter(this.FormAutofillUtils, + "isAutofillAddressesFirstTimeUse", ADDRESSES_FIRST_TIME_USE_PREF); +XPCOMUtils.defineLazyPreferenceGetter(this.FormAutofillUtils, + "AutofillCreditCardsUsedStatus", CREDITCARDS_USED_STATUS_PREF); diff --git a/browser/extensions/formautofill/locales/en-US/formautofill.properties b/browser/extensions/formautofill/locales/en-US/formautofill.properties index 48cba28d5c31..5871b7df13c1 100644 --- a/browser/extensions/formautofill/locales/en-US/formautofill.properties +++ b/browser/extensions/formautofill/locales/en-US/formautofill.properties @@ -35,6 +35,11 @@ saveCreditCardMessage = Would you like %S to save this credit card? (Security co saveCreditCardLabel = Save Credit Card cancelCreditCardLabel = Don’t Save neverSaveCreditCardLabel = Never Save Credit Cards +# LOCALIZATION NOTE (updateCreditCardMessage, createCreditCardLabel, updateCreditCardLabel): Used on the doorhanger +# when an credit card change is detected. +updateCreditCardMessage = Would you like to update your credit card with this new information? +createCreditCardLabel = Create New Credit Card +updateCreditCardLabel = Update Credit Card # LOCALIZATION NOTE (openAutofillMessagePanel): Tooltip label for Form Autofill doorhanger icon on address bar. openAutofillMessagePanel = Open Form Autofill message panel diff --git a/browser/extensions/formautofill/test/browser/browser_autocomplete_footer.js b/browser/extensions/formautofill/test/browser/browser_autocomplete_footer.js index 0a858839adf1..9822d52ee1c6 100644 --- a/browser/extensions/formautofill/test/browser/browser_autocomplete_footer.js +++ b/browser/extensions/formautofill/test/browser/browser_autocomplete_footer.js @@ -20,27 +20,6 @@ add_task(async function setup_storage() { await saveAddress(TEST_ADDRESS_5); }); -add_task(async function test_click_on_footer() { - await BrowserTestUtils.withNewTab({gBrowser, url: URL}, async function(browser) { - const {autoCompletePopup: {richlistbox: itemsBox}} = browser; - - await openPopupOn(browser, "#organization"); - // Click on the footer - const optionButton = itemsBox.querySelector(".autocomplete-richlistitem:last-child")._optionButton; - const prefTabPromise = BrowserTestUtils.waitForNewTab(gBrowser, PRIVACY_PREF_URL); - // Wait for dropdown animation finished to continue mouse synthesizing. - await sleep(1000); - await EventUtils.synthesizeMouseAtCenter(optionButton, {}); - info(`expecting tab: about:preferences#privacy opened`); - const prefTab = await prefTabPromise; - info(`expecting tab: about:preferences#privacy removed`); - await BrowserTestUtils.removeTab(prefTab); - ok(true, "Tab: preferences#privacy was successfully opened by clicking on the footer"); - - await closePopup(browser); - }); -}); - add_task(async function test_press_enter_on_footer() { await BrowserTestUtils.withNewTab({gBrowser, url: URL}, async function(browser) { const {autoCompletePopup: {richlistbox: itemsBox}} = browser; @@ -63,6 +42,27 @@ add_task(async function test_press_enter_on_footer() { }); }); +add_task(async function test_click_on_footer() { + await BrowserTestUtils.withNewTab({gBrowser, url: URL}, async function(browser) { + const {autoCompletePopup: {richlistbox: itemsBox}} = browser; + + await openPopupOn(browser, "#organization"); + // Click on the footer + const optionButton = itemsBox.querySelector(".autocomplete-richlistitem:last-child")._optionButton; + const prefTabPromise = BrowserTestUtils.waitForNewTab(gBrowser, PRIVACY_PREF_URL); + // Wait for dropdown animation finished to continue mouse synthesizing. + await sleep(3000); + await EventUtils.synthesizeMouseAtCenter(optionButton, {}); + info(`expecting tab: about:preferences#privacy opened`); + const prefTab = await prefTabPromise; + info(`expecting tab: about:preferences#privacy removed`); + await BrowserTestUtils.removeTab(prefTab); + ok(true, "Tab: preferences#privacy was successfully opened by clicking on the footer"); + + await closePopup(browser); + }); +}); + add_task(async function test_phishing_warning_single_category() { await BrowserTestUtils.withNewTab({gBrowser, url: URL}, async function(browser) { const {autoCompletePopup: {richlistbox: itemsBox}} = browser; diff --git a/browser/extensions/formautofill/test/browser/browser_creditCard_doorhanger.js b/browser/extensions/formautofill/test/browser/browser_creditCard_doorhanger.js index 080ed568feec..5b7089fd26f8 100644 --- a/browser/extensions/formautofill/test/browser/browser_creditCard_doorhanger.js +++ b/browser/extensions/formautofill/test/browser/browser_creditCard_doorhanger.js @@ -2,6 +2,11 @@ "use strict"; add_task(async function test_submit_creditCard_cancel_saving() { + await SpecialPowers.pushPrefEnv({ + "set": [ + [CREDITCARDS_USED_STATUS_PREF, 0], + ], + }); await BrowserTestUtils.withNewTab({gBrowser, url: CREDITCARD_FORM_URL}, async function(browser) { let promiseShown = BrowserTestUtils.waitForEvent(PopupNotifications.panel, @@ -32,9 +37,16 @@ add_task(async function test_submit_creditCard_cancel_saving() { await sleep(1000); let creditCards = await getCreditCards(); is(creditCards.length, 0, "No credit card saved"); + is(SpecialPowers.getIntPref(CREDITCARDS_USED_STATUS_PREF), 2, "User has seen the doorhanger"); + SpecialPowers.clearUserPref(CREDITCARDS_USED_STATUS_PREF); }); add_task(async function test_submit_creditCard_saved() { + await SpecialPowers.pushPrefEnv({ + "set": [ + [CREDITCARDS_USED_STATUS_PREF, 0], + ], + }); await BrowserTestUtils.withNewTab({gBrowser, url: CREDITCARD_FORM_URL}, async function(browser) { let promiseShown = BrowserTestUtils.waitForEvent(PopupNotifications.panel, @@ -62,10 +74,17 @@ add_task(async function test_submit_creditCard_saved() { let creditCards = await getCreditCards(); is(creditCards.length, 1, "1 credit card in storage"); is(creditCards[0]["cc-name"], "User 1", "Verify the name field"); + is(SpecialPowers.getIntPref(CREDITCARDS_USED_STATUS_PREF), 2, "User has seen the doorhanger"); + SpecialPowers.clearUserPref(CREDITCARDS_USED_STATUS_PREF); await removeAllRecords(); }); add_task(async function test_submit_untouched_creditCard_form() { + await SpecialPowers.pushPrefEnv({ + "set": [ + [CREDITCARDS_USED_STATUS_PREF, 0], + ], + }); await saveCreditCard(TEST_CREDIT_CARD_1); let creditCards = await getCreditCards(); is(creditCards.length, 1, "1 credit card in storage"); @@ -90,10 +109,17 @@ add_task(async function test_submit_untouched_creditCard_form() { creditCards = await getCreditCards(); is(creditCards.length, 1, "Still 1 credit card"); is(creditCards[0].timesUsed, 1, "timesUsed field set to 1"); + is(SpecialPowers.getIntPref(CREDITCARDS_USED_STATUS_PREF), 3, "User has used autofill"); + SpecialPowers.clearUserPref(CREDITCARDS_USED_STATUS_PREF); await removeAllRecords(); }); add_task(async function test_submit_changed_subset_creditCard_form() { + await SpecialPowers.pushPrefEnv({ + "set": [ + [CREDITCARDS_USED_STATUS_PREF, 0], + ], + }); await saveCreditCard(TEST_CREDIT_CARD_1); let creditCards = await getCreditCards(); is(creditCards.length, 1, "1 credit card in storage"); @@ -125,10 +151,17 @@ add_task(async function test_submit_changed_subset_creditCard_form() { creditCards = await getCreditCards(); is(creditCards.length, 1, "Still 1 credit card in storage"); is(creditCards[0]["cc-name"], TEST_CREDIT_CARD_1["cc-name"], "name field still exists"); + is(SpecialPowers.getIntPref(CREDITCARDS_USED_STATUS_PREF), 2, "User has seen the doorhanger"); + SpecialPowers.clearUserPref(CREDITCARDS_USED_STATUS_PREF); await removeAllRecords(); }); add_task(async function test_submit_duplicate_creditCard_form() { + await SpecialPowers.pushPrefEnv({ + "set": [ + [CREDITCARDS_USED_STATUS_PREF, 0], + ], + }); await saveCreditCard(TEST_CREDIT_CARD_1); let creditCards = await getCreditCards(); is(creditCards.length, 1, "1 credit card in storage"); @@ -158,6 +191,9 @@ add_task(async function test_submit_duplicate_creditCard_form() { is(creditCards.length, 1, "Still 1 credit card in storage"); is(creditCards[0]["cc-name"], TEST_CREDIT_CARD_1["cc-name"], "Verify the name field"); is(creditCards[0].timesUsed, 1, "timesUsed field set to 1"); + is(SpecialPowers.getIntPref(CREDITCARDS_USED_STATUS_PREF), 1, + "User neither sees the doorhanger nor uses autofill but somehow has a record in the storage"); + SpecialPowers.clearUserPref(CREDITCARDS_USED_STATUS_PREF); await removeAllRecords(); }); @@ -195,6 +231,11 @@ add_task(async function test_submit_unnormailzed_creditCard_form() { }); add_task(async function test_submit_creditCard_never_save() { + await SpecialPowers.pushPrefEnv({ + "set": [ + [CREDITCARDS_USED_STATUS_PREF, 0], + ], + }); await BrowserTestUtils.withNewTab({gBrowser, url: CREDITCARD_FORM_URL}, async function(browser) { let promiseShown = BrowserTestUtils.waitForEvent(PopupNotifications.panel, @@ -224,6 +265,8 @@ add_task(async function test_submit_creditCard_never_save() { let creditCardPref = SpecialPowers.getBoolPref(ENABLED_AUTOFILL_CREDITCARDS_PREF); is(creditCards.length, 0, "No credit card in storage"); is(creditCardPref, false, "Credit card is disabled"); + is(SpecialPowers.getIntPref(CREDITCARDS_USED_STATUS_PREF), 2, "User has seen the doorhanger"); + SpecialPowers.clearUserPref(CREDITCARDS_USED_STATUS_PREF); SpecialPowers.clearUserPref(ENABLED_AUTOFILL_CREDITCARDS_PREF); }); @@ -390,6 +433,11 @@ add_task(async function test_submit_creditCard_with_synced_already() { }); add_task(async function test_submit_manual_mergeable_creditCard_form() { + await SpecialPowers.pushPrefEnv({ + "set": [ + [CREDITCARDS_USED_STATUS_PREF, 0], + ], + }); await saveCreditCard(TEST_CREDIT_CARD_3); let creditCards = await getCreditCards(); is(creditCards.length, 1, "1 credit card in storage"); @@ -419,5 +467,131 @@ add_task(async function test_submit_manual_mergeable_creditCard_form() { creditCards = await getCreditCards(); is(creditCards.length, 1, "Still 1 credit card in storage"); is(creditCards[0]["cc-name"], "User 3", "Verify the name field"); + is(SpecialPowers.getIntPref(CREDITCARDS_USED_STATUS_PREF), 2, "User has seen the doorhanger"); + SpecialPowers.clearUserPref(CREDITCARDS_USED_STATUS_PREF); + await removeAllRecords(); +}); + +add_task(async function test_update_autofill_form() { + await SpecialPowers.pushPrefEnv({ + "set": [ + [CREDITCARDS_USED_STATUS_PREF, 0], + ], + }); + await saveCreditCard(TEST_CREDIT_CARD_1); + let creditCards = await getCreditCards(); + is(creditCards.length, 1, "1 credit card in storage"); + await BrowserTestUtils.withNewTab({gBrowser, url: CREDITCARD_FORM_URL}, + async function(browser) { + let promiseShown = BrowserTestUtils.waitForEvent(PopupNotifications.panel, + "popupshown"); + await openPopupOn(browser, "form #cc-name"); + await BrowserTestUtils.synthesizeKey("VK_DOWN", {}, browser); + await BrowserTestUtils.synthesizeKey("VK_RETURN", {}, browser); + await ContentTask.spawn(browser, null, async function() { + let form = content.document.getElementById("form"); + let name = form.querySelector("#cc-name"); + name.setUserInput("User 1"); + + // Wait 1000ms before submission to make sure the input value applied + await new Promise(resolve => setTimeout(resolve, 1000)); + form.querySelector("input[type=submit]").click(); + }); + + await promiseShown; + await clickDoorhangerButton(MAIN_BUTTON); + } + ); + + creditCards = await getCreditCards(); + is(creditCards.length, 1, "Still 1 credit card"); + is(creditCards[0]["cc-name"], "User 1", "cc-name field is updated"); + is(SpecialPowers.getIntPref(CREDITCARDS_USED_STATUS_PREF), 3, "User has used autofill"); + SpecialPowers.clearUserPref(CREDITCARDS_USED_STATUS_PREF); + await removeAllRecords(); +}); + +add_task(async function test_create_new_autofill_form() { + await SpecialPowers.pushPrefEnv({ + "set": [ + [CREDITCARDS_USED_STATUS_PREF, 0], + ], + }); + await saveCreditCard(TEST_CREDIT_CARD_1); + let creditCards = await getCreditCards(); + is(creditCards.length, 1, "1 credit card in storage"); + await BrowserTestUtils.withNewTab({gBrowser, url: CREDITCARD_FORM_URL}, + async function(browser) { + let promiseShown = BrowserTestUtils.waitForEvent(PopupNotifications.panel, + "popupshown"); + await openPopupOn(browser, "form #cc-name"); + await BrowserTestUtils.synthesizeKey("VK_DOWN", {}, browser); + await BrowserTestUtils.synthesizeKey("VK_RETURN", {}, browser); + await ContentTask.spawn(browser, null, async function() { + let form = content.document.getElementById("form"); + let name = form.querySelector("#cc-name"); + name.setUserInput("User 1"); + + // Wait 1000ms before submission to make sure the input value applied + await new Promise(resolve => setTimeout(resolve, 1000)); + form.querySelector("input[type=submit]").click(); + }); + + await promiseShown; + await clickDoorhangerButton(SECONDARY_BUTTON); + } + ); + + creditCards = await getCreditCards(); + is(creditCards.length, 2, "2 credit cards in storage"); + is(creditCards[0]["cc-name"], TEST_CREDIT_CARD_1["cc-name"], + "Original record's cc-name field is unchanged"); + is(creditCards[1]["cc-name"], "User 1", "cc-name field in the new record"); + is(SpecialPowers.getIntPref(CREDITCARDS_USED_STATUS_PREF), 3, "User has used autofill"); + SpecialPowers.clearUserPref(CREDITCARDS_USED_STATUS_PREF); + await removeAllRecords(); +}); + +add_task(async function test_update_duplicate_autofill_form() { + await SpecialPowers.pushPrefEnv({ + "set": [ + [CREDITCARDS_USED_STATUS_PREF, 0], + ], + }); + await saveCreditCard({ + "cc-number": "1234123412341234", + }); + await saveCreditCard({ + "cc-number": "1111222233334444", + }); + let creditCards = await getCreditCards(); + is(creditCards.length, 2, "2 credit card in storage"); + await BrowserTestUtils.withNewTab({gBrowser, url: CREDITCARD_FORM_URL}, + async function(browser) { + await openPopupOn(browser, "form #cc-number"); + await BrowserTestUtils.synthesizeKey("VK_DOWN", {}, browser); + await BrowserTestUtils.synthesizeKey("VK_RETURN", {}, browser); + await ContentTask.spawn(browser, null, async function() { + let form = content.document.getElementById("form"); + let number = form.querySelector("#cc-number"); + is(number.value, "1234123412341234", "Should be the first credit card number"); + // Change number to the second credit card number + number.setUserInput("1111222233334444"); + + // Wait 1000ms before submission to make sure the input value applied + await new Promise(resolve => setTimeout(resolve, 1000)); + form.querySelector("input[type=submit]").click(); + }); + + await sleep(1000); + is(PopupNotifications.panel.state, "closed", "Doorhanger is hidden"); + } + ); + + creditCards = await getCreditCards(); + is(creditCards.length, 2, "Still 2 credit card"); + is(SpecialPowers.getIntPref(CREDITCARDS_USED_STATUS_PREF), 1, + "User neither sees the doorhanger nor uses autofill but somehow has a record in the storage"); + SpecialPowers.clearUserPref(CREDITCARDS_USED_STATUS_PREF); await removeAllRecords(); }); diff --git a/browser/extensions/formautofill/test/browser/head.js b/browser/extensions/formautofill/test/browser/head.js index c93d4d30dcfb..98560935ca76 100644 --- a/browser/extensions/formautofill/test/browser/head.js +++ b/browser/extensions/formautofill/test/browser/head.js @@ -2,7 +2,7 @@ BASE_URL, TEST_ADDRESS_1, TEST_ADDRESS_2, TEST_ADDRESS_3, TEST_ADDRESS_4, TEST_ADDRESS_5, TEST_CREDIT_CARD_1, TEST_CREDIT_CARD_2, TEST_CREDIT_CARD_3, FORM_URL, CREDITCARD_FORM_URL, FTU_PREF, ENABLED_AUTOFILL_ADDRESSES_PREF, AUTOFILL_CREDITCARDS_AVAILABLE_PREF, ENABLED_AUTOFILL_CREDITCARDS_PREF, - SYNC_USERNAME_PREF, SYNC_ADDRESSES_PREF, SYNC_CREDITCARDS_PREF, SYNC_CREDITCARDS_AVAILABLE_PREF, + SYNC_USERNAME_PREF, SYNC_ADDRESSES_PREF, SYNC_CREDITCARDS_PREF, SYNC_CREDITCARDS_AVAILABLE_PREF, CREDITCARDS_USED_STATUS_PREF, sleep, expectPopupOpen, openPopupOn, expectPopupClose, closePopup, clickDoorhangerButton, getAddresses, saveAddress, removeAddresses, saveCreditCard, getDisplayedPopupItems, getDoorhangerCheckbox, waitForMasterPasswordDialog, @@ -21,6 +21,7 @@ const FORM_URL = "http://mochi.test:8888/browser/browser/extensions/formautofill const CREDITCARD_FORM_URL = "https://example.org/browser/browser/extensions/formautofill/test/browser/autocomplete_creditcard_basic.html"; const FTU_PREF = "extensions.formautofill.firstTimeUse"; +const CREDITCARDS_USED_STATUS_PREF = "extensions.formautofill.creditCards.used"; const ENABLED_AUTOFILL_ADDRESSES_PREF = "extensions.formautofill.addresses.enabled"; const AUTOFILL_CREDITCARDS_AVAILABLE_PREF = "extensions.formautofill.creditCards.available"; const ENABLED_AUTOFILL_CREDITCARDS_PREF = "extensions.formautofill.creditCards.enabled"; diff --git a/devtools/client/netmonitor/src/components/HeadersPanel.js b/devtools/client/netmonitor/src/components/HeadersPanel.js index 19acd4c61245..ccc75afd4b7d 100644 --- a/devtools/client/netmonitor/src/components/HeadersPanel.js +++ b/devtools/client/netmonitor/src/components/HeadersPanel.js @@ -170,8 +170,9 @@ class HeadersPanel extends Component { this.getProperties(uploadHeaders, REQUEST_HEADERS_FROM_UPLOAD), ); + // not showing #hash in url let summaryUrl = urlDetails.unicodeUrl ? - this.renderSummary(SUMMARY_URL, new URL(urlDetails.unicodeUrl).origin) : null; + this.renderSummary(SUMMARY_URL, urlDetails.unicodeUrl.split("#")[0]) : null; let summaryMethod = method ? this.renderSummary(SUMMARY_METHOD, method) : null; diff --git a/devtools/client/netmonitor/test/browser_net_status-codes.js b/devtools/client/netmonitor/test/browser_net_status-codes.js index 7b81bacca0f0..12b5ae10a821 100644 --- a/devtools/client/netmonitor/test/browser_net_status-codes.js +++ b/devtools/client/netmonitor/test/browser_net_status-codes.js @@ -30,6 +30,7 @@ add_task(function* () { // request #0 method: "GET", uri: STATUS_CODES_SJS + "?sts=100", + correctUri: STATUS_CODES_SJS + "?sts=100", details: { status: 101, statusText: "Switching Protocols", @@ -42,7 +43,8 @@ add_task(function* () { { // request #1 method: "GET", - uri: STATUS_CODES_SJS + "?sts=200", + uri: STATUS_CODES_SJS + "?sts=200#doh", + correctUri: STATUS_CODES_SJS + "?sts=200", details: { status: 202, statusText: "Created", @@ -56,6 +58,7 @@ add_task(function* () { // request #2 method: "GET", uri: STATUS_CODES_SJS + "?sts=300", + correctUri: STATUS_CODES_SJS + "?sts=300", details: { status: 303, statusText: "See Other", @@ -69,6 +72,7 @@ add_task(function* () { // request #3 method: "GET", uri: STATUS_CODES_SJS + "?sts=400", + correctUri: STATUS_CODES_SJS + "?sts=400", details: { status: 404, statusText: "Not Found", @@ -82,6 +86,7 @@ add_task(function* () { // request #4 method: "GET", uri: STATUS_CODES_SJS + "?sts=500", + correctUri: STATUS_CODES_SJS + "?sts=500", details: { status: 501, statusText: "Not Implemented", @@ -169,9 +174,9 @@ add_task(function* () { let panel = document.querySelector("#headers-panel"); let summaryValues = panel.querySelectorAll(".tabpanel-summary-value.textbox-input"); - let { method, uri, details: { status, statusText } } = data; + let { method, correctUri, details: { status, statusText } } = data; - is(summaryValues[0].value, new URL(uri).origin, + is(summaryValues[0].value, correctUri, "The url summary value is incorrect."); is(summaryValues[1].value, method, "The method summary value is incorrect."); is(panel.querySelector(".requests-list-status-icon").dataset.code, status, @@ -190,7 +195,8 @@ add_task(function* () { document.querySelector("#params-tab")); let panel = document.querySelector("#params-panel"); - let statusParamValue = data.uri.split("=").pop(); + // Bug 1414981 - Request URL should not show #hash + let statusParamValue = data.uri.split("=").pop().split("#")[0]; let treeSections = panel.querySelectorAll(".tree-section"); is(treeSections.length, 1, diff --git a/devtools/client/netmonitor/test/head.js b/devtools/client/netmonitor/test/head.js index dba5a42ba329..0443df193bc4 100644 --- a/devtools/client/netmonitor/test/head.js +++ b/devtools/client/netmonitor/test/head.js @@ -402,7 +402,8 @@ function verifyRequestItemTarget(document, requestList, requestItem, method, transferred, size, time, displayedStatus } = data; let target = document.querySelectorAll(".request-list-item")[visibleIndex]; - let unicodeUrl = decodeUnicodeUrl(url); + // Bug 1414981 - Request URL should not show #hash + let unicodeUrl = decodeUnicodeUrl(url).split("#")[0]; let name = getUrlBaseName(url); let query = getUrlQuery(url); let host = getUrlHost(url); @@ -424,7 +425,7 @@ function verifyRequestItemTarget(document, requestList, requestItem, method, ok(requestItem.url.startsWith(url), "The attached url is correct."); } else { is(requestItem.method, method, "The attached method is correct."); - is(requestItem.url, url, "The attached url is correct."); + is(requestItem.url, url.split("#")[0], "The attached url is correct."); } is(target.querySelector(".requests-list-method").textContent, diff --git a/dom/media/ChannelMediaResource.cpp b/dom/media/ChannelMediaResource.cpp index 5c7a802a2675..8bbef01209c4 100644 --- a/dom/media/ChannelMediaResource.cpp +++ b/dom/media/ChannelMediaResource.cpp @@ -294,6 +294,7 @@ ChannelMediaResource::OnStartRequest(nsIRequest* aRequest, UpdatePrincipal(); mCacheStream.NotifyDataStarted(mLoadID, startOffset, seekable); + mIsTransportSeekable = seekable; mChannelStatistics.Start(); mReopenOnError = false; @@ -318,7 +319,8 @@ ChannelMediaResource::OnStartRequest(nsIRequest* aRequest, bool ChannelMediaResource::IsTransportSeekable() { - return mCacheStream.IsTransportSeekable(); + MOZ_ASSERT(NS_IsMainThread()); + return mIsTransportSeekable; } nsresult @@ -387,7 +389,7 @@ ChannelMediaResource::OnStopRequest(nsIRequest* aRequest, nsresult aStatus) if (mReopenOnError && aStatus != NS_ERROR_PARSED_DATA_CACHED && aStatus != NS_BINDING_ABORTED && (GetOffset() == 0 || (GetLength() > 0 && GetOffset() != GetLength() && - mCacheStream.IsTransportSeekable()))) { + mIsTransportSeekable))) { // If the stream did close normally, restart the channel if we're either // at the start of the resource, or if the server is seekable and we're // not at the end of stream. We don't restart the stream if we're at the @@ -600,6 +602,8 @@ ChannelMediaResource::CloneData(MediaResourceCallback* aCallback) RefPtr resource = new ChannelMediaResource(aCallback, nullptr, mURI, mChannelStatistics); + resource->mIsTransportSeekable = mIsTransportSeekable; + // Initially the clone is treated as suspended by the cache, because // we don't have a channel. If the cache needs to read data from the clone // it will call CacheClientResume (or CacheClientSeek with aResume true) @@ -692,7 +696,7 @@ ChannelMediaResource::Suspend(bool aCloseImmediately) dom::HTMLMediaElement* element = owner->GetMediaElement(); MOZ_DIAGNOSTIC_ASSERT(element); - if (mChannel && aCloseImmediately && mCacheStream.IsTransportSeekable()) { + if (mChannel && aCloseImmediately && mIsTransportSeekable) { CloseChannel(); element->DownloadSuspended(); } diff --git a/dom/media/ChannelMediaResource.h b/dom/media/ChannelMediaResource.h index a9bcc44c3a9e..da0d4ec88f7e 100644 --- a/dom/media/ChannelMediaResource.h +++ b/dom/media/ChannelMediaResource.h @@ -247,6 +247,8 @@ protected: // Main thread access only // True if Close() has been called. bool mClosed = false; + // The last reported seekability state for the underlying channel + bool mIsTransportSeekable = false; RefPtr mListener; // A mono-increasing integer to uniquely identify the channel we are loading. uint32_t mLoadID = 0; diff --git a/dom/media/MediaCache.cpp b/dom/media/MediaCache.cpp index 00711d905689..a9de8c245d90 100644 --- a/dom/media/MediaCache.cpp +++ b/dom/media/MediaCache.cpp @@ -14,6 +14,7 @@ #include "MemoryBlockCache.h" #include "mozilla/Attributes.h" #include "mozilla/ClearOnShutdown.h" +#include "mozilla/ErrorNames.h" #include "mozilla/Logging.h" #include "mozilla/Preferences.h" #include "mozilla/ReentrantMonitor.h" @@ -24,7 +25,6 @@ #include "nsContentUtils.h" #include "nsIObserverService.h" #include "nsIPrincipal.h" -#include "nsISeekableStream.h" #include "nsPrintfCString.h" #include "nsProxyRelease.h" #include "nsThreadUtils.h" @@ -35,9 +35,11 @@ namespace mozilla { #undef LOG #undef LOGI +#undef LOGE LazyLogModule gMediaCacheLog("MediaCache"); #define LOG(...) MOZ_LOG(gMediaCacheLog, LogLevel::Debug, (__VA_ARGS__)) #define LOGI(...) MOZ_LOG(gMediaCacheLog, LogLevel::Info, (__VA_ARGS__)) +#define LOGE(...) NS_DebugBreak(NS_DEBUG_WARNING, nsPrintfCString(__VA_ARGS__).get(), nullptr, __FILE__, __LINE__) // For HTTP seeking, if number of bytes needing to be // seeked forward is less than this value then a read is @@ -2198,13 +2200,6 @@ MediaCacheStream::~MediaCacheStream() lengthKb); } -bool -MediaCacheStream::IsTransportSeekable() -{ - ReentrantMonitorAutoEnter mon(mMediaCache->GetReentrantMonitor()); - return mIsTransportSeekable; -} - bool MediaCacheStream::AreAllStreamsForResourceSuspended() { @@ -2411,41 +2406,22 @@ MediaCacheStream::SetPlaybackRate(uint32_t aBytesPerSecond) } nsresult -MediaCacheStream::Seek(int32_t aWhence, int64_t aOffset) +MediaCacheStream::Seek(int64_t aOffset) { - NS_ASSERTION(!NS_IsMainThread(), "Don't call on main thread"); + MOZ_ASSERT(!NS_IsMainThread()); + mMediaCache->GetReentrantMonitor().AssertCurrentThreadIn(); - ReentrantMonitorAutoEnter mon(mMediaCache->GetReentrantMonitor()); - if (mClosed) - return NS_ERROR_FAILURE; + if (!IsOffsetAllowed(aOffset)) { + return NS_ERROR_ILLEGAL_VALUE; + } + if (mClosed) { + return NS_ERROR_ABORT; + } int64_t oldOffset = mStreamOffset; - int64_t newOffset = mStreamOffset; - switch (aWhence) { - case PR_SEEK_END: - if (mStreamLength < 0) - return NS_ERROR_FAILURE; - newOffset = mStreamLength + aOffset; - break; - case PR_SEEK_CUR: - newOffset += aOffset; - break; - case PR_SEEK_SET: - newOffset = aOffset; - break; - default: - NS_ERROR("Unknown whence"); - return NS_ERROR_FAILURE; - } - - if (!IsOffsetAllowed(newOffset)) { - return NS_ERROR_FAILURE; - } - mStreamOffset = newOffset; - + mStreamOffset = aOffset; LOG("Stream %p Seek to %" PRId64, this, mStreamOffset); mMediaCache->NoteSeek(this, oldOffset); - mMediaCache->QueueUpdate(); return NS_OK; } @@ -2462,6 +2438,72 @@ MediaCacheStream::ThrottleReadahead(bool bThrottle) } } +uint32_t +MediaCacheStream::ReadPartialBlock(int64_t aOffset, Span aBuffer) +{ + mMediaCache->GetReentrantMonitor().AssertCurrentThreadIn(); + MOZ_ASSERT(IsOffsetAllowed(aOffset)); + + if (OffsetToBlockIndexUnchecked(mChannelOffset) != + OffsetToBlockIndexUnchecked(aOffset) || + aOffset >= mChannelOffset) { + // Not in the partial block or no data to read. + return 0; + } + + auto source = MakeSpan( + mPartialBlockBuffer.get() + OffsetInBlock(aOffset), + OffsetInBlock(mChannelOffset) - OffsetInBlock(aOffset)); + // We have |source.Length() <= BLOCK_SIZE < INT32_MAX| to guarantee + // that |bytesToRead| can fit into a uint32_t. + uint32_t bytesToRead = std::min(aBuffer.Length(), source.Length()); + memcpy(aBuffer.Elements(), source.Elements(), bytesToRead); + return bytesToRead; +} + +Result +MediaCacheStream::ReadBlockFromCache(int64_t aOffset, Span aBuffer) +{ + mMediaCache->GetReentrantMonitor().AssertCurrentThreadIn(); + MOZ_ASSERT(IsOffsetAllowed(aOffset)); + + // OffsetToBlockIndexUnchecked() is always non-negative. + uint32_t index = OffsetToBlockIndexUnchecked(aOffset); + int32_t cacheBlock = index < mBlocks.Length() ? mBlocks[index] : -1; + if (cacheBlock < 0) { + // Not in the cache. + return 0; + } + + if (aBuffer.Length() > size_t(BLOCK_SIZE)) { + // Clamp the buffer to avoid overflow below since we will read at most + // BLOCK_SIZE bytes. + aBuffer = aBuffer.First(BLOCK_SIZE); + } + // |BLOCK_SIZE - OffsetInBlock(aOffset)| <= BLOCK_SIZE + int32_t bytesToRead = + std::min(BLOCK_SIZE - OffsetInBlock(aOffset), aBuffer.Length()); + int32_t bytesRead = 0; + nsresult rv = + mMediaCache->ReadCacheFile(cacheBlock * BLOCK_SIZE + OffsetInBlock(aOffset), + aBuffer.Elements(), + bytesToRead, + &bytesRead); + + // Ensure |cacheBlock * BLOCK_SIZE + OffsetInBlock(aOffset)| won't overflow. + static_assert(INT64_MAX >= BLOCK_SIZE * (uint32_t(INT32_MAX) + 1), + "BLOCK_SIZE too large!"); + + if (NS_FAILED(rv)) { + nsCString name; + GetErrorName(rv, name); + LOGE("Stream %p ReadCacheFile failed, rv=%s", this, name.Data()); + return mozilla::Err(rv); + } + + return bytesRead; +} + int64_t MediaCacheStream::Tell() { @@ -2600,73 +2642,55 @@ MediaCacheStream::ReadAt(int64_t aOffset, char* aBuffer, NS_ASSERTION(!NS_IsMainThread(), "Don't call on main thread"); ReentrantMonitorAutoEnter mon(mMediaCache->GetReentrantMonitor()); - nsresult rv = Seek(nsISeekableStream::NS_SEEK_SET, aOffset); + nsresult rv = Seek(aOffset); if (NS_FAILED(rv)) return rv; return Read(aBuffer, aCount, aBytes); } nsresult -MediaCacheStream::ReadFromCache(char* aBuffer, int64_t aOffset, int64_t aCount) +MediaCacheStream::ReadFromCache(char* aBuffer, int64_t aOffset, uint32_t aCount) { ReentrantMonitorAutoEnter mon(mMediaCache->GetReentrantMonitor()); + // The buffer we are about to fill. + auto buffer = MakeSpan(aBuffer, aCount); + // Read one block (or part of a block) at a time - uint32_t count = 0; int64_t streamOffset = aOffset; - while (count < aCount) { + while (!buffer.IsEmpty()) { if (mClosed) { // We need to check |mClosed| in each iteration which might be changed // after calling |mMediaCache->ReadCacheFile|. return NS_ERROR_FAILURE; } - int32_t streamBlock = OffsetToBlockIndex(streamOffset); - if (streamBlock < 0) { - break; - } - uint32_t offsetInStreamBlock = - uint32_t(streamOffset - streamBlock*BLOCK_SIZE); - int64_t size = std::min(aCount - count, BLOCK_SIZE - offsetInStreamBlock); - if (mStreamLength >= 0) { - // Don't try to read beyond the end of the stream - int64_t bytesRemaining = mStreamLength - streamOffset; - if (bytesRemaining <= 0) { - return NS_ERROR_FAILURE; - } - size = std::min(size, bytesRemaining); - // Clamp size until 64-bit file size issues are fixed. - size = std::min(size, int64_t(INT32_MAX)); + if (!IsOffsetAllowed(streamOffset)) { + LOGE("Stream %p invalid offset=%" PRId64, this, streamOffset); + return NS_ERROR_ILLEGAL_VALUE; } - int32_t bytes; - int32_t channelBlock = OffsetToBlockIndexUnchecked(mChannelOffset); - int32_t cacheBlock = - size_t(streamBlock) < mBlocks.Length() ? mBlocks[streamBlock] : -1; - if (channelBlock == streamBlock && streamOffset < mChannelOffset) { - // We can just use the data in mPartialBlockBuffer. In fact we should - // use it rather than waiting for the block to fill and land in - // the cache. - // Clamp bytes until 64-bit file size issues are fixed. - int64_t toCopy = std::min(size, mChannelOffset - streamOffset); - bytes = std::min(toCopy, int64_t(INT32_MAX)); - MOZ_ASSERT(bytes >= 0 && bytes <= toCopy, "Bytes out of range."); - memcpy(aBuffer + count, - mPartialBlockBuffer.get() + offsetInStreamBlock, bytes); - } else { - if (cacheBlock < 0) { - // We expect all blocks to be cached! Fail! - return NS_ERROR_FAILURE; - } - int64_t offset = cacheBlock*BLOCK_SIZE + offsetInStreamBlock; - MOZ_ASSERT(size >= 0 && size <= INT32_MAX, "Size out of range."); - nsresult rv = mMediaCache->ReadCacheFile( - offset, aBuffer + count, int32_t(size), &bytes); - if (NS_FAILED(rv)) { - return rv; - } + Result rv = ReadBlockFromCache(streamOffset, buffer); + if (rv.isErr()) { + return rv.unwrapErr(); } - streamOffset += bytes; - count += bytes; + + uint32_t bytes = rv.unwrap(); + if (bytes > 0) { + // Read data from the cache successfully. Let's try next block. + streamOffset += bytes; + buffer = buffer.From(bytes); + continue; + } + + // The partial block is our last chance to get data. + bytes = ReadPartialBlock(streamOffset, buffer); + if (bytes < buffer.Length()) { + // Not enough data to read. + return NS_ERROR_FAILURE; + } + + // Return for we've got all the requested bytes. + return NS_OK; } return NS_OK; diff --git a/dom/media/MediaCache.h b/dom/media/MediaCache.h index 45a8bd6e3190..36a07409dcb1 100644 --- a/dom/media/MediaCache.h +++ b/dom/media/MediaCache.h @@ -8,6 +8,7 @@ #define MediaCache_h_ #include "Intervals.h" +#include "mozilla/Result.h" #include "mozilla/UniquePtr.h" #include "nsCOMPtr.h" #include "nsHashKeys.h" @@ -314,9 +315,7 @@ public: // in the cache. Will not mark blocks as read. Can be called from the main // thread. It's the caller's responsibility to wrap the call in a pin/unpin, // and also to check that the range they want is cached before calling this. - nsresult ReadFromCache(char* aBuffer, - int64_t aOffset, - int64_t aCount); + nsresult ReadFromCache(char* aBuffer, int64_t aOffset, uint32_t aCount); // IsDataCachedToEndOfStream returns true if all the data from // aOffset to the end of the stream (the server-reported end, if the @@ -330,8 +329,6 @@ public: // because it doesn't know when the decoder was paused, buffering, etc. // Do not pass zero. void SetPlaybackRate(uint32_t aBytesPerSecond); - // Returns the last set value of SetTransportSeekable. - bool IsTransportSeekable(); // Returns true when all streams for this resource are suspended or their // channel has ended. @@ -340,9 +337,6 @@ public: // These methods must be called on a different thread from the main // thread. They should always be called on the same thread for a given // stream. - // This can fail when aWhence is NS_SEEK_END and no stream length - // is known. - nsresult Seek(int32_t aWhence, int64_t aOffset); int64_t Tell(); // *aBytes gets the number of bytes that were actually read. This can // be less than aCount. If the first byte of data is not in the cache, @@ -426,6 +420,19 @@ private: int32_t mCount; }; + // Read data from the partial block and return the number of bytes read + // successfully. 0 if aOffset is not an offset in the partial block or there + // is nothing to read. + uint32_t ReadPartialBlock(int64_t aOffset, Span aBuffer); + + // Read data from the cache block specified by aOffset. Return the number of + // bytes read successfully or an error code if any failure. + Result ReadBlockFromCache(int64_t aOffset, + Span aBuffer); + + // Non-main thread only. + nsresult Seek(int64_t aOffset); + // Returns the end of the bytes starting at the given offset // which are in cache. // This method assumes that the cache monitor is held and can be called on diff --git a/dom/media/gmp/ChromiumCDMChild.cpp b/dom/media/gmp/ChromiumCDMChild.cpp index 57074eb791a4..159d01f850d6 100644 --- a/dom/media/gmp/ChromiumCDMChild.cpp +++ b/dom/media/gmp/ChromiumCDMChild.cpp @@ -560,6 +560,7 @@ ChromiumCDMChild::RecvLoadSession(const uint32_t& aPromiseId, const uint32_t& aSessionType, const nsCString& aSessionId) { + MOZ_ASSERT(IsOnMessageLoopThread()); GMP_LOG("ChromiumCDMChild::RecvLoadSession(pid=%u, type=%u, sessionId=%s)", aPromiseId, aSessionType, @@ -737,6 +738,11 @@ ChromiumCDMChild::RecvInitializeVideoDecoder( { MOZ_ASSERT(IsOnMessageLoopThread()); MOZ_ASSERT(!mDecoderInitialized); + if (!mCDM) { + GMP_LOG("ChromiumCDMChild::RecvInitializeVideoDecoder() no CDM"); + Unused << SendOnDecoderInitDone(cdm::kInitializationError); + return IPC_OK(); + } cdm::VideoDecoderConfig config; config.codec = static_cast(aConfig.mCodec()); @@ -761,10 +767,10 @@ ChromiumCDMChild::RecvDeinitializeVideoDecoder() MOZ_ASSERT(IsOnMessageLoopThread()); GMP_LOG("ChromiumCDMChild::RecvDeinitializeVideoDecoder()"); MOZ_ASSERT(mDecoderInitialized); - if (mDecoderInitialized) { - mDecoderInitialized = false; + if (mDecoderInitialized && mCDM) { mCDM->DeinitializeDecoder(cdm::kStreamTypeVideo); } + mDecoderInitialized = false; PurgeShmems(); return IPC_OK(); } @@ -774,7 +780,7 @@ ChromiumCDMChild::RecvResetVideoDecoder() { MOZ_ASSERT(IsOnMessageLoopThread()); GMP_LOG("ChromiumCDMChild::RecvResetVideoDecoder()"); - if (mDecoderInitialized) { + if (mDecoderInitialized && mCDM) { mCDM->ResetDecoder(cdm::kStreamTypeVideo); } Unused << SendResetVideoDecoderComplete(); @@ -789,6 +795,12 @@ ChromiumCDMChild::RecvDecryptAndDecodeFrame(const CDMInputBuffer& aBuffer) aBuffer.mTimestamp()); MOZ_ASSERT(mDecoderInitialized); + if (!mCDM) { + GMP_LOG("ChromiumCDMChild::RecvDecryptAndDecodeFrame() no CDM"); + Unused << SendDecodeFailed(cdm::kDecodeError); + return IPC_OK(); + } + RefPtr self = this; auto autoDeallocateShmem = MakeScopeExit([&, self] { self->DeallocShmem(aBuffer.mData()); @@ -882,6 +894,11 @@ mozilla::ipc::IPCResult ChromiumCDMChild::RecvDrain() { MOZ_ASSERT(IsOnMessageLoopThread()); + if (!mCDM) { + GMP_LOG("ChromiumCDMChild::RecvDrain() no CDM"); + Unused << SendDrainComplete(); + return IPC_OK(); + } WidevineVideoFrame frame; cdm::InputBuffer sample; cdm::Status rv = mCDM->DecryptAndDecodeFrame(sample, &frame); diff --git a/dom/media/test/eme.js b/dom/media/test/eme.js index de09aacca042..3c40d46ab047 100644 --- a/dom/media/test/eme.js +++ b/dom/media/test/eme.js @@ -149,7 +149,7 @@ function UpdateSessionFunc(test, token, sessionType, resolve, reject) { function MaybeCrossOriginURI(test, uri) { if (test.crossOrigin) { - return "http://test2.mochi.test:8888/tests/dom/media/test/allowed.sjs?" + uri; + return "https://example.com:443/tests/dom/media/test/allowed.sjs?" + uri; } else { return uri; } diff --git a/dom/media/test/mochitest.ini b/dom/media/test/mochitest.ini index 088f7446984f..f73b7a26353b 100644 --- a/dom/media/test/mochitest.ini +++ b/dom/media/test/mochitest.ini @@ -753,44 +753,63 @@ skip-if = android_version == '17' # android(bug 1232305) [test_duration_after_error.html] [test_eme_autoplay.html] skip-if = toolkit == 'android' # bug 1149374 +scheme=https [test_eme_pssh_in_moof.html] skip-if = toolkit == 'android' # bug 1149374 +scheme=https [test_eme_session_callable_value.html] +scheme=https [test_eme_canvas_blocked.html] skip-if = toolkit == 'android' # bug 1149374 +scheme=https [test_eme_detach_media_keys.html] skip-if = toolkit == 'android' # bug 1149374 +scheme=https [test_eme_detach_reattach_same_mediakeys_during_playback.html] skip-if = toolkit == 'android' # bug 1149374 +scheme=https [test_eme_initDataTypes.html] skip-if = toolkit == 'android' # bug 1149374 +scheme=https [test_eme_missing_pssh.html] skip-if = toolkit == 'android' # bug 1149374 +scheme=https [test_eme_non_mse_fails.html] skip-if = toolkit == 'android' # bug 1149374 +scheme=https [test_eme_request_notifications.html] skip-if = toolkit == 'android' # bug 1149374 +scheme=https [test_eme_playback.html] skip-if = toolkit == 'android' # bug 1149374 +scheme=https [test_eme_requestKeySystemAccess.html] skip-if = toolkit == 'android' # bug 1149374 +scheme=https [test_eme_sample_groups_playback.html] skip-if = toolkit == 'android' # bug 1149374 +scheme=https [test_eme_setMediaKeys_before_attach_MediaSource.html] skip-if = toolkit == 'android' # bug 1149374 +scheme=https [test_eme_stream_capture_blocked_case1.html] tags=msg capturestream skip-if = toolkit == 'android' # bug 1149374 +scheme=https [test_eme_stream_capture_blocked_case2.html] tags=msg capturestream skip-if = toolkit == 'android' # bug 1149374 +scheme=https [test_eme_stream_capture_blocked_case3.html] tags=msg capturestream skip-if = toolkit == 'android' # bug 1149374 +scheme=https [test_eme_unsetMediaKeys_then_capture.html] skip-if = toolkit == 'android' # bug 1149374 +scheme=https [test_eme_waitingforkey.html] skip-if = toolkit == 'android' # bug 1149374 +scheme=https [test_empty_resource.html] [test_error_in_video_document.html] [test_error_on_404.html] diff --git a/dom/media/test/test_eme_autoplay.html b/dom/media/test/test_eme_autoplay.html index 1185ab2d90f3..622739614739 100644 --- a/dom/media/test/test_eme_autoplay.html +++ b/dom/media/test/test_eme_autoplay.html @@ -5,7 +5,7 @@ - +
diff --git a/dom/media/test/test_eme_detach_reattach_same_mediakeys_during_playback.html b/dom/media/test/test_eme_detach_reattach_same_mediakeys_during_playback.html
index 89b14d96ff02..1d66c408132d 100644
--- a/dom/media/test/test_eme_detach_reattach_same_mediakeys_during_playback.html
+++ b/dom/media/test/test_eme_detach_reattach_same_mediakeys_during_playback.html
@@ -5,7 +5,7 @@
   
   
   
-  
+  
 
 
 
diff --git a/dom/media/test/test_eme_playback.html b/dom/media/test/test_eme_playback.html
index e1ca87274483..1997db89cb7e 100644
--- a/dom/media/test/test_eme_playback.html
+++ b/dom/media/test/test_eme_playback.html
@@ -5,7 +5,7 @@
   
   
   
-  
+  
 
 
 
diff --git a/dom/media/test/test_eme_unsetMediaKeys_then_capture.html b/dom/media/test/test_eme_unsetMediaKeys_then_capture.html
index 1cb1614f311b..b128420c70dd 100644
--- a/dom/media/test/test_eme_unsetMediaKeys_then_capture.html
+++ b/dom/media/test/test_eme_unsetMediaKeys_then_capture.html
@@ -5,7 +5,7 @@
   
   
   
-  
+  
 
 
 
diff --git a/dom/media/test/test_eme_waitingforkey.html b/dom/media/test/test_eme_waitingforkey.html
index 2d0b1dc1c721..0397d1c395f6 100644
--- a/dom/media/test/test_eme_waitingforkey.html
+++ b/dom/media/test/test_eme_waitingforkey.html
@@ -5,7 +5,7 @@
   
   
   
-  
+  
 
 
 
diff --git a/js/src/jit-test/tests/wasm/globals.js b/js/src/jit-test/tests/wasm/globals.js
index df080d96d4e0..b666922adf30 100644
--- a/js/src/jit-test/tests/wasm/globals.js
+++ b/js/src/jit-test/tests/wasm/globals.js
@@ -188,8 +188,8 @@ function testInitExpr(type, initialValue, nextValue, coercion, assertFunc = asse
     var module = wasmEvalText(`(module
         (import "globals" "a" (global ${type}))
 
-        (global (mut ${type}) (get_global 0))
-        (global ${type} (get_global 0))
+        (global $glob_mut (mut ${type}) (get_global 0))
+        (global $glob_imm ${type} (get_global 0))
 
         (func $get0 (result ${type}) (get_global 0))
 
@@ -203,6 +203,7 @@ function testInitExpr(type, initialValue, nextValue, coercion, assertFunc = asse
         (export "get_cst" $get_cst)
 
         (export "set1" $set1)
+        (export "global_imm" (global $glob_imm))
     )`, {
         globals: {
             a: coercion(initialValue)
@@ -211,10 +212,12 @@ function testInitExpr(type, initialValue, nextValue, coercion, assertFunc = asse
 
     assertFunc(module.get0(), coercion(initialValue));
     assertFunc(module.get1(), coercion(initialValue));
+    assertFunc(module.global_imm, coercion(initialValue));
 
     assertEq(module.set1(coercion(nextValue)), undefined);
     assertFunc(module.get1(), coercion(nextValue));
     assertFunc(module.get0(), coercion(initialValue));
+    assertFunc(module.global_imm, coercion(initialValue));
 
     assertFunc(module.get_cst(), coercion(initialValue));
 }
diff --git a/js/src/jit-test/tests/wasm/regress/proxy-has-trap-table.js b/js/src/jit-test/tests/wasm/regress/proxy-has-trap-table.js
new file mode 100644
index 000000000000..6154ad7ebd5f
--- /dev/null
+++ b/js/src/jit-test/tests/wasm/regress/proxy-has-trap-table.js
@@ -0,0 +1,10 @@
+assertErrorMessage(() => {
+    var desc = {
+        element: "anyfunc",
+    };
+    var proxy = new Proxy({}, {
+        has: true
+    });
+    Object.setPrototypeOf(desc, proxy);
+    let table = new WebAssembly.Table(desc);
+}, TypeError, /proxy handler's has trap/);
diff --git a/js/src/wasm/WasmAST.h b/js/src/wasm/WasmAST.h
index 1154c44df4dd..a0c116dc9ea8 100644
--- a/js/src/wasm/WasmAST.h
+++ b/js/src/wasm/WasmAST.h
@@ -788,6 +788,8 @@ class AstModule : public AstNode
     AstElemSegmentVector elemSegments_;
     AstGlobalVector      globals_;
 
+    size_t numGlobalImports_;
+
   public:
     explicit AstModule(LifoAlloc& lifo)
       : lifo_(lifo),
@@ -801,7 +803,8 @@ class AstModule : public AstNode
         funcs_(lifo),
         dataSegments_(lifo),
         elemSegments_(lifo),
-        globals_(lifo)
+        globals_(lifo),
+        numGlobalImports_(0)
     {}
     bool init() {
         return sigMap_.init();
@@ -891,9 +894,9 @@ class AstModule : public AstNode
                 return false;
             break;
           case DefinitionKind::Global:
+            numGlobalImports_++;
             break;
         }
-
         return imports_.append(imp);
     }
     const ImportVector& imports() const {
@@ -917,6 +920,9 @@ class AstModule : public AstNode
     const AstGlobalVector& globals() const {
         return globals_;
     }
+    size_t numGlobalImports() const {
+        return numGlobalImports_;
+    }
 };
 
 class AstUnaryOperator final : public AstExpr
diff --git a/js/src/wasm/WasmJS.cpp b/js/src/wasm/WasmJS.cpp
index 0fa4323b5bd6..9d41a724ed99 100644
--- a/js/src/wasm/WasmJS.cpp
+++ b/js/src/wasm/WasmJS.cpp
@@ -454,7 +454,10 @@ GetLimits(JSContext* cx, HandleObject obj, uint32_t maxInitial, uint32_t maxMaxi
     RootedId maximumId(cx, AtomToId(maximumAtom));
 
     bool found;
-    if (HasProperty(cx, obj, maximumId, &found) && found) {
+    if (!HasProperty(cx, obj, maximumId, &found))
+        return false;
+
+    if (found) {
         RootedValue maxVal(cx);
         if (!GetProperty(cx, obj, obj, maximumId, &maxVal))
             return false;
diff --git a/js/src/wasm/WasmModule.cpp b/js/src/wasm/WasmModule.cpp
index 5142b524c5eb..da4313cb0db8 100644
--- a/js/src/wasm/WasmModule.cpp
+++ b/js/src/wasm/WasmModule.cpp
@@ -988,9 +988,29 @@ GetGlobalExport(JSContext* cx, const GlobalDescVector& globals, uint32_t globalI
     // Imports are located upfront in the globals array.
     Val val;
     switch (global.kind()) {
-      case GlobalKind::Import:   val = globalImports[globalIndex]; break;
-      case GlobalKind::Variable: MOZ_CRASH("mutable variables can't be exported");
-      case GlobalKind::Constant: val = global.constantValue(); break;
+      case GlobalKind::Import: {
+        val = globalImports[globalIndex];
+        break;
+      }
+      case GlobalKind::Variable: {
+        MOZ_ASSERT(!global.isMutable(), "mutable variables can't be exported");
+        const InitExpr& init = global.initExpr();
+        switch (init.kind()) {
+          case InitExpr::Kind::Constant: {
+            val = init.val();
+            break;
+          }
+          case InitExpr::Kind::GetGlobal: {
+            val = globalImports[init.globalIndex()];
+            break;
+          }
+        }
+        break;
+      }
+      case GlobalKind::Constant: {
+        val = global.constantValue();
+        break;
+      }
     }
 
     switch (global.type()) {
diff --git a/js/src/wasm/WasmTextToBinary.cpp b/js/src/wasm/WasmTextToBinary.cpp
index a2cafc51a280..faf74bbe3364 100644
--- a/js/src/wasm/WasmTextToBinary.cpp
+++ b/js/src/wasm/WasmTextToBinary.cpp
@@ -2660,7 +2660,7 @@ ParseFunc(WasmParseContext& c, AstModule* module)
 
         if (c.ts.getIf(WasmToken::Export)) {
             AstRef ref = funcName.empty()
-                         ? AstRef(module->funcImportNames().length() + module->funcs().length())
+                         ? AstRef(module->numFuncImports() + module->funcs().length())
                          : AstRef(funcName);
             if (!ParseInlineExport(c, DefinitionKind::Function, module, ref))
                 return false;
@@ -3227,7 +3227,8 @@ ParseGlobal(WasmParseContext& c, AstModule* module)
         }
 
         if (c.ts.getIf(WasmToken::Export)) {
-            AstRef ref = name.empty() ? AstRef(module->globals().length()) : AstRef(name);
+            size_t refIndex = module->numGlobalImports() + module->globals().length();
+            AstRef ref = name.empty() ? AstRef(refIndex) : AstRef(name);
             if (!ParseInlineExport(c, DefinitionKind::Global, module, ref))
                 return false;
             if (!c.ts.match(WasmToken::CloseParen, c.error))
diff --git a/layout/generic/nsImageMap.cpp b/layout/generic/nsImageMap.cpp
index 6b9eeca3bf28..343d163e76fd 100644
--- a/layout/generic/nsImageMap.cpp
+++ b/layout/generic/nsImageMap.cpp
@@ -10,6 +10,7 @@
 
 #include "mozilla/dom/Element.h"
 #include "mozilla/dom/Event.h" // for nsIDOMEvent::InternalDOMEvent()
+#include "mozilla/dom/HTMLAreaElement.h"
 #include "mozilla/gfx/PathHelpers.h"
 #include "mozilla/UniquePtr.h"
 #include "nsString.h"
@@ -30,10 +31,11 @@
 
 using namespace mozilla;
 using namespace mozilla::gfx;
+using namespace mozilla::dom;
 
 class Area {
 public:
-  explicit Area(nsIContent* aArea);
+  explicit Area(HTMLAreaElement* aArea);
   virtual ~Area();
 
   virtual void ParseCoords(const nsAString& aSpec);
@@ -46,17 +48,17 @@ public:
 
   void HasFocus(bool aHasFocus);
 
-  nsCOMPtr mArea;
+  RefPtr mArea;
   UniquePtr mCoords;
   int32_t mNumCoords;
   bool mHasFocus;
 };
 
-Area::Area(nsIContent* aArea)
+Area::Area(HTMLAreaElement* aArea)
   : mArea(aArea)
 {
   MOZ_COUNT_CTOR(Area);
-  NS_PRECONDITION(mArea, "How did that happen?");
+  MOZ_ASSERT(mArea, "How did that happen?");
   mNumCoords = 0;
   mHasFocus = false;
 }
@@ -267,7 +269,7 @@ void Area::HasFocus(bool aHasFocus)
 
 class DefaultArea : public Area {
 public:
-  explicit DefaultArea(nsIContent* aArea);
+  explicit DefaultArea(HTMLAreaElement* aArea);
 
   virtual bool IsInside(nscoord x, nscoord y) const override;
   virtual void Draw(nsIFrame* aFrame, DrawTarget& aDrawTarget,
@@ -276,7 +278,7 @@ public:
   virtual void GetRect(nsIFrame* aFrame, nsRect& aRect) override;
 };
 
-DefaultArea::DefaultArea(nsIContent* aArea)
+DefaultArea::DefaultArea(HTMLAreaElement* aArea)
   : Area(aArea)
 {
 }
@@ -311,7 +313,7 @@ void DefaultArea::GetRect(nsIFrame* aFrame, nsRect& aRect)
 
 class RectArea : public Area {
 public:
-  explicit RectArea(nsIContent* aArea);
+  explicit RectArea(HTMLAreaElement* aArea);
 
   virtual void ParseCoords(const nsAString& aSpec) override;
   virtual bool IsInside(nscoord x, nscoord y) const override;
@@ -321,7 +323,7 @@ public:
   virtual void GetRect(nsIFrame* aFrame, nsRect& aRect) override;
 };
 
-RectArea::RectArea(nsIContent* aArea)
+RectArea::RectArea(HTMLAreaElement* aArea)
   : Area(aArea)
 {
 }
@@ -417,7 +419,7 @@ void RectArea::GetRect(nsIFrame* aFrame, nsRect& aRect)
 
 class PolyArea : public Area {
 public:
-  explicit PolyArea(nsIContent* aArea);
+  explicit PolyArea(HTMLAreaElement* aArea);
 
   virtual void ParseCoords(const nsAString& aSpec) override;
   virtual bool IsInside(nscoord x, nscoord y) const override;
@@ -427,7 +429,7 @@ public:
   virtual void GetRect(nsIFrame* aFrame, nsRect& aRect) override;
 };
 
-PolyArea::PolyArea(nsIContent* aArea)
+PolyArea::PolyArea(HTMLAreaElement* aArea)
   : Area(aArea)
 {
 }
@@ -574,7 +576,7 @@ void PolyArea::GetRect(nsIFrame* aFrame, nsRect& aRect)
 
 class CircleArea : public Area {
 public:
-  explicit CircleArea(nsIContent* aArea);
+  explicit CircleArea(HTMLAreaElement* aArea);
 
   virtual void ParseCoords(const nsAString& aSpec) override;
   virtual bool IsInside(nscoord x, nscoord y) const override;
@@ -584,7 +586,7 @@ public:
   virtual void GetRect(nsIFrame* aFrame, nsRect& aRect) override;
 };
 
-CircleArea::CircleArea(nsIContent* aArea)
+CircleArea::CircleArea(HTMLAreaElement* aArea)
   : Area(aArea)
 {
 }
@@ -677,9 +679,9 @@ void CircleArea::GetRect(nsIFrame* aFrame, nsRect& aRect)
 //----------------------------------------------------------------------
 
 
-nsImageMap::nsImageMap() :
-  mImageFrame(nullptr),
-  mContainsBlockContents(false)
+nsImageMap::nsImageMap()
+  : mImageFrame(nullptr)
+  , mConsiderWholeSubtree(false)
 {
 }
 
@@ -747,38 +749,25 @@ nsImageMap::Init(nsImageFrame* aImageFrame, nsIContent* aMap)
 }
 
 void
-nsImageMap::SearchForAreas(nsIContent* aParent, bool& aFoundArea,
-                           bool& aFoundAnchor)
+nsImageMap::SearchForAreas(nsIContent* aParent)
 {
-  uint32_t i, n = aParent->GetChildCount();
+  // Look for  elements.
+  for (nsIContent* child = aParent->GetFirstChild();
+       child;
+       child = child->GetNextSibling()) {
+    if (auto* area = HTMLAreaElement::FromContent(child)) {
+      AddArea(area);
 
-  // Look for  or  elements. We'll use whichever type we find first.
-  for (i = 0; i < n; i++) {
-    nsIContent *child = aParent->GetChildAt(i);
-
-    // If we haven't determined that the map element contains an
-    //  element yet, then look for .
-    if (!aFoundAnchor && child->IsHTMLElement(nsGkAtoms::area)) {
-      aFoundArea = true;
-      AddArea(child);
-
-      // Continue to next child. This stops mContainsBlockContents from
+      // Continue to next child. This stops mConsiderWholeSubtree from
       // getting set. It also makes us ignore children of s which
       // is consistent with how we react to dynamic insertion of such
       // children.
       continue;
     }
 
-    // If we haven't determined that the map element contains an
-    //  element yet, then look for .
-    if (!aFoundArea && child->IsHTMLElement(nsGkAtoms::a)) {
-      aFoundAnchor = true;
-      AddArea(child);
-    }
-
     if (child->IsElement()) {
-      mContainsBlockContents = true;
-      SearchForAreas(child, aFoundArea, aFoundAnchor);
+      mConsiderWholeSubtree = true;
+      SearchForAreas(child);
     }
   }
 }
@@ -789,11 +778,9 @@ nsImageMap::UpdateAreas()
   // Get rid of old area data
   FreeAreas();
 
-  bool foundArea = false;
-  bool foundAnchor = false;
-  mContainsBlockContents = false;
+  mConsiderWholeSubtree = false;
+  SearchForAreas(mMap);
 
-  SearchForAreas(mMap, foundArea, foundAnchor);
 #ifdef ACCESSIBILITY
   if (nsAccessibilityService* accService = GetAccService()) {
     accService->UpdateImageMap(mImageFrame);
@@ -802,7 +789,7 @@ nsImageMap::UpdateAreas()
 }
 
 void
-nsImageMap::AddArea(nsIContent* aArea)
+nsImageMap::AddArea(HTMLAreaElement* aArea)
 {
   static nsIContent::AttrValuesArray strings[] =
     {&nsGkAtoms::rect, &nsGkAtoms::rectangle,
@@ -888,7 +875,7 @@ nsImageMap::Draw(nsIFrame* aFrame, DrawTarget& aDrawTarget,
 void
 nsImageMap::MaybeUpdateAreas(nsIContent *aContent)
 {
-  if (aContent == mMap || mContainsBlockContents) {
+  if (aContent == mMap || mConsiderWholeSubtree) {
     UpdateAreas();
   }
 }
diff --git a/layout/generic/nsImageMap.h b/layout/generic/nsImageMap.h
index d79b129fab99..1909411adfef 100644
--- a/layout/generic/nsImageMap.h
+++ b/layout/generic/nsImageMap.h
@@ -22,6 +22,12 @@ class nsIFrame;
 class nsIContent;
 struct nsRect;
 
+namespace mozilla {
+namespace dom {
+class HTMLAreaElement;
+}
+}
+
 class nsImageMap final : public nsStubMutationObserver,
                          public nsIDOMEventListener
 {
@@ -82,18 +88,21 @@ protected:
   void FreeAreas();
 
   void UpdateAreas();
-  void SearchForAreas(nsIContent* aParent,
-                      bool& aFoundArea,
-                      bool& aFoundAnchor);
 
-  void AddArea(nsIContent* aArea);
+  void SearchForAreas(nsIContent* aParent);
+
+  void AddArea(mozilla::dom::HTMLAreaElement* aArea);
 
   void MaybeUpdateAreas(nsIContent *aContent);
 
   nsImageFrame* mImageFrame;  // the frame that owns us
   nsCOMPtr mMap;
   AutoTArray mAreas; // almost always has some entries
-  bool mContainsBlockContents;
+
+  // This is set when we search for all area children and tells us whether we
+  // should consider the whole subtree or just direct children when we get
+  // content notifications about changes inside the map subtree.
+  bool mConsiderWholeSubtree;
 };
 
 #endif /* nsImageMap_h */
diff --git a/memory/build/Utils.h b/memory/build/Utils.h
index 724560394451..c8a96f8b0c48 100644
--- a/memory/build/Utils.h
+++ b/memory/build/Utils.h
@@ -7,6 +7,7 @@
 #ifndef Utils_h
 #define Utils_h
 
+#include "mozilla/CheckedInt.h"
 #include "mozilla/TemplateLib.h"
 
 // Helper for log2 of powers of 2 at compile time.
@@ -41,4 +42,86 @@ constexpr unsigned long long int operator"" _MiB(unsigned long long int aNum)
   return aNum * 1024_KiB;
 }
 
+constexpr long double operator""_percent(long double aPercent)
+{
+  return aPercent / 100;
+}
+
+// Helper for (fast) comparison of fractions without involving divisions or
+// floats.
+class Fraction
+{
+public:
+  explicit constexpr Fraction(size_t aNumerator, size_t aDenominator)
+    : mNumerator(aNumerator)
+    , mDenominator(aDenominator)
+  {
+  }
+
+  MOZ_IMPLICIT constexpr Fraction(long double aValue)
+    // We use an arbitrary power of two as denominator that provides enough
+    // precision for our use case.
+    : mNumerator(aValue * 4096)
+    , mDenominator(4096)
+  {
+  }
+
+  inline bool operator<(const Fraction& aOther) const
+  {
+#ifndef MOZ_DEBUG
+    // We are comparing A / B < C / D, with all A, B, C and D being positive
+    // numbers. Multiplying both sides with B * D, we have:
+    // (A * B * D) / B < (C * B * D) / D, which can then be simplified as
+    // A * D < C * B. When can thus compare our fractions without actually
+    // doing any division.
+    // This however assumes the multiplied quantities are small enough not
+    // to overflow the multiplication. We use CheckedInt on debug builds
+    // to enforce the assumption.
+    return mNumerator * aOther.mDenominator < aOther.mNumerator * mDenominator;
+#else
+    mozilla::CheckedInt numerator(mNumerator);
+    mozilla::CheckedInt denominator(mDenominator);
+    // value() asserts when the multiplication overflowed.
+    size_t lhs = (numerator * aOther.mDenominator).value();
+    size_t rhs = (aOther.mNumerator * denominator).value();
+    return lhs < rhs;
+#endif
+  }
+
+  inline bool operator>(const Fraction& aOther) const { return aOther < *this; }
+
+  inline bool operator>=(const Fraction& aOther) const
+  {
+    return !(*this < aOther);
+  }
+
+  inline bool operator<=(const Fraction& aOther) const
+  {
+    return !(*this > aOther);
+  }
+
+  inline bool operator==(const Fraction& aOther) const
+  {
+#ifndef MOZ_DEBUG
+    // Same logic as operator<
+    return mNumerator * aOther.mDenominator == aOther.mNumerator * mDenominator;
+#else
+    mozilla::CheckedInt numerator(mNumerator);
+    mozilla::CheckedInt denominator(mDenominator);
+    size_t lhs = (numerator * aOther.mDenominator).value();
+    size_t rhs = (aOther.mNumerator * denominator).value();
+    return lhs == rhs;
+#endif
+  }
+
+  inline bool operator!=(const Fraction& aOther) const
+  {
+    return !(*this == aOther);
+  }
+
+private:
+  size_t mNumerator;
+  size_t mDenominator;
+};
+
 #endif
diff --git a/memory/build/mozjemalloc.cpp b/memory/build/mozjemalloc.cpp
index 0831646fc65d..d7aba0101acf 100644
--- a/memory/build/mozjemalloc.cpp
+++ b/memory/build/mozjemalloc.cpp
@@ -514,25 +514,6 @@ static Atomic gRecycledSize;
 
 static size_t opt_dirty_max = DIRTY_MAX_DEFAULT;
 
-// RUN_MAX_OVRHD indicates maximum desired run header overhead.  Runs are sized
-// as small as possible such that this setting is still honored, without
-// violating other constraints.  The goal is to make runs as small as possible
-// without exceeding a per run external fragmentation threshold.
-//
-// We use binary fixed point math for overhead computations, where the binary
-// point is implicitly RUN_BFP bits to the left.
-//
-// Note that it is possible to set RUN_MAX_OVRHD low enough that it cannot be
-// honored for some/all object sizes, since there is one bit of header overhead
-// per object (plus a constant).  This constraint is relaxed (ignored) for runs
-// that are so small that the per-region overhead is greater than:
-//
-//   (RUN_MAX_OVRHD / (reg_size << (3+RUN_BFP))
-#define RUN_BFP 12
-//                                    \/   Implicit binary fixed point.
-#define RUN_MAX_OVRHD 0x0000003dU
-#define RUN_MAX_OVRHD_RELAX 0x00001800U
-
 // Return the smallest chunk multiple that is >= s.
 #define CHUNK_CEILING(s) (((s) + kChunkSizeMask) & ~kChunkSizeMask)
 
@@ -856,21 +837,35 @@ struct GetDoublyLinkedListElement
 struct arena_run_t
 {
 #if defined(MOZ_DIAGNOSTIC_ASSERT_ENABLED)
-  uint32_t magic;
+  uint32_t mMagic;
 #define ARENA_RUN_MAGIC 0x384adf93
+
+  // On 64-bit platforms, having the arena_bin_t pointer following
+  // the mMagic field means there's padding between both fields, making
+  // the run header larger than necessary.
+  // But when MOZ_DIAGNOSTIC_ASSERT_ENABLED is not set, starting the
+  // header with this field followed by the arena_bin_t pointer yields
+  // the same padding. We do want the mMagic field to appear first, so
+  // depending whether MOZ_DIAGNOSTIC_ASSERT_ENABLED is set or not, we
+  // move some field to avoid padding.
+
+  // Number of free regions in run.
+  unsigned mNumFree;
 #endif
 
   // Bin this run is associated with.
-  arena_bin_t* bin;
+  arena_bin_t* mBin;
 
   // Index of first element that might have a free region.
-  unsigned regs_minelm;
+  unsigned mRegionsMinElement;
 
+#if !defined(MOZ_DIAGNOSTIC_ASSERT_ENABLED)
   // Number of free regions in run.
-  unsigned nfree;
+  unsigned mNumFree;
+#endif
 
   // Bitmask of in-use regions (0: in use, 1: free).
-  unsigned regs_mask[1]; // Dynamically sized.
+  unsigned mRegionsMask[1]; // Dynamically sized.
 };
 
 struct arena_bin_t
@@ -895,7 +890,7 @@ struct arena_bin_t
   // Total number of regions in a run for this bin's size class.
   uint32_t mRunNumRegions;
 
-  // Number of elements in a run's regs_mask for this bin's size class.
+  // Number of elements in a run's mRegionsMask for this bin's size class.
   uint32_t mRunNumRegionsMask;
 
   // Offset of first region in a run for this bin's size class.
@@ -903,6 +898,25 @@ struct arena_bin_t
 
   // Current number of runs in this bin, full or otherwise.
   unsigned long mNumRuns;
+
+  // Amount of overhead runs are allowed to have.
+  static constexpr long double kRunOverhead = 1.6_percent;
+  static constexpr long double kRunRelaxedOverhead = 2.4_percent;
+
+  // Initialize a bin for the given size class.
+  // The generated run sizes, for a page size of 4 KiB, are:
+  //   size|run       size|run       size|run       size|run
+  //  class|size     class|size     class|size     class|size
+  //     4   4 KiB      8   4 KiB     16   4 KiB     32   4 KiB
+  //    48   4 KiB     64   4 KiB     80   4 KiB     96   4 KiB
+  //   112   4 KiB    128   8 KiB    144   4 KiB    160   8 KiB
+  //   176   4 KiB    192   4 KiB    208   8 KiB    224   4 KiB
+  //   240   4 KiB    256  16 KiB    272   4 KiB    288   4 KiB
+  //   304  12 KiB    320  12 KiB    336   4 KiB    352   8 KiB
+  //   368   4 KiB    384   8 KiB    400  20 KiB    416  16 KiB
+  //   432  12 KiB    448   4 KiB    464  16 KiB    480   8 KiB
+  //   496  20 KiB    512  32 KiB   1024  64 KiB   2048 128 KiB
+  inline void Init(SizeClass aSizeClass);
 };
 
 struct arena_t
@@ -987,10 +1001,7 @@ private:
 
   void DeallocChunk(arena_chunk_t* aChunk);
 
-  arena_run_t* AllocRun(arena_bin_t* aBin,
-                        size_t aSize,
-                        bool aLarge,
-                        bool aZero);
+  arena_run_t* AllocRun(size_t aSize, bool aLarge, bool aZero);
 
   void DallocRun(arena_run_t* aRun, bool aDirty);
 
@@ -1010,10 +1021,6 @@ private:
                    size_t aNewSize,
                    bool dirty);
 
-  inline void* MallocBinEasy(arena_bin_t* aBin, arena_run_t* aRun);
-
-  void* MallocBinHard(arena_bin_t* aBin);
-
   arena_run_t* GetNonFullBinRun(arena_bin_t* aBin);
 
   inline void* MallocSmall(size_t aSize, bool aZero);
@@ -2264,14 +2271,14 @@ arena_run_reg_alloc(arena_run_t* run, arena_bin_t* bin)
   void* ret;
   unsigned i, mask, bit, regind;
 
-  MOZ_DIAGNOSTIC_ASSERT(run->magic == ARENA_RUN_MAGIC);
-  MOZ_ASSERT(run->regs_minelm < bin->mRunNumRegionsMask);
+  MOZ_DIAGNOSTIC_ASSERT(run->mMagic == ARENA_RUN_MAGIC);
+  MOZ_ASSERT(run->mRegionsMinElement < bin->mRunNumRegionsMask);
 
-  // Move the first check outside the loop, so that run->regs_minelm can
+  // Move the first check outside the loop, so that run->mRegionsMinElement can
   // be updated unconditionally, without the possibility of updating it
   // multiple times.
-  i = run->regs_minelm;
-  mask = run->regs_mask[i];
+  i = run->mRegionsMinElement;
+  mask = run->mRegionsMask[i];
   if (mask != 0) {
     // Usable allocation found.
     bit = CountTrailingZeroes32(mask);
@@ -2283,13 +2290,13 @@ arena_run_reg_alloc(arena_run_t* run, arena_bin_t* bin)
 
     // Clear bit.
     mask ^= (1U << bit);
-    run->regs_mask[i] = mask;
+    run->mRegionsMask[i] = mask;
 
     return ret;
   }
 
   for (i++; i < bin->mRunNumRegionsMask; i++) {
-    mask = run->regs_mask[i];
+    mask = run->mRegionsMask[i];
     if (mask != 0) {
       // Usable allocation found.
       bit = CountTrailingZeroes32(mask);
@@ -2301,11 +2308,11 @@ arena_run_reg_alloc(arena_run_t* run, arena_bin_t* bin)
 
       // Clear bit.
       mask ^= (1U << bit);
-      run->regs_mask[i] = mask;
+      run->mRegionsMask[i] = mask;
 
       // Make a note that nothing before this element
       // contains a free region.
-      run->regs_minelm = i; // Low payoff: + (mask == 0);
+      run->mRegionsMinElement = i; // Low payoff: + (mask == 0);
 
       return ret;
     }
@@ -2343,7 +2350,7 @@ arena_run_reg_dalloc(arena_run_t* run, arena_bin_t* bin, void* ptr, size_t size)
   // clang-format on
   unsigned diff, regind, elm, bit;
 
-  MOZ_DIAGNOSTIC_ASSERT(run->magic == ARENA_RUN_MAGIC);
+  MOZ_DIAGNOSTIC_ASSERT(run->mMagic == ARENA_RUN_MAGIC);
   static_assert(((sizeof(size_invs)) / sizeof(unsigned)) + 3 >=
                   kNumQuantumClasses,
                 "size_invs doesn't have enough values");
@@ -2352,33 +2359,8 @@ arena_run_reg_dalloc(arena_run_t* run, arena_bin_t* bin, void* ptr, size_t size)
   // actual division here can reduce allocator throughput by over 20%!
   diff =
     (unsigned)((uintptr_t)ptr - (uintptr_t)run - bin->mRunFirstRegionOffset);
-  if ((size & (size - 1)) == 0) {
-    // log2_table allows fast division of a power of two in the
-    // [1..128] range.
-    //
-    // (x / divisor) becomes (x >> log2_table[divisor - 1]).
-    // clang-format off
-    static const unsigned char log2_table[] = {
-      0, 1, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4,
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7
-    };
-    // clang-format on
-
-    if (size <= 128) {
-      regind = (diff >> log2_table[size - 1]);
-    } else if (size <= 32768) {
-      regind = diff >> (8 + log2_table[(size >> 8) - 1]);
-    } else {
-      // The run size is too large for us to use the lookup
-      // table.  Use real division.
-      regind = diff / size;
-    }
+  if (mozilla::IsPowerOfTwo(size)) {
+    regind = diff >> FloorLog2(size);
   } else if (size <= ((sizeof(size_invs) / sizeof(unsigned)) * kQuantum) + 2) {
     regind = size_invs[(size / kQuantum) - 3] * diff;
     regind >>= SIZE_INV_SHIFT;
@@ -2393,12 +2375,12 @@ arena_run_reg_dalloc(arena_run_t* run, arena_bin_t* bin, void* ptr, size_t size)
   MOZ_DIAGNOSTIC_ASSERT(regind < bin->mRunNumRegions);
 
   elm = regind >> (LOG2(sizeof(int)) + 3);
-  if (elm < run->regs_minelm) {
-    run->regs_minelm = elm;
+  if (elm < run->mRegionsMinElement) {
+    run->mRegionsMinElement = elm;
   }
   bit = regind - (elm << (LOG2(sizeof(int)) + 3));
-  MOZ_DIAGNOSTIC_ASSERT((run->regs_mask[elm] & (1U << bit)) == 0);
-  run->regs_mask[elm] |= (1U << bit);
+  MOZ_DIAGNOSTIC_ASSERT((run->mRegionsMask[elm] & (1U << bit)) == 0);
+  run->mRegionsMask[elm] |= (1U << bit);
 #undef SIZE_INV
 #undef SIZE_INV_SHIFT
 }
@@ -2595,7 +2577,7 @@ arena_t::DeallocChunk(arena_chunk_t* aChunk)
 }
 
 arena_run_t*
-arena_t::AllocRun(arena_bin_t* aBin, size_t aSize, bool aLarge, bool aZero)
+arena_t::AllocRun(size_t aSize, bool aLarge, bool aZero)
 {
   arena_run_t* run;
   arena_chunk_map_t* mapelm;
@@ -2739,7 +2721,7 @@ arena_t::DallocRun(arena_run_t* aRun, bool aDirty)
   if ((chunk->map[run_ind].bits & CHUNK_MAP_LARGE) != 0) {
     size = chunk->map[run_ind].bits & ~gPageSizeMask;
   } else {
-    size = aRun->bin->mRunSize;
+    size = aRun->mBin->mRunSize;
   }
   run_pages = (size >> gPageSize2Pow);
 
@@ -2886,7 +2868,7 @@ arena_t::GetNonFullBinRun(arena_bin_t* aBin)
   // No existing runs have any space available.
 
   // Allocate a new run.
-  run = AllocRun(aBin, aBin->mRunSize, false, false);
+  run = AllocRun(aBin->mRunSize, false, false);
   if (!run) {
     return nullptr;
   }
@@ -2897,135 +2879,110 @@ arena_t::GetNonFullBinRun(arena_bin_t* aBin)
   }
 
   // Initialize run internals.
-  run->bin = aBin;
+  run->mBin = aBin;
 
   for (i = 0; i < aBin->mRunNumRegionsMask - 1; i++) {
-    run->regs_mask[i] = UINT_MAX;
+    run->mRegionsMask[i] = UINT_MAX;
   }
   remainder = aBin->mRunNumRegions & ((1U << (LOG2(sizeof(int)) + 3)) - 1);
   if (remainder == 0) {
-    run->regs_mask[i] = UINT_MAX;
+    run->mRegionsMask[i] = UINT_MAX;
   } else {
     // The last element has spare bits that need to be unset.
-    run->regs_mask[i] =
+    run->mRegionsMask[i] =
       (UINT_MAX >> ((1U << (LOG2(sizeof(int)) + 3)) - remainder));
   }
 
-  run->regs_minelm = 0;
+  run->mRegionsMinElement = 0;
 
-  run->nfree = aBin->mRunNumRegions;
+  run->mNumFree = aBin->mRunNumRegions;
 #if defined(MOZ_DIAGNOSTIC_ASSERT_ENABLED)
-  run->magic = ARENA_RUN_MAGIC;
+  run->mMagic = ARENA_RUN_MAGIC;
 #endif
 
   aBin->mNumRuns++;
   return run;
 }
 
-// bin->mCurrentRun must have space available before this function is called.
-void*
-arena_t::MallocBinEasy(arena_bin_t* aBin, arena_run_t* aRun)
+void
+arena_bin_t::Init(SizeClass aSizeClass)
 {
-  void* ret;
-
-  MOZ_DIAGNOSTIC_ASSERT(aRun->magic == ARENA_RUN_MAGIC);
-  MOZ_DIAGNOSTIC_ASSERT(aRun->nfree > 0);
-
-  ret = arena_run_reg_alloc(aRun, aBin);
-  MOZ_DIAGNOSTIC_ASSERT(ret);
-  aRun->nfree--;
-
-  return ret;
-}
-
-// Re-fill aBin->mCurrentRun, then call arena_t::MallocBinEasy().
-void*
-arena_t::MallocBinHard(arena_bin_t* aBin)
-{
-  aBin->mCurrentRun = GetNonFullBinRun(aBin);
-  if (!aBin->mCurrentRun) {
-    return nullptr;
-  }
-  MOZ_DIAGNOSTIC_ASSERT(aBin->mCurrentRun->magic == ARENA_RUN_MAGIC);
-  MOZ_DIAGNOSTIC_ASSERT(aBin->mCurrentRun->nfree > 0);
-
-  return MallocBinEasy(aBin, aBin->mCurrentRun);
-}
-
-// Calculate bin->mRunSize such that it meets the following constraints:
-//
-//   *) bin->mRunSize >= min_run_size
-//   *) bin->mRunSize <= gMaxLargeClass
-//   *) bin->mRunSize <= gMaxBinClass
-//   *) run header overhead <= RUN_MAX_OVRHD (or header overhead relaxed).
-//
-// bin->mRunNumRegions, bin->mRunNumRegionsMask, and bin->mRunFirstRegionOffset are
-// also calculated here, since these settings are all interdependent.
-static size_t
-arena_bin_run_size_calc(arena_bin_t* bin, size_t min_run_size)
-{
-  size_t try_run_size, good_run_size;
-  unsigned good_nregs, good_mask_nelms, good_reg0_offset;
+  size_t try_run_size;
   unsigned try_nregs, try_mask_nelms, try_reg0_offset;
+  // Size of the run header, excluding mRegionsMask.
+  static const size_t kFixedHeaderSize = offsetof(arena_run_t, mRegionsMask);
 
-  MOZ_ASSERT(min_run_size >= gPageSize);
-  MOZ_ASSERT(min_run_size <= gMaxLargeClass);
+  MOZ_ASSERT(aSizeClass.Size() <= gMaxBinClass);
 
-  // Calculate known-valid settings before entering the mRunSize
-  // expansion loop, so that the first part of the loop always copies
-  // valid settings.
-  //
-  // The do..while loop iteratively reduces the number of regions until
-  // the run header and the regions no longer overlap.  A closed formula
-  // would be quite messy, since there is an interdependency between the
-  // header's mask length and the number of regions.
-  try_run_size = min_run_size;
-  try_nregs = ((try_run_size - sizeof(arena_run_t)) / bin->mSizeClass) +
-              1; // Counter-act try_nregs-- in loop.
-  do {
-    try_nregs--;
-    try_mask_nelms =
-      (try_nregs >> (LOG2(sizeof(int)) + 3)) +
-      ((try_nregs & ((1U << (LOG2(sizeof(int)) + 3)) - 1)) ? 1 : 0);
-    try_reg0_offset = try_run_size - (try_nregs * bin->mSizeClass);
-  } while (sizeof(arena_run_t) + (sizeof(unsigned) * (try_mask_nelms - 1)) >
-           try_reg0_offset);
+  try_run_size = gPageSize;
+
+  mCurrentRun = nullptr;
+  mNonFullRuns.Init();
+  mSizeClass = aSizeClass.Size();
+  mNumRuns = 0;
 
   // mRunSize expansion loop.
-  do {
-    // Copy valid settings before trying more aggressive settings.
-    good_run_size = try_run_size;
-    good_nregs = try_nregs;
-    good_mask_nelms = try_mask_nelms;
-    good_reg0_offset = try_reg0_offset;
-
-    // Try more aggressive settings.
-    try_run_size += gPageSize;
-    try_nregs = ((try_run_size - sizeof(arena_run_t)) / bin->mSizeClass) +
+  while (true) {
+    try_nregs = ((try_run_size - kFixedHeaderSize) / mSizeClass) +
                 1; // Counter-act try_nregs-- in loop.
+
+    // The do..while loop iteratively reduces the number of regions until
+    // the run header and the regions no longer overlap.  A closed formula
+    // would be quite messy, since there is an interdependency between the
+    // header's mask length and the number of regions.
     do {
       try_nregs--;
       try_mask_nelms =
         (try_nregs >> (LOG2(sizeof(int)) + 3)) +
         ((try_nregs & ((1U << (LOG2(sizeof(int)) + 3)) - 1)) ? 1 : 0);
-      try_reg0_offset = try_run_size - (try_nregs * bin->mSizeClass);
-    } while (sizeof(arena_run_t) + (sizeof(unsigned) * (try_mask_nelms - 1)) >
+      try_reg0_offset = try_run_size - (try_nregs * mSizeClass);
+    } while (kFixedHeaderSize + (sizeof(unsigned) * try_mask_nelms) >
              try_reg0_offset);
-  } while (try_run_size <= gMaxLargeClass &&
-           RUN_MAX_OVRHD * (bin->mSizeClass << 3) > RUN_MAX_OVRHD_RELAX &&
-           (try_reg0_offset << RUN_BFP) > RUN_MAX_OVRHD * try_run_size);
 
-  MOZ_ASSERT(sizeof(arena_run_t) + (sizeof(unsigned) * (good_mask_nelms - 1)) <=
-             good_reg0_offset);
-  MOZ_ASSERT((good_mask_nelms << (LOG2(sizeof(int)) + 3)) >= good_nregs);
+    // Don't allow runs larger than the largest possible large size class.
+    if (try_run_size > gMaxLargeClass) {
+      break;
+    }
+
+    // Try to keep the run overhead below kRunOverhead.
+    if (Fraction(try_reg0_offset, try_run_size) <= kRunOverhead) {
+      break;
+    }
+
+    // If the overhead is larger than the size class, it means the size class
+    // is small and doesn't align very well with the header. It's desirable to
+    // have smaller run sizes for them, so relax the overhead requirement.
+    if (try_reg0_offset > mSizeClass) {
+      if (Fraction(try_reg0_offset, try_run_size) <= kRunRelaxedOverhead) {
+        break;
+      }
+    }
+
+    // The run header includes one bit per region of the given size. For sizes
+    // small enough, the number of regions is large enough that growing the run
+    // size barely moves the needle for the overhead because of all those bits.
+    // For example, for a size of 8 bytes, adding 4KiB to the run size adds
+    // close to 512 bits to the header, which is 64 bytes.
+    // With such overhead, there is no way to get to the wanted overhead above,
+    // so we give up if the required size for mRegionsMask more than doubles the
+    // size of the run header.
+    if (try_mask_nelms * sizeof(unsigned) >= kFixedHeaderSize) {
+      break;
+    }
+
+    // Try more aggressive settings.
+    try_run_size += gPageSize;
+  }
+
+  MOZ_ASSERT(kFixedHeaderSize + (sizeof(unsigned) * try_mask_nelms) <=
+             try_reg0_offset);
+  MOZ_ASSERT((try_mask_nelms << (LOG2(sizeof(int)) + 3)) >= try_nregs);
 
   // Copy final settings.
-  bin->mRunSize = good_run_size;
-  bin->mRunNumRegions = good_nregs;
-  bin->mRunNumRegionsMask = good_mask_nelms;
-  bin->mRunFirstRegionOffset = good_reg0_offset;
-
-  return good_run_size;
+  mRunSize = try_run_size;
+  mRunNumRegions = try_nregs;
+  mRunNumRegionsMask = try_mask_nelms;
+  mRunFirstRegionOffset = try_reg0_offset;
 }
 
 void*
@@ -3055,12 +3012,18 @@ arena_t::MallocSmall(size_t aSize, bool aZero)
 
   {
     MutexAutoLock lock(mLock);
-    if ((run = bin->mCurrentRun) && run->nfree > 0) {
-      ret = MallocBinEasy(bin, run);
-    } else {
-      ret = MallocBinHard(bin);
+    run = bin->mCurrentRun;
+    if (MOZ_UNLIKELY(!run || run->mNumFree == 0)) {
+      run = bin->mCurrentRun = GetNonFullBinRun(bin);
     }
-
+    if (MOZ_UNLIKELY(!run)) {
+      return nullptr;
+    }
+    MOZ_DIAGNOSTIC_ASSERT(run->mMagic == ARENA_RUN_MAGIC);
+    MOZ_DIAGNOSTIC_ASSERT(run->mNumFree > 0);
+    ret = arena_run_reg_alloc(run, bin);
+    MOZ_DIAGNOSTIC_ASSERT(ret);
+    run->mNumFree--;
     if (!ret) {
       return nullptr;
     }
@@ -3091,7 +3054,7 @@ arena_t::MallocLarge(size_t aSize, bool aZero)
 
   {
     MutexAutoLock lock(mLock);
-    ret = AllocRun(nullptr, aSize, true, aZero);
+    ret = AllocRun(aSize, true, aZero);
     if (!ret) {
       return nullptr;
     }
@@ -3145,7 +3108,7 @@ arena_t::Palloc(size_t aAlignment, size_t aSize, size_t aAllocSize)
 
   {
     MutexAutoLock lock(mLock);
-    ret = AllocRun(nullptr, aAllocSize, true, false);
+    ret = AllocRun(aAllocSize, true, false);
     if (!ret) {
       return nullptr;
     }
@@ -3290,8 +3253,8 @@ arena_salloc(const void* ptr)
   MOZ_DIAGNOSTIC_ASSERT((mapbits & CHUNK_MAP_ALLOCATED) != 0);
   if ((mapbits & CHUNK_MAP_LARGE) == 0) {
     arena_run_t* run = (arena_run_t*)(mapbits & ~gPageSizeMask);
-    MOZ_DIAGNOSTIC_ASSERT(run->magic == ARENA_RUN_MAGIC);
-    ret = run->bin->mSizeClass;
+    MOZ_DIAGNOSTIC_ASSERT(run->mMagic == ARENA_RUN_MAGIC);
+    ret = run->mBin->mSizeClass;
   } else {
     ret = mapbits & ~gPageSizeMask;
     MOZ_DIAGNOSTIC_ASSERT(ret != 0);
@@ -3470,13 +3433,13 @@ MozJemalloc::jemalloc_ptr_info(const void* aPtr, jemalloc_ptr_info_t* aInfo)
 
   // It must be a small allocation.
   auto run = (arena_run_t*)(mapbits & ~gPageSizeMask);
-  MOZ_DIAGNOSTIC_ASSERT(run->magic == ARENA_RUN_MAGIC);
+  MOZ_DIAGNOSTIC_ASSERT(run->mMagic == ARENA_RUN_MAGIC);
 
   // The allocation size is stored in the run metadata.
-  size_t size = run->bin->mSizeClass;
+  size_t size = run->mBin->mSizeClass;
 
   // Address of the first possible pointer in the run after its headers.
-  uintptr_t reg0_addr = (uintptr_t)run + run->bin->mRunFirstRegionOffset;
+  uintptr_t reg0_addr = (uintptr_t)run + run->mBin->mRunFirstRegionOffset;
   if (aPtr < (void*)reg0_addr) {
     // In the run header.
     *aInfo = { TagUnknown, nullptr, 0 };
@@ -3493,7 +3456,7 @@ MozJemalloc::jemalloc_ptr_info(const void* aPtr, jemalloc_ptr_info_t* aInfo)
   unsigned elm = regind >> (LOG2(sizeof(int)) + 3);
   unsigned bit = regind - (elm << (LOG2(sizeof(int)) + 3));
   PtrInfoTag tag =
-    ((run->regs_mask[elm] & (1U << bit))) ? TagFreedSmall : TagLiveSmall;
+    ((run->mRegionsMask[elm] & (1U << bit))) ? TagFreedSmall : TagLiveSmall;
 
   *aInfo = { tag, addr, size };
 }
@@ -3519,8 +3482,8 @@ arena_t::DallocSmall(arena_chunk_t* aChunk,
   size_t size;
 
   run = (arena_run_t*)(aMapElm->bits & ~gPageSizeMask);
-  MOZ_DIAGNOSTIC_ASSERT(run->magic == ARENA_RUN_MAGIC);
-  bin = run->bin;
+  MOZ_DIAGNOSTIC_ASSERT(run->mMagic == ARENA_RUN_MAGIC);
+  bin = run->mBin;
   size = bin->mSizeClass;
   MOZ_DIAGNOSTIC_ASSERT(uintptr_t(aPtr) >=
                         uintptr_t(run) + bin->mRunFirstRegionOffset);
@@ -3531,9 +3494,9 @@ arena_t::DallocSmall(arena_chunk_t* aChunk,
   memset(aPtr, kAllocPoison, size);
 
   arena_run_reg_dalloc(run, bin, aPtr, size);
-  run->nfree++;
+  run->mNumFree++;
 
-  if (run->nfree == bin->mRunNumRegions) {
+  if (run->mNumFree == bin->mRunNumRegions) {
     // Deallocate run.
     if (run == bin->mCurrentRun) {
       bin->mCurrentRun = nullptr;
@@ -3549,18 +3512,18 @@ arena_t::DallocSmall(arena_chunk_t* aChunk,
       bin->mNonFullRuns.Remove(run_mapelm);
     }
 #if defined(MOZ_DIAGNOSTIC_ASSERT_ENABLED)
-    run->magic = 0;
+    run->mMagic = 0;
 #endif
     DallocRun(run, true);
     bin->mNumRuns--;
-  } else if (run->nfree == 1 && run != bin->mCurrentRun) {
+  } else if (run->mNumFree == 1 && run != bin->mCurrentRun) {
     // Make sure that bin->mCurrentRun always refers to the lowest
     // non-full run, if one exists.
     if (!bin->mCurrentRun) {
       bin->mCurrentRun = run;
     } else if (uintptr_t(run) < uintptr_t(bin->mCurrentRun)) {
       // Switch mCurrentRun.
-      if (bin->mCurrentRun->nfree > 0) {
+      if (bin->mCurrentRun->mNumFree > 0) {
         arena_chunk_t* runcur_chunk = GetChunkForPtr(bin->mCurrentRun);
         size_t runcur_pageind =
           (uintptr_t(bin->mCurrentRun) - uintptr_t(runcur_chunk)) >>
@@ -3792,8 +3755,6 @@ iralloc(void* aPtr, size_t aSize, arena_t* aArena)
 arena_t::arena_t()
 {
   unsigned i;
-  arena_bin_t* bin;
-  size_t prev_run_size;
 
   MOZ_RELEASE_ASSERT(mLock.Init());
 
@@ -3815,19 +3776,11 @@ arena_t::arena_t()
   mRunsAvail.Init();
 
   // Initialize bins.
-  prev_run_size = gPageSize;
   SizeClass sizeClass(1);
 
   for (i = 0;; i++) {
-    bin = &mBins[i];
-    bin->mCurrentRun = nullptr;
-    bin->mNonFullRuns.Init();
-
-    bin->mSizeClass = sizeClass.Size();
-
-    prev_run_size = arena_bin_run_size_calc(bin, prev_run_size);
-
-    bin->mNumRuns = 0;
+    arena_bin_t& bin = mBins[i];
+    bin.Init(sizeClass);
 
     // SizeClass doesn't want sizes larger than gMaxSubPageClass for now.
     if (sizeClass.Size() == gMaxSubPageClass) {
@@ -4577,11 +4530,11 @@ MozJemalloc::jemalloc_stats(jemalloc_stats_t* aStats)
 
         for (auto mapelm : bin->mNonFullRuns.iter()) {
           run = (arena_run_t*)(mapelm->bits & ~gPageSizeMask);
-          bin_unused += run->nfree * bin->mSizeClass;
+          bin_unused += run->mNumFree * bin->mSizeClass;
         }
 
         if (bin->mCurrentRun) {
-          bin_unused += bin->mCurrentRun->nfree * bin->mSizeClass;
+          bin_unused += bin->mCurrentRun->mNumFree * bin->mSizeClass;
         }
 
         arena_unused += bin_unused;
diff --git a/services/fxaccounts/FxAccountsStorage.jsm b/services/fxaccounts/FxAccountsStorage.jsm
index b15be9e9df08..81e838dd3a13 100644
--- a/services/fxaccounts/FxAccountsStorage.jsm
+++ b/services/fxaccounts/FxAccountsStorage.jsm
@@ -193,7 +193,7 @@ this.FxAccountsStorageManager.prototype = {
           result[fieldName] = this.cachedSecure[fieldName];
         }
       } else {
-        throw new Error("unexpected field '" + name + "'");
+        throw new Error("unexpected field '" + fieldName + "'");
       }
     }
     return result;
diff --git a/services/fxaccounts/FxAccountsWebChannel.jsm b/services/fxaccounts/FxAccountsWebChannel.jsm
index e642cc214479..c86eefc47667 100644
--- a/services/fxaccounts/FxAccountsWebChannel.jsm
+++ b/services/fxaccounts/FxAccountsWebChannel.jsm
@@ -510,8 +510,7 @@ this.FxAccountsWebChannelHelpers.prototype = {
                       ps.BUTTON_POS_1_DEFAULT;
 
     // If running in context of the browser chrome, window does not exist.
-    var targetWindow = typeof window === "undefined" ? null : window;
-    let pressed = Services.prompt.confirmEx(targetWindow, title, body, buttonFlags,
+    let pressed = Services.prompt.confirmEx(null, title, body, buttonFlags,
                                        continueLabel, null, null, null,
                                        {});
     return pressed === 0; // 0 is the "continue" button
diff --git a/testing/web-platform/meta/MANIFEST.json b/testing/web-platform/meta/MANIFEST.json
index 7800e4ce861a..d6633f249522 100644
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -315809,659 +315809,659 @@
      {}
     ]
    ],
-   "encrypted-media/clearkey-check-initdata-type.html": [
+   "encrypted-media/clearkey-check-initdata-type.https.html": [
     [
-     "/encrypted-media/clearkey-check-initdata-type.html",
+     "/encrypted-media/clearkey-check-initdata-type.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-events-session-closed-event.html": [
+   "encrypted-media/clearkey-events-session-closed-event.https.html": [
     [
-     "/encrypted-media/clearkey-events-session-closed-event.html",
+     "/encrypted-media/clearkey-events-session-closed-event.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-events.html": [
+   "encrypted-media/clearkey-events.https.html": [
     [
-     "/encrypted-media/clearkey-events.html",
+     "/encrypted-media/clearkey-events.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-generate-request-disallowed-input.html": [
+   "encrypted-media/clearkey-generate-request-disallowed-input.https.html": [
     [
-     "/encrypted-media/clearkey-generate-request-disallowed-input.html",
+     "/encrypted-media/clearkey-generate-request-disallowed-input.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-invalid-license.html": [
+   "encrypted-media/clearkey-invalid-license.https.html": [
     [
-     "/encrypted-media/clearkey-invalid-license.html",
+     "/encrypted-media/clearkey-invalid-license.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-keystatuses-multiple-sessions.html": [
+   "encrypted-media/clearkey-keystatuses-multiple-sessions.https.html": [
     [
-     "/encrypted-media/clearkey-keystatuses-multiple-sessions.html",
+     "/encrypted-media/clearkey-keystatuses-multiple-sessions.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-keystatuses.html": [
+   "encrypted-media/clearkey-keystatuses.https.html": [
     [
-     "/encrypted-media/clearkey-keystatuses.html",
+     "/encrypted-media/clearkey-keystatuses.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-destroy-persistent-license.html": [
+   "encrypted-media/clearkey-mp4-playback-destroy-persistent-license.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-destroy-persistent-license.html",
+     "/encrypted-media/clearkey-mp4-playback-destroy-persistent-license.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-persistent-license-events.html": [
+   "encrypted-media/clearkey-mp4-playback-persistent-license-events.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-persistent-license-events.html",
+     "/encrypted-media/clearkey-mp4-playback-persistent-license-events.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-persistent-license.html": [
+   "encrypted-media/clearkey-mp4-playback-persistent-license.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-persistent-license.html",
+     "/encrypted-media/clearkey-mp4-playback-persistent-license.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.html": [
+   "encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.html",
+     "/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-persistent-usage-record.html": [
+   "encrypted-media/clearkey-mp4-playback-persistent-usage-record.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-persistent-usage-record.html",
+     "/encrypted-media/clearkey-mp4-playback-persistent-usage-record.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.html": [
+   "encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.html",
+     "/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.html": [
+   "encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.html",
+     "/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.html": [
+   "encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.html",
+     "/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.html": [
+   "encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.html",
+     "/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.html": [
+   "encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.html",
+     "/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.html": [
+   "encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.html",
+     "/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-temporary-events.html": [
+   "encrypted-media/clearkey-mp4-playback-temporary-events.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-temporary-events.html",
+     "/encrypted-media/clearkey-mp4-playback-temporary-events.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.html": [
+   "encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.html",
+     "/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.html": [
+   "encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.html",
+     "/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-temporary-multikey.html": [
+   "encrypted-media/clearkey-mp4-playback-temporary-multikey.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-temporary-multikey.html",
+     "/encrypted-media/clearkey-mp4-playback-temporary-multikey.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-temporary-multisession.html": [
+   "encrypted-media/clearkey-mp4-playback-temporary-multisession.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-temporary-multisession.html",
+     "/encrypted-media/clearkey-mp4-playback-temporary-multisession.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.html": [
+   "encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.html",
+     "/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.html": [
+   "encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.html",
+     "/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.html": [
+   "encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.html",
+     "/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.html": [
+   "encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.html",
+     "/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-temporary-two-videos.html": [
+   "encrypted-media/clearkey-mp4-playback-temporary-two-videos.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-temporary-two-videos.html",
+     "/encrypted-media/clearkey-mp4-playback-temporary-two-videos.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.html": [
+   "encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.html",
+     "/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-playback-temporary.html": [
+   "encrypted-media/clearkey-mp4-playback-temporary.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-playback-temporary.html",
+     "/encrypted-media/clearkey-mp4-playback-temporary.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-requestmediakeysystemaccess.html": [
+   "encrypted-media/clearkey-mp4-requestmediakeysystemaccess.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.html",
+     "/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.html": [
+   "encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.html",
+     "/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.html": [
+   "encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.html",
+     "/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.html": [
+   "encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.html",
+     "/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-setmediakeys-at-same-time.html": [
+   "encrypted-media/clearkey-mp4-setmediakeys-at-same-time.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-setmediakeys-at-same-time.html",
+     "/encrypted-media/clearkey-mp4-setmediakeys-at-same-time.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.html": [
+   "encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.html",
+     "/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html": [
+   "encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html",
+     "/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.html": [
+   "encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.html",
+     "/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-setmediakeys.html": [
+   "encrypted-media/clearkey-mp4-setmediakeys.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-setmediakeys.html",
+     "/encrypted-media/clearkey-mp4-setmediakeys.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-syntax-mediakeys.html": [
+   "encrypted-media/clearkey-mp4-syntax-mediakeys.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-syntax-mediakeys.html",
+     "/encrypted-media/clearkey-mp4-syntax-mediakeys.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-syntax-mediakeysession.html": [
+   "encrypted-media/clearkey-mp4-syntax-mediakeysession.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-syntax-mediakeysession.html",
+     "/encrypted-media/clearkey-mp4-syntax-mediakeysession.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.html": [
+   "encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.html",
+     "/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-unique-origin.html": [
+   "encrypted-media/clearkey-mp4-unique-origin.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-unique-origin.html",
+     "/encrypted-media/clearkey-mp4-unique-origin.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-update-disallowed-input.html": [
+   "encrypted-media/clearkey-mp4-update-disallowed-input.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-update-disallowed-input.html",
+     "/encrypted-media/clearkey-mp4-update-disallowed-input.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-mp4-waiting-for-a-key.html": [
+   "encrypted-media/clearkey-mp4-waiting-for-a-key.https.html": [
     [
-     "/encrypted-media/clearkey-mp4-waiting-for-a-key.html",
+     "/encrypted-media/clearkey-mp4-waiting-for-a-key.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-not-callable-after-createsession.html": [
+   "encrypted-media/clearkey-not-callable-after-createsession.https.html": [
     [
-     "/encrypted-media/clearkey-not-callable-after-createsession.html",
+     "/encrypted-media/clearkey-not-callable-after-createsession.https.html",
      {}
     ]
    ],
-   "encrypted-media/clearkey-update-non-ascii-input.html": [
+   "encrypted-media/clearkey-update-non-ascii-input.https.html": [
     [
-     "/encrypted-media/clearkey-update-non-ascii-input.html",
+     "/encrypted-media/clearkey-update-non-ascii-input.https.html",
      {}
     ]
    ],
-   "encrypted-media/drm-check-initdata-type.html": [
+   "encrypted-media/drm-check-initdata-type.https.html": [
     [
-     "/encrypted-media/drm-check-initdata-type.html",
+     "/encrypted-media/drm-check-initdata-type.https.html",
      {}
     ]
    ],
-   "encrypted-media/drm-events-session-closed-event.html": [
+   "encrypted-media/drm-events-session-closed-event.https.html": [
     [
-     "/encrypted-media/drm-events-session-closed-event.html",
+     "/encrypted-media/drm-events-session-closed-event.https.html",
      {}
     ]
    ],
-   "encrypted-media/drm-events.html": [
+   "encrypted-media/drm-events.https.html": [
     [
-     "/encrypted-media/drm-events.html",
+     "/encrypted-media/drm-events.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-expiration.html": [
+   "encrypted-media/drm-expiration.https.html": [
     [
-     "/encrypted-media/drm-expiration.html",
+     "/encrypted-media/drm-expiration.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-generate-request-disallowed-input.html": [
+   "encrypted-media/drm-generate-request-disallowed-input.https.html": [
     [
-     "/encrypted-media/drm-generate-request-disallowed-input.html",
+     "/encrypted-media/drm-generate-request-disallowed-input.https.html",
      {}
     ]
    ],
-   "encrypted-media/drm-invalid-license.html": [
+   "encrypted-media/drm-invalid-license.https.html": [
     [
-     "/encrypted-media/drm-invalid-license.html",
+     "/encrypted-media/drm-invalid-license.https.html",
      {}
     ]
    ],
-   "encrypted-media/drm-keystatuses-multiple-sessions.html": [
+   "encrypted-media/drm-keystatuses-multiple-sessions.https.html": [
     [
-     "/encrypted-media/drm-keystatuses-multiple-sessions.html",
+     "/encrypted-media/drm-keystatuses-multiple-sessions.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-keystatuses.html": [
+   "encrypted-media/drm-keystatuses.https.html": [
     [
-     "/encrypted-media/drm-keystatuses.html",
+     "/encrypted-media/drm-keystatuses.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-onencrypted.html": [
+   "encrypted-media/drm-mp4-onencrypted.https.html": [
     [
-     "/encrypted-media/drm-mp4-onencrypted.html",
+     "/encrypted-media/drm-mp4-onencrypted.https.html",
      {}
     ]
    ],
-   "encrypted-media/drm-mp4-playback-destroy-persistent-license.html": [
+   "encrypted-media/drm-mp4-playback-destroy-persistent-license.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-destroy-persistent-license.html",
+     "/encrypted-media/drm-mp4-playback-destroy-persistent-license.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-persistent-license-events.html": [
+   "encrypted-media/drm-mp4-playback-persistent-license-events.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-persistent-license-events.html",
+     "/encrypted-media/drm-mp4-playback-persistent-license-events.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-persistent-license.html": [
+   "encrypted-media/drm-mp4-playback-persistent-license.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-persistent-license.html",
+     "/encrypted-media/drm-mp4-playback-persistent-license.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-persistent-usage-record-events.html": [
+   "encrypted-media/drm-mp4-playback-persistent-usage-record-events.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-persistent-usage-record-events.html",
+     "/encrypted-media/drm-mp4-playback-persistent-usage-record-events.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-persistent-usage-record.html": [
+   "encrypted-media/drm-mp4-playback-persistent-usage-record.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-persistent-usage-record.html",
+     "/encrypted-media/drm-mp4-playback-persistent-usage-record.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html": [
+   "encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html",
+     "/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-retrieve-persistent-license.html": [
+   "encrypted-media/drm-mp4-playback-retrieve-persistent-license.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-retrieve-persistent-license.html",
+     "/encrypted-media/drm-mp4-playback-retrieve-persistent-license.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.html": [
+   "encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.html",
+     "/encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-temporary-clear-encrypted.html": [
+   "encrypted-media/drm-mp4-playback-temporary-clear-encrypted.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.html",
+     "/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.html": [
+   "encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.html",
+     "/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-temporary-encrypted-clear.html": [
+   "encrypted-media/drm-mp4-playback-temporary-encrypted-clear.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.html",
+     "/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-temporary-events.html": [
+   "encrypted-media/drm-mp4-playback-temporary-events.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-temporary-events.html",
+     "/encrypted-media/drm-mp4-playback-temporary-events.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-temporary-expired.html": [
+   "encrypted-media/drm-mp4-playback-temporary-expired.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-temporary-expired.html",
+     "/encrypted-media/drm-mp4-playback-temporary-expired.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.html": [
+   "encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.html",
+     "/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-temporary-multikey-sequential.html": [
+   "encrypted-media/drm-mp4-playback-temporary-multikey-sequential.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.html",
+     "/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-temporary-multikey.html": [
+   "encrypted-media/drm-mp4-playback-temporary-multikey.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-temporary-multikey.html",
+     "/encrypted-media/drm-mp4-playback-temporary-multikey.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-temporary-multisession.html": [
+   "encrypted-media/drm-mp4-playback-temporary-multisession.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-temporary-multisession.html",
+     "/encrypted-media/drm-mp4-playback-temporary-multisession.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.html": [
+   "encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.html",
+     "/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.html": [
+   "encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.html",
+     "/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.html": [
+   "encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.html",
+     "/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.html": [
+   "encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.html",
+     "/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-temporary-two-videos.html": [
+   "encrypted-media/drm-mp4-playback-temporary-two-videos.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-temporary-two-videos.html",
+     "/encrypted-media/drm-mp4-playback-temporary-two-videos.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-temporary-waitingforkey.html": [
+   "encrypted-media/drm-mp4-playback-temporary-waitingforkey.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-temporary-waitingforkey.html",
+     "/encrypted-media/drm-mp4-playback-temporary-waitingforkey.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-playback-temporary.html": [
+   "encrypted-media/drm-mp4-playback-temporary.https.html": [
     [
-     "/encrypted-media/drm-mp4-playback-temporary.html",
+     "/encrypted-media/drm-mp4-playback-temporary.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-requestmediakeysystemaccess.html": [
+   "encrypted-media/drm-mp4-requestmediakeysystemaccess.https.html": [
     [
-     "/encrypted-media/drm-mp4-requestmediakeysystemaccess.html",
+     "/encrypted-media/drm-mp4-requestmediakeysystemaccess.https.html",
      {}
     ]
    ],
-   "encrypted-media/drm-mp4-reset-src-after-setmediakeys.html": [
+   "encrypted-media/drm-mp4-reset-src-after-setmediakeys.https.html": [
     [
-     "/encrypted-media/drm-mp4-reset-src-after-setmediakeys.html",
+     "/encrypted-media/drm-mp4-reset-src-after-setmediakeys.https.html",
      {}
     ]
    ],
-   "encrypted-media/drm-mp4-setmediakeys-again-after-playback.html": [
+   "encrypted-media/drm-mp4-setmediakeys-again-after-playback.https.html": [
     [
-     "/encrypted-media/drm-mp4-setmediakeys-again-after-playback.html",
+     "/encrypted-media/drm-mp4-setmediakeys-again-after-playback.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.html": [
+   "encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.https.html": [
     [
-     "/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.html",
+     "/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-setmediakeys-at-same-time.html": [
+   "encrypted-media/drm-mp4-setmediakeys-at-same-time.https.html": [
     [
-     "/encrypted-media/drm-mp4-setmediakeys-at-same-time.html",
+     "/encrypted-media/drm-mp4-setmediakeys-at-same-time.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.html": [
+   "encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html": [
     [
-     "/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.html",
+     "/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html": [
+   "encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html": [
     [
-     "/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html",
+     "/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.html": [
+   "encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.https.html": [
     [
-     "/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.html",
+     "/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-mp4-setmediakeys.html": [
+   "encrypted-media/drm-mp4-setmediakeys.https.html": [
     [
-     "/encrypted-media/drm-mp4-setmediakeys.html",
+     "/encrypted-media/drm-mp4-setmediakeys.https.html",
      {}
     ]
    ],
-   "encrypted-media/drm-mp4-syntax-mediakeys.html": [
+   "encrypted-media/drm-mp4-syntax-mediakeys.https.html": [
     [
-     "/encrypted-media/drm-mp4-syntax-mediakeys.html",
+     "/encrypted-media/drm-mp4-syntax-mediakeys.https.html",
      {}
     ]
    ],
-   "encrypted-media/drm-mp4-syntax-mediakeysession.html": [
+   "encrypted-media/drm-mp4-syntax-mediakeysession.https.html": [
     [
-     "/encrypted-media/drm-mp4-syntax-mediakeysession.html",
+     "/encrypted-media/drm-mp4-syntax-mediakeysession.https.html",
      {}
     ]
    ],
-   "encrypted-media/drm-mp4-syntax-mediakeysystemaccess.html": [
+   "encrypted-media/drm-mp4-syntax-mediakeysystemaccess.https.html": [
     [
-     "/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.html",
+     "/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.https.html",
      {}
     ]
    ],
-   "encrypted-media/drm-mp4-unique-origin.html": [
+   "encrypted-media/drm-mp4-unique-origin.https.html": [
     [
-     "/encrypted-media/drm-mp4-unique-origin.html",
+     "/encrypted-media/drm-mp4-unique-origin.https.html",
      {}
     ]
    ],
-   "encrypted-media/drm-mp4-waiting-for-a-key.html": [
+   "encrypted-media/drm-mp4-waiting-for-a-key.https.html": [
     [
-     "/encrypted-media/drm-mp4-waiting-for-a-key.html",
+     "/encrypted-media/drm-mp4-waiting-for-a-key.https.html",
      {
       "timeout": "long"
      }
     ]
    ],
-   "encrypted-media/drm-not-callable-after-createsession.html": [
+   "encrypted-media/drm-not-callable-after-createsession.https.html": [
     [
-     "/encrypted-media/drm-not-callable-after-createsession.html",
+     "/encrypted-media/drm-not-callable-after-createsession.https.html",
      {}
     ]
    ],
-   "encrypted-media/drm-temporary-license-type.html": [
+   "encrypted-media/drm-temporary-license-type.https.html": [
     [
-     "/encrypted-media/drm-temporary-license-type.html",
+     "/encrypted-media/drm-temporary-license-type.https.html",
      {
       "timeout": "long"
      }
@@ -316473,9 +316473,9 @@
      {}
     ]
    ],
-   "encrypted-media/idlharness.html": [
+   "encrypted-media/idlharness.https.html": [
     [
-     "/encrypted-media/idlharness.html",
+     "/encrypted-media/idlharness.https.html",
      {}
     ]
    ],
@@ -537162,191 +537162,191 @@
    "4cdfcbd7d8243d6cb61dbeb73535cc561cc44766",
    "support"
   ],
-  "encrypted-media/clearkey-check-initdata-type.html": [
+  "encrypted-media/clearkey-check-initdata-type.https.html": [
    "edf050cdd617f5e1b9de04c3c77b2bb92b22a74f",
    "testharness"
   ],
-  "encrypted-media/clearkey-events-session-closed-event.html": [
+  "encrypted-media/clearkey-events-session-closed-event.https.html": [
    "df3718598584c8ac59be5d4b8ef85083e1e9ddcf",
    "testharness"
   ],
-  "encrypted-media/clearkey-events.html": [
+  "encrypted-media/clearkey-events.https.html": [
    "75c9904a525c4bb1ec495445660671ad5279f0a7",
    "testharness"
   ],
-  "encrypted-media/clearkey-generate-request-disallowed-input.html": [
+  "encrypted-media/clearkey-generate-request-disallowed-input.https.html": [
    "4426b44b87b52f17c8dff8027c61e3e39ac9e321",
    "testharness"
   ],
-  "encrypted-media/clearkey-invalid-license.html": [
+  "encrypted-media/clearkey-invalid-license.https.html": [
    "4fa0b5af9fce24e3f6abd932f2352ff4deb0f90f",
    "testharness"
   ],
-  "encrypted-media/clearkey-keystatuses-multiple-sessions.html": [
+  "encrypted-media/clearkey-keystatuses-multiple-sessions.https.html": [
    "aa361d04cfd38448bde43102860cb67c92378217",
    "testharness"
   ],
-  "encrypted-media/clearkey-keystatuses.html": [
+  "encrypted-media/clearkey-keystatuses.https.html": [
    "0da720e35be9913eff72ca4686d09447a8b0baae",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-destroy-persistent-license.html": [
+  "encrypted-media/clearkey-mp4-playback-destroy-persistent-license.https.html": [
    "31f911c3795711d1ff315baa035adbf9b82063b1",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-persistent-license-events.html": [
+  "encrypted-media/clearkey-mp4-playback-persistent-license-events.https.html": [
    "77839f9d494a4ab72d19ab6d0f8c87600af78b83",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-persistent-license.html": [
+  "encrypted-media/clearkey-mp4-playback-persistent-license.https.html": [
    "82870fec532dfca22931614b62104d82f361948d",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.html": [
+  "encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.https.html": [
    "778a2d9d48f080b497359f18f7fe5505fc1a95a6",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-persistent-usage-record.html": [
+  "encrypted-media/clearkey-mp4-playback-persistent-usage-record.https.html": [
    "0ba42cf14754d5f5a72b1bed5c4e584d98367a13",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.html": [
+  "encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.https.html": [
    "fe1e7fd17a30f52936fb533e6553f09cbd9ce954",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.html": [
+  "encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.https.html": [
    "c82925a064bcd0eadb81a6b92a7fac35e76b35d8",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.html": [
+  "encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.https.html": [
    "3db3dfc846598a30218f740201e48ca6112f4d93",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.html": [
+  "encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.https.html": [
    "bade72126b9a42409ef2b1901b84aef7778b2eac",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.html": [
+  "encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.https.html": [
    "df277e779299caa92f7b82d2f8a51eb71a77eba1",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.html": [
+  "encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https.html": [
    "8a2c68dafa32348f869ffeffaa8952123f4cb539",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-temporary-events.html": [
+  "encrypted-media/clearkey-mp4-playback-temporary-events.https.html": [
    "8a4fdf2f0ae55cc9b4c137ada2c2721701a34e89",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.html": [
+  "encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.https.html": [
    "4252b999d028092862f18663a9ab8fe654439b8c",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.html": [
+  "encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.https.html": [
    "3d6d572a21f7380bd69fa52360dfbde527241440",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-temporary-multikey.html": [
+  "encrypted-media/clearkey-mp4-playback-temporary-multikey.https.html": [
    "8649ac8a23f45a0c8f34a31e3df58b8da786f68e",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-temporary-multisession.html": [
+  "encrypted-media/clearkey-mp4-playback-temporary-multisession.https.html": [
    "6e12223723edeb54e41128c1c86b9ae04091b448",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.html": [
+  "encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.https.html": [
    "0acbe39273cd4dfffc0580ae821b4f880323ef35",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.html": [
+  "encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.https.html": [
    "a416bd41c485e4f0e48ad870cc4ddad40d194509",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.html": [
+  "encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.https.html": [
    "a1051de265005fd205ab71ccc863ab429fe1b11e",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.html": [
+  "encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.https.html": [
    "c2356c4d5fc4be3d6b096f1cc9ca026b9d2989d1",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-temporary-two-videos.html": [
+  "encrypted-media/clearkey-mp4-playback-temporary-two-videos.https.html": [
    "03954e9c2ddc20b37d858bdcb29d4fb197fc2f9a",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.html": [
+  "encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https.html": [
    "2b195d087a715ed3b5d9803dded1b9d25c135789",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-playback-temporary.html": [
+  "encrypted-media/clearkey-mp4-playback-temporary.https.html": [
    "2d2c14ac3e4147c2ce54665ac84c102906df15bc",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-requestmediakeysystemaccess.html": [
+  "encrypted-media/clearkey-mp4-requestmediakeysystemaccess.https.html": [
    "ccd431ebc1212c33953f273a4a1665124da3b2f1",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.html": [
+  "encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.https.html": [
    "ea428a6fd609c5f3243b0cb89171f23484475c60",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.html": [
+  "encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.https.html": [
    "09b19346bccb01a63e3b1a509f0104f99a5723a8",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.html": [
+  "encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.https.html": [
    "cba1dca366654371b3b2d046c3505d10235b9e8d",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-setmediakeys-at-same-time.html": [
+  "encrypted-media/clearkey-mp4-setmediakeys-at-same-time.https.html": [
    "6c3e3659fe5fd7ae063371f13e6a284cdcc06019",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.html": [
+  "encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html": [
    "9edb8596073d8dd0a34db9398e0966f29d73b425",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html": [
+  "encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html": [
    "9e177ca8da585c867cf3b9c8f08afaa914c203bc",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.html": [
+  "encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.https.html": [
    "161653f14df5c4c883922a253457cc3e711dc997",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-setmediakeys.html": [
+  "encrypted-media/clearkey-mp4-setmediakeys.https.html": [
    "a3a30ffbe0c946b3dd3f50f46c819c94aefcb470",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-syntax-mediakeys.html": [
+  "encrypted-media/clearkey-mp4-syntax-mediakeys.https.html": [
    "d8cd90ecb4094e6866796edb40e50a0bfecf03d2",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-syntax-mediakeysession.html": [
+  "encrypted-media/clearkey-mp4-syntax-mediakeysession.https.html": [
    "040914ccaba738cfc9a97f4c4a839883cde8bcef",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.html": [
+  "encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.https.html": [
    "b7115f8d8bbd2da5f4b2635f66909fd4e4252747",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-unique-origin.html": [
+  "encrypted-media/clearkey-mp4-unique-origin.https.html": [
    "26d01bff637c6321f4d12aa8a50722f3e30b3b40",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-update-disallowed-input.html": [
+  "encrypted-media/clearkey-mp4-update-disallowed-input.https.html": [
    "7396b7380f22845aaf66da67be5ce19a93a90259",
    "testharness"
   ],
-  "encrypted-media/clearkey-mp4-waiting-for-a-key.html": [
+  "encrypted-media/clearkey-mp4-waiting-for-a-key.https.html": [
    "349ae6a759b23051e83c7dbbf96c4938d2482429",
    "testharness"
   ],
-  "encrypted-media/clearkey-not-callable-after-createsession.html": [
+  "encrypted-media/clearkey-not-callable-after-createsession.https.html": [
    "2f0a96c7fa9927f95ff1634cb08457ef305d4e7f",
    "testharness"
   ],
-  "encrypted-media/clearkey-update-non-ascii-input.html": [
+  "encrypted-media/clearkey-update-non-ascii-input.https.html": [
    "93e7cb2f9fa4e5d0696e3f9e02e88c2adf41fbd9",
    "testharness"
   ],
@@ -537394,199 +537394,199 @@
    "0fb6d575a357dd5fdc4544a55cb8ef4e25f0f449",
    "support"
   ],
-  "encrypted-media/drm-check-initdata-type.html": [
+  "encrypted-media/drm-check-initdata-type.https.html": [
    "ae0f79ae94465890ded3e3a6bfd60f320b23ad44",
    "testharness"
   ],
-  "encrypted-media/drm-events-session-closed-event.html": [
+  "encrypted-media/drm-events-session-closed-event.https.html": [
    "b5061558a5860289fd81ab806179fc3bdde06d22",
    "testharness"
   ],
-  "encrypted-media/drm-events.html": [
+  "encrypted-media/drm-events.https.html": [
    "aca0d0624fc6cf16eac0c86723aa680c2fa8006c",
    "testharness"
   ],
-  "encrypted-media/drm-expiration.html": [
+  "encrypted-media/drm-expiration.https.html": [
    "d071ca11388305cd8296f1183b1c5f3e3804c468",
    "testharness"
   ],
-  "encrypted-media/drm-generate-request-disallowed-input.html": [
+  "encrypted-media/drm-generate-request-disallowed-input.https.html": [
    "4d5e1c39a7dec2ae4c2f8706d54696d456180ed4",
    "testharness"
   ],
-  "encrypted-media/drm-invalid-license.html": [
+  "encrypted-media/drm-invalid-license.https.html": [
    "74afa97cd841401cd4b8ed18ea83499f410d17bf",
    "testharness"
   ],
-  "encrypted-media/drm-keystatuses-multiple-sessions.html": [
+  "encrypted-media/drm-keystatuses-multiple-sessions.https.html": [
    "2ec2ce19b8f1f52ee33450f89cec546d4524403e",
    "testharness"
   ],
-  "encrypted-media/drm-keystatuses.html": [
+  "encrypted-media/drm-keystatuses.https.html": [
    "777476ed7189626623fe6046e67a6d9359ce5783",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-onencrypted.html": [
+  "encrypted-media/drm-mp4-onencrypted.https.html": [
    "400ea20b213af0d1b5f415744ec3d48534fce7e7",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-destroy-persistent-license.html": [
+  "encrypted-media/drm-mp4-playback-destroy-persistent-license.https.html": [
    "b1bd421f82ee615d7a994256363d7daf1990f74e",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-persistent-license-events.html": [
+  "encrypted-media/drm-mp4-playback-persistent-license-events.https.html": [
    "5f2bf9c9cc1404be0f7c948c436a60483d662600",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-persistent-license.html": [
+  "encrypted-media/drm-mp4-playback-persistent-license.https.html": [
    "421ab3065f65e9cd88ba318a50bbbf84beef4966",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-persistent-usage-record-events.html": [
+  "encrypted-media/drm-mp4-playback-persistent-usage-record-events.https.html": [
    "508a4e777bd6c050028e76b8ebfb8da36e92f613",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-persistent-usage-record.html": [
+  "encrypted-media/drm-mp4-playback-persistent-usage-record.https.html": [
    "bac4592aa70ea169e6424d571293dcbf10be9eda",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html": [
+  "encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.https.html": [
    "4be63a706c6af42c22a2d8eef94d227ca7af5cbb",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-retrieve-persistent-license.html": [
+  "encrypted-media/drm-mp4-playback-retrieve-persistent-license.https.html": [
    "3c605d585e46f34b9cea3cda2caae72e93bb00ef",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.html": [
+  "encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.https.html": [
    "8783b5efb95e95f5547acb29fb5950ebdde498e8",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-temporary-clear-encrypted.html": [
+  "encrypted-media/drm-mp4-playback-temporary-clear-encrypted.https.html": [
    "b1825fbafaa400cd8672ca34d36e30ded98d2b9b",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.html": [
+  "encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.https.html": [
    "db48c1ef4d91eaec6787c6c95e2dbb9faaf41965",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-temporary-encrypted-clear.html": [
+  "encrypted-media/drm-mp4-playback-temporary-encrypted-clear.https.html": [
    "5f23926a2ed2692b3fee95ef613e02668b919106",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-temporary-events.html": [
+  "encrypted-media/drm-mp4-playback-temporary-events.https.html": [
    "b893677d6c12f1b05f564dbbf1c43362da9ff6e7",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-temporary-expired.html": [
+  "encrypted-media/drm-mp4-playback-temporary-expired.https.html": [
    "cb4a33c98fed06054e4acce8a65a0dc8e6d1b4c3",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.html": [
+  "encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.https.html": [
    "320fb185d71e4f76cc865c63ff99f508d994465c",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-temporary-multikey-sequential.html": [
+  "encrypted-media/drm-mp4-playback-temporary-multikey-sequential.https.html": [
    "e4616953865577bd08ba566f0487c5e7a793d291",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-temporary-multikey.html": [
+  "encrypted-media/drm-mp4-playback-temporary-multikey.https.html": [
    "b7fd2a7ec0adc0b5be46242af0df83fab9dda5af",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-temporary-multisession.html": [
+  "encrypted-media/drm-mp4-playback-temporary-multisession.https.html": [
    "15a0b2950e25edcbff1b5b2e3d5807cb91d9e531",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.html": [
+  "encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.https.html": [
    "09ba82feb85a73a1aa275164bfacd722f893075e",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.html": [
+  "encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.https.html": [
    "d6ba354d7c2c02775827fa1f896af5b4916a77fd",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.html": [
+  "encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.https.html": [
    "eae1bd6fba6709856bf43e9506abf2128f79ced7",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.html": [
+  "encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.https.html": [
    "52facbc71172a79ab84416ae249780abfa48e970",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-temporary-two-videos.html": [
+  "encrypted-media/drm-mp4-playback-temporary-two-videos.https.html": [
    "a8fb7e599f125c4ea3f665a9cc8be0b91a3df076",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-temporary-waitingforkey.html": [
+  "encrypted-media/drm-mp4-playback-temporary-waitingforkey.https.html": [
    "82d4432235e45c61cca1fa371dcb83dfe99a3060",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-playback-temporary.html": [
+  "encrypted-media/drm-mp4-playback-temporary.https.html": [
    "14db930f09d86257aea6d653805b600da772726d",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-requestmediakeysystemaccess.html": [
+  "encrypted-media/drm-mp4-requestmediakeysystemaccess.https.html": [
    "2119ef0d22c25f8f3704732c6908ed2c5ac87e03",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-reset-src-after-setmediakeys.html": [
+  "encrypted-media/drm-mp4-reset-src-after-setmediakeys.https.html": [
    "f3c6f6c10c7dc7938a9c90309aecc7643de3603a",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-setmediakeys-again-after-playback.html": [
+  "encrypted-media/drm-mp4-setmediakeys-again-after-playback.https.html": [
    "d0799ef8ecf2198e97af8863828cf00455ccb643",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.html": [
+  "encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.https.html": [
    "60cf1a74b1aa5eff4c817d78a6bf133588e9c9ec",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-setmediakeys-at-same-time.html": [
+  "encrypted-media/drm-mp4-setmediakeys-at-same-time.https.html": [
    "a475403fef02570be2815cc02572fc2afe7b6d55",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.html": [
+  "encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html": [
    "0011bd6d2447f59d19844cb27c0248846dfc4a56",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html": [
+  "encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html": [
    "6b60d7967a71112f476700d8ce3570b40cf51f08",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.html": [
+  "encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.https.html": [
    "2681878f110de7841fba6123ceb785820b596474",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-setmediakeys.html": [
+  "encrypted-media/drm-mp4-setmediakeys.https.html": [
    "c66a641651351e92d47a6e149618117eeabfaff8",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-syntax-mediakeys.html": [
+  "encrypted-media/drm-mp4-syntax-mediakeys.https.html": [
    "ab9db64508f7181eef25898cfceacdc351c299ef",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-syntax-mediakeysession.html": [
+  "encrypted-media/drm-mp4-syntax-mediakeysession.https.html": [
    "51fcd7900ced0c4c50ef1b1fc8f50e69db021f55",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-syntax-mediakeysystemaccess.html": [
+  "encrypted-media/drm-mp4-syntax-mediakeysystemaccess.https.html": [
    "3718f25e30379509466117157f5ab7af705458a3",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-unique-origin.html": [
+  "encrypted-media/drm-mp4-unique-origin.https.html": [
    "f1a76980453dfce0c9e27774c2763295c2f8eb11",
    "testharness"
   ],
-  "encrypted-media/drm-mp4-waiting-for-a-key.html": [
+  "encrypted-media/drm-mp4-waiting-for-a-key.https.html": [
    "52e710dd8e9f90e0a1a2a922bba042ea6e53a439",
    "testharness"
   ],
-  "encrypted-media/drm-not-callable-after-createsession.html": [
+  "encrypted-media/drm-not-callable-after-createsession.https.html": [
    "82c70015b32240304ab410b4a57791bb3d8c45e5",
    "testharness"
   ],
-  "encrypted-media/drm-temporary-license-type.html": [
+  "encrypted-media/drm-temporary-license-type.https.html": [
    "85124d35b37f14c143e1fcb2965f131a8f2a3391",
    "testharness"
   ],
@@ -537594,7 +537594,7 @@
    "aa376680149e53e4839dc48b45291264fa5d6960",
    "testharness"
   ],
-  "encrypted-media/idlharness.html": [
+  "encrypted-media/idlharness.https.html": [
    "69456d56a5485b04465f4f6ee4abc80388703fd9",
    "testharness"
   ],
@@ -586591,7 +586591,7 @@
    "wdspec"
   ],
   "webdriver/tests/element_click/__init__.py": [
-   "a471e12c9f3a8d87845ffe7c68d95e1991c5f613",
+   "da39a3ee5e6b4b0d3255bfef95601890afd80709",
    "support"
   ],
   "webdriver/tests/element_click/select.py": [
@@ -586599,7 +586599,7 @@
    "wdspec"
   ],
   "webdriver/tests/element_click/stale.py": [
-   "44ddedd4a9dff1b9c1a86f55719fa40f81100fe4",
+   "37af63203540dfe11d36fe05d74694f05c6505f2",
    "wdspec"
   ],
   "webdriver/tests/element_retrieval/get_active_element.py": [
@@ -586639,19 +586639,19 @@
    "support"
   ],
   "webdriver/tests/retrieval/find_element.py": [
-   "a2d29c9c8dd5303d196d0682a19f3f3560b35872",
+   "2a4cdf4c703493f7c90fc3473daa27660ac61e11",
    "wdspec"
   ],
   "webdriver/tests/retrieval/find_element_from_element.py": [
-   "78d5e503bf979307f313b72f7578c55264c6e207",
+   "f036ef93adff21a7c83eeb8b131c96b6553b9fcb",
    "wdspec"
   ],
   "webdriver/tests/retrieval/find_element_from_elements.py": [
-   "0be0eb0bd904fa8f7e5332d43cef2b36dae1a579",
+   "131c25ffbde611f98e29b778d7c861ae9619b2f6",
    "wdspec"
   ],
   "webdriver/tests/retrieval/find_elements.py": [
-   "7df448c94c89bdb9f6818a69a9d52b21faa4b944",
+   "2d5c3c98b00e21a36f91e5797bb97835a8b63f2e",
    "wdspec"
   ],
   "webdriver/tests/sessions/get_timeouts.py": [
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-events-session-closed-event.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-events-session-closed-event.https.html.ini
similarity index 92%
rename from testing/web-platform/meta/encrypted-media/clearkey-events-session-closed-event.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-events-session-closed-event.https.html.ini
index 0061b11eb8cb..a958de416167 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-events-session-closed-event.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-events-session-closed-event.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-events-session-closed-event.html]
+[clearkey-events-session-closed-event.https.html]
   type: testharness
   [org.w3.clearkey test MediaKeySession closed event.]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-destroy-persistent-license.https.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-destroy-persistent-license.https.html.ini
new file mode 100644
index 000000000000..9cbda7f0e71b
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-destroy-persistent-license.https.html.ini
@@ -0,0 +1,3 @@
+[clearkey-mp4-playback-destroy-persistent-license.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-license-events.https.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-license-events.https.html.ini
new file mode 100644
index 000000000000..85cd7002cfa4
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-license-events.https.html.ini
@@ -0,0 +1,3 @@
+[clearkey-mp4-playback-persistent-license-events.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-license.https.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-license.https.html.ini
new file mode 100644
index 000000000000..a4a401eaacfb
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-license.https.html.ini
@@ -0,0 +1,3 @@
+[clearkey-mp4-playback-persistent-license.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.https.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.https.html.ini
new file mode 100644
index 000000000000..b9e8efb3b776
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.https.html.ini
@@ -0,0 +1,3 @@
+[clearkey-mp4-playback-persistent-usage-record-events.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-usage-record.https.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-usage-record.https.html.ini
new file mode 100644
index 000000000000..340e4d3a0cce
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-usage-record.https.html.ini
@@ -0,0 +1,3 @@
+[clearkey-mp4-playback-persistent-usage-record.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.https.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.https.html.ini
new file mode 100644
index 000000000000..5a2c86f28d0a
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.https.html.ini
@@ -0,0 +1,3 @@
+[clearkey-mp4-playback-retrieve-destroy-persistent-license.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.html.ini
deleted file mode 100644
index 74a92f18cb73..000000000000
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[clearkey-mp4-playback-retrieve-persistent-license.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.https.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.https.html.ini
new file mode 100644
index 000000000000..d686fa57de77
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.https.html.ini
@@ -0,0 +1,3 @@
+[clearkey-mp4-playback-retrieve-persistent-license.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.html.ini
deleted file mode 100644
index b04cb5a3ce81..000000000000
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[clearkey-mp4-playback-retrieve-persistent-usage-record.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.https.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.https.html.ini
new file mode 100644
index 000000000000..7da9fefb9b89
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.https.html.ini
@@ -0,0 +1,3 @@
+[clearkey-mp4-playback-retrieve-persistent-usage-record.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.https.html.ini
similarity index 74%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.https.html.ini
index c266fa2ddd3a..51dbe75c1480 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-playback-temporary-clear-encrypted.html]
+[clearkey-mp4-playback-temporary-clear-encrypted.https.html]
   type: testharness
   [org.w3.clearkey, temporary, mp4, playback, single key, clear then encrypted content]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.https.html.ini
similarity index 89%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.https.html.ini
index 9f58531750fb..8db79819b999 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-playback-temporary-encrypted-clear-sources.html]
+[clearkey-mp4-playback-temporary-encrypted-clear-sources.https.html]
   type: testharness
   [org.w3.clearkey, temporary, mp4, playback, encrypted and clear sources]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https.html.ini
similarity index 81%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https.html.ini
index 4a066e728304..ab6a2bf6f670 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-playback-temporary-encrypted-clear.html]
+[clearkey-mp4-playback-temporary-encrypted-clear.https.html]
   type: testharness
   disabled:
     if os == "linux": https://bugzilla.mozilla.org/show_bug.cgi?id=1301418
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-events.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-events.https.html.ini
similarity index 95%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-events.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-events.https.html.ini
index 30b66d7ec9cc..2eb40794192e 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-events.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-events.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-playback-temporary-events.html]
+[clearkey-mp4-playback-temporary-events.https.html]
   type: testharness
   disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1312914
   [org.w3.clearkey, sucessful playback and events, temporary, mp4, set src before setMediaKeys]
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.https.html.ini
similarity index 98%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.https.html.ini
index 05124abe9dc7..bc0796f2aca7 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-playback-temporary-multikey-sequential-readyState.html]
+[clearkey-mp4-playback-temporary-multikey-sequential-readyState.https.html]
   type: testharness
   [org.w3.clearkey, successful playback, temporary, mp4, multiple keys, sequential, readyState]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multikey.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multikey.https.html.ini
similarity index 93%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multikey.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multikey.https.html.ini
index fd2682b08f97..8a28dc831fcb 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multikey.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multikey.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-playback-temporary-multikey.html]
+[clearkey-mp4-playback-temporary-multikey.https.html]
   type: testharness
   [org.w3.clearkey, successful playback, temporary, mp4, multiple keys, single session, audio/video]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multisession.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multisession.https.html.ini
similarity index 91%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multisession.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multisession.https.html.ini
index 689640e56129..04106e7479e2 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multisession.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-multisession.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-playback-temporary-multisession.html]
+[clearkey-mp4-playback-temporary-multisession.https.html]
   type: testharness
   [org.w3.clearkey, temporary, mp4, playback with multiple sessions, multikey video]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.https.html.ini
similarity index 89%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.https.html.ini
index 413a7ddb44ca..5605c9d91d05 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-playback-temporary-setMediaKeys-after-src.html]
+[clearkey-mp4-playback-temporary-setMediaKeys-after-src.https.html]
   type: testharness
   [org.w3.clearkey, temporary, mp4, playback, setMediaKeys after setting video.src]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.https.html.ini
similarity index 89%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.https.html.ini
index e9c7538bd723..5cc853b23dd2 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-playback-temporary-setMediaKeys-after-update.html]
+[clearkey-mp4-playback-temporary-setMediaKeys-after-update.https.html]
   type: testharness
   [org.w3.clearkey, temporary, mp4, playback, setMediaKeys after updating session]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.https.html.ini
similarity index 89%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.https.html.ini
index 3ff6ba5d6137..c7e7e7c1ef5c 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-playback-temporary-setMediaKeys-immediately.html]
+[clearkey-mp4-playback-temporary-setMediaKeys-immediately.https.html]
   type: testharness
   [org.w3.clearkey, temporary, mp4, playback, setMediaKeys first]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.https.html.ini
similarity index 89%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.https.html.ini
index 76433cd136ae..2c855bc276eb 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.html]
+[clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.https.html]
   type: testharness
   [org.w3.clearkey, temporary, mp4, playback, setMediaKeys in encrypted event]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-two-videos.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-two-videos.https.html.ini
similarity index 92%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-two-videos.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-two-videos.https.html.ini
index 1544790a05cc..232283687e27 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-two-videos.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-two-videos.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-playback-temporary-two-videos.html]
+[clearkey-mp4-playback-temporary-two-videos.https.html]
   type: testharness
   [org.w3.clearkey, sucessful playback, temporary, mp4, set src before setMediaKeys]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https.html.ini
similarity index 91%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https.html.ini
index 850e6a5c8a5f..454800d8680e 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-playback-temporary-waitingforkey.html]
+[clearkey-mp4-playback-temporary-waitingforkey.https.html]
   type: testharness
   [org.w3.clearkey, successful playback, temporary, mp4, waitingforkey event, 1 key]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary.https.html.ini
similarity index 94%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary.https.html.ini
index 706a15bd0d47..819a7facc050 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-temporary.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-playback-temporary.html]
+[clearkey-mp4-playback-temporary.https.html]
   type: testharness
   [org.w3.clearkey, sucessful playback, temporary, mp4, set src before setMediaKeys]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.https.html.ini
similarity index 99%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.https.html.ini
index 5fe10bff83d7..fa5a5a897dc2 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-requestmediakeysystemaccess.html]
+[clearkey-mp4-requestmediakeysystemaccess.https.html]
   type: testharness
   [Basic supported configuration]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.https.html.ini
similarity index 91%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.https.html.ini
index e2a6a5aff1d4..6e9508e8ea1e 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-reset-src-after-setmediakeys.html]
+[clearkey-mp4-reset-src-after-setmediakeys.https.html]
   type: testharness
   [Reset src after setMediaKeys().]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.https.html.ini
similarity index 89%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.https.html.ini
index 07a1bd812216..063b3a2b0868 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-setmediakeys-again-after-resetting-src.html]
+[clearkey-mp4-setmediakeys-again-after-resetting-src.https.html]
   type: testharness
   [org.w3.clearkey, setmediakeys again after resetting src]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html.ini
similarity index 97%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html.ini
index 4b2f6c4cdb50..95bccb4cc056 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.html]
+[clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html]
   type: testharness
   [org.w3.clearkey, setmediakeys multiple times with different mediakeys]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html.ini
similarity index 97%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html.ini
index 27b685086840..0b67179691f2 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html]
+[clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html]
   type: testharness
   [org.w3.clearkey, setmediakeys multiple times with the same mediakeys]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-syntax-mediakeys.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-syntax-mediakeys.https.html.ini
similarity index 97%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-syntax-mediakeys.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-syntax-mediakeys.https.html.ini
index b9a9c5d51bde..b667fb248c95 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-syntax-mediakeys.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-syntax-mediakeys.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-syntax-mediakeys.html]
+[clearkey-mp4-syntax-mediakeys.https.html]
   type: testharness
   [org.w3.clearkey test MediaKeys attribute syntax]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.https.html.ini
similarity index 91%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.https.html.ini
index e90d46978341..d5666655344d 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-syntax-mediakeysystemaccess.html]
+[clearkey-mp4-syntax-mediakeysystemaccess.https.html]
   type: testharness
   [org.w3.clearkey test MediaKeySystemAccess attribute syntax.]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-unique-origin.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-unique-origin.https.html.ini
similarity index 68%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-unique-origin.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-unique-origin.https.html.ini
index f204d84c6159..9f4ee4350056 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-unique-origin.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-unique-origin.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-unique-origin.html]
+[clearkey-mp4-unique-origin.https.html]
   type: testharness
   [Unique origin is unable to create MediaKeys]
     expected: FAIL
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-waiting-for-a-key.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-mp4-waiting-for-a-key.https.html.ini
similarity index 92%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-waiting-for-a-key.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-mp4-waiting-for-a-key.https.html.ini
index 97217ac8cee6..83ce37b6ad7d 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-waiting-for-a-key.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-mp4-waiting-for-a-key.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-mp4-waiting-for-a-key.html]
+[clearkey-mp4-waiting-for-a-key.https.html]
   type: testharness
   [Waiting for a key.]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-update-non-ascii-input.html.ini b/testing/web-platform/meta/encrypted-media/clearkey-update-non-ascii-input.https.html.ini
similarity index 92%
rename from testing/web-platform/meta/encrypted-media/clearkey-update-non-ascii-input.html.ini
rename to testing/web-platform/meta/encrypted-media/clearkey-update-non-ascii-input.https.html.ini
index 04df07ec6c5f..65c7ae86dbc9 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-update-non-ascii-input.html.ini
+++ b/testing/web-platform/meta/encrypted-media/clearkey-update-non-ascii-input.https.html.ini
@@ -1,4 +1,4 @@
-[clearkey-update-non-ascii-input.html]
+[clearkey-update-non-ascii-input.https.html]
   type: testharness
   [org.w3.clearkey test handling of non-ASCII responses for update()]
     expected:
diff --git a/testing/web-platform/meta/encrypted-media/drm-check-initdata-type.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-check-initdata-type.https.html.ini
new file mode 100644
index 000000000000..3f9ab394e2f2
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-check-initdata-type.https.html.ini
@@ -0,0 +1,3 @@
+[drm-check-initdata-type.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-events-session-closed-event.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-events-session-closed-event.https.html.ini
new file mode 100644
index 000000000000..3d8b5a9875ff
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-events-session-closed-event.https.html.ini
@@ -0,0 +1,3 @@
+[drm-events-session-closed-event.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-events.html.ini b/testing/web-platform/meta/encrypted-media/drm-events.https.html.ini
similarity index 77%
rename from testing/web-platform/meta/encrypted-media/drm-events.html.ini
rename to testing/web-platform/meta/encrypted-media/drm-events.https.html.ini
index f1feab23c7ca..c703bd57d04a 100644
--- a/testing/web-platform/meta/encrypted-media/drm-events.html.ini
+++ b/testing/web-platform/meta/encrypted-media/drm-events.https.html.ini
@@ -1,3 +1,3 @@
-[drm-events.html]
+[drm-events.https.html]
   type: testharness
   disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-keystatuses.html.ini b/testing/web-platform/meta/encrypted-media/drm-expiration.https.html.ini
similarity index 75%
rename from testing/web-platform/meta/encrypted-media/drm-keystatuses.html.ini
rename to testing/web-platform/meta/encrypted-media/drm-expiration.https.html.ini
index ef7090de4e79..5b906f9234b3 100644
--- a/testing/web-platform/meta/encrypted-media/drm-keystatuses.html.ini
+++ b/testing/web-platform/meta/encrypted-media/drm-expiration.https.html.ini
@@ -1,3 +1,3 @@
-[drm-keystatuses.html]
+[drm-expiration.https.html]
   type: testharness
   disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-generate-request-disallowed-input.html.ini b/testing/web-platform/meta/encrypted-media/drm-generate-request-disallowed-input.html.ini
deleted file mode 100644
index c211f29f74ac..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-generate-request-disallowed-input.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-generate-request-disallowed-input.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-generate-request-disallowed-input.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-generate-request-disallowed-input.https.html.ini
new file mode 100644
index 000000000000..c7057e02752b
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-generate-request-disallowed-input.https.html.ini
@@ -0,0 +1,3 @@
+[drm-generate-request-disallowed-input.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-check-initdata-type.html.ini b/testing/web-platform/meta/encrypted-media/drm-invalid-license.https.html.ini
similarity index 72%
rename from testing/web-platform/meta/encrypted-media/drm-check-initdata-type.html.ini
rename to testing/web-platform/meta/encrypted-media/drm-invalid-license.https.html.ini
index a73772add24a..7f8d35756a34 100644
--- a/testing/web-platform/meta/encrypted-media/drm-check-initdata-type.html.ini
+++ b/testing/web-platform/meta/encrypted-media/drm-invalid-license.https.html.ini
@@ -1,3 +1,3 @@
-[drm-check-initdata-type.html]
+[drm-invalid-license.https.html]
   type: testharness
   disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-keystatuses-multiple-sessions.html.ini b/testing/web-platform/meta/encrypted-media/drm-keystatuses-multiple-sessions.html.ini
deleted file mode 100644
index 6b59796e92c5..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-keystatuses-multiple-sessions.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-keystatuses-multiple-sessions.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-keystatuses-multiple-sessions.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-keystatuses-multiple-sessions.https.html.ini
new file mode 100644
index 000000000000..ee73329acf04
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-keystatuses-multiple-sessions.https.html.ini
@@ -0,0 +1,3 @@
+[drm-keystatuses-multiple-sessions.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-invalid-license.html.ini b/testing/web-platform/meta/encrypted-media/drm-keystatuses.https.html.ini
similarity index 74%
rename from testing/web-platform/meta/encrypted-media/drm-invalid-license.html.ini
rename to testing/web-platform/meta/encrypted-media/drm-keystatuses.https.html.ini
index f89368a66461..e22ea72a3567 100644
--- a/testing/web-platform/meta/encrypted-media/drm-invalid-license.html.ini
+++ b/testing/web-platform/meta/encrypted-media/drm-keystatuses.https.html.ini
@@ -1,3 +1,3 @@
-[drm-invalid-license.html]
+[drm-keystatuses.https.html]
   type: testharness
   disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-onencrypted.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-onencrypted.html.ini
deleted file mode 100644
index 8d7b42c73bd8..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-onencrypted.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-onencrypted.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-expiration.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-onencrypted.https.html.ini
similarity index 72%
rename from testing/web-platform/meta/encrypted-media/drm-expiration.html.ini
rename to testing/web-platform/meta/encrypted-media/drm-mp4-onencrypted.https.html.ini
index cb0527c44f17..feaa5c3903df 100644
--- a/testing/web-platform/meta/encrypted-media/drm-expiration.html.ini
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-onencrypted.https.html.ini
@@ -1,3 +1,3 @@
-[drm-expiration.html]
+[drm-mp4-onencrypted.https.html]
   type: testharness
   disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-destroy-persistent-license.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-destroy-persistent-license.html.ini
deleted file mode 100644
index 209382d91f79..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-destroy-persistent-license.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-destroy-persistent-license.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-destroy-persistent-license.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-destroy-persistent-license.https.html.ini
new file mode 100644
index 000000000000..90f88533ae0a
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-destroy-persistent-license.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-playback-destroy-persistent-license.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-license-events.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-license-events.html.ini
deleted file mode 100644
index 351bc045ec98..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-license-events.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-persistent-license-events.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-destroy-persistent-license.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-license-events.https.html.ini
similarity index 60%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-destroy-persistent-license.html.ini
rename to testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-license-events.https.html.ini
index f45d5a554c3c..9f4cc32d07e1 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-destroy-persistent-license.html.ini
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-license-events.https.html.ini
@@ -1,3 +1,3 @@
-[clearkey-mp4-playback-destroy-persistent-license.html]
+[drm-mp4-playback-persistent-license-events.https.html]
   type: testharness
   disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-license.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-license.html.ini
deleted file mode 100644
index 00a645e1d838..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-license.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-persistent-license.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-license.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-license.https.html.ini
new file mode 100644
index 000000000000..b7046d898b3c
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-license.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-playback-persistent-license.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-usage-record-events.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-usage-record-events.html.ini
deleted file mode 100644
index d31919a245fe..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-usage-record-events.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-persistent-usage-record-events.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-usage-record-events.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-usage-record-events.https.html.ini
new file mode 100644
index 000000000000..9addfc96b45f
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-usage-record-events.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-playback-persistent-usage-record-events.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-usage-record.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-usage-record.html.ini
deleted file mode 100644
index 43b8951d5990..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-usage-record.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-persistent-usage-record.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-usage-record.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-usage-record.https.html.ini
new file mode 100644
index 000000000000..f296a084d679
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-persistent-usage-record.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-playback-persistent-usage-record.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html.ini
deleted file mode 100644
index 256b2578bd34..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-retrieve-destroy-persistent-license.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.https.html.ini
new file mode 100644
index 000000000000..ddc9d052c858
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-playback-retrieve-destroy-persistent-license.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-retrieve-persistent-license.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-retrieve-persistent-license.html.ini
deleted file mode 100644
index fa7c93953473..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-retrieve-persistent-license.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-retrieve-persistent-license.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-retrieve-persistent-license.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-retrieve-persistent-license.https.html.ini
new file mode 100644
index 000000000000..078e66ecd96b
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-retrieve-persistent-license.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-playback-retrieve-persistent-license.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.html.ini
deleted file mode 100644
index fbb0b3b77a51..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-retrieve-persistent-usage-record.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.https.html.ini
new file mode 100644
index 000000000000..ad8a2baf742f
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-playback-retrieve-persistent-usage-record.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.html.ini
deleted file mode 100644
index b6c9f63b183c..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-temporary-clear-encrypted.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.https.html.ini
new file mode 100644
index 000000000000..ebe5deaa0b7c
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-playback-temporary-clear-encrypted.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.html.ini
deleted file mode 100644
index 76397c3e61ec..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-temporary-encrypted-clear-sources.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.https.html.ini
new file mode 100644
index 000000000000..1c4862f2654f
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-playback-temporary-encrypted-clear-sources.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.html.ini
deleted file mode 100644
index 134ea9480738..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-temporary-encrypted-clear.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.https.html.ini
new file mode 100644
index 000000000000..28c4bf3fbdd1
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-playback-temporary-encrypted-clear.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-events.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-events.html.ini
deleted file mode 100644
index fecd4c8a6a6f..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-events.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-temporary-events.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-events.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-events.https.html.ini
new file mode 100644
index 000000000000..47bf948b60c2
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-events.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-playback-temporary-events.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-expired.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-expired.html.ini
deleted file mode 100644
index 3e11a5054a01..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-expired.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-temporary-expired.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-license.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-expired.https.html.ini
similarity index 63%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-license.html.ini
rename to testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-expired.https.html.ini
index 45abb977f165..2a902449231a 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-license.html.ini
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-expired.https.html.ini
@@ -1,3 +1,3 @@
-[clearkey-mp4-playback-persistent-license.html]
+[drm-mp4-playback-temporary-expired.https.html]
   type: testharness
   disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.https.html.ini
new file mode 100644
index 000000000000..fb7e91ce19ad
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-playback-temporary-multikey-sequential-readyState.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.html.ini
deleted file mode 100644
index 91f57a60060e..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-temporary-multikey-sequential.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.https.html.ini
similarity index 58%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.html.ini
rename to testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.https.html.ini
index 67beb460fe8e..6b7dfd3cea4e 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.html.ini
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.https.html.ini
@@ -1,3 +1,3 @@
-[clearkey-mp4-playback-persistent-usage-record-events.html]
+[drm-mp4-playback-temporary-multikey-sequential.https.html]
   type: testharness
   disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multikey.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multikey.html.ini
deleted file mode 100644
index 5f7a1591555c..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multikey.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-temporary-multikey.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multikey.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multikey.https.html.ini
new file mode 100644
index 000000000000..ba426e9e1674
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multikey.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-playback-temporary-multikey.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multisession.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multisession.html.ini
deleted file mode 100644
index 9cd62a0aa277..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multisession.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-temporary-multisession.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-usage-record.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multisession.https.html.ini
similarity index 61%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-usage-record.html.ini
rename to testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multisession.https.html.ini
index 00522087aba4..e2ee03bc87d9 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-usage-record.html.ini
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multisession.https.html.ini
@@ -1,3 +1,3 @@
-[clearkey-mp4-playback-persistent-usage-record.html]
+[drm-mp4-playback-temporary-multisession.https.html]
   type: testharness
   disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.html.ini
deleted file mode 100644
index 2436876a5d30..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-temporary-setMediaKeys-after-src.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.https.html.ini
new file mode 100644
index 000000000000..8a28e1eadb4c
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-playback-temporary-setMediaKeys-after-src.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.html.ini
deleted file mode 100644
index cc60ac93a73b..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-temporary-setMediaKeys-after-update.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.https.html.ini
new file mode 100644
index 000000000000..572417522c4c
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-playback-temporary-setMediaKeys-after-update.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.html.ini
deleted file mode 100644
index fe47df94d4fd..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-temporary-setMediaKeys-immediately.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.https.html.ini
similarity index 57%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.html.ini
rename to testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.https.html.ini
index 1e1a585126e6..6459f1b24d2e 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.html.ini
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.https.html.ini
@@ -1,3 +1,3 @@
-[clearkey-mp4-playback-retrieve-destroy-persistent-license.html]
+[drm-mp4-playback-temporary-setMediaKeys-immediately.https.html]
   type: testharness
   disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.html.ini
deleted file mode 100644
index 9ab8fb55005e..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-temporary-setMediaKeys-onencrypted.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.https.html.ini
similarity index 57%
rename from testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.html.ini
rename to testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.https.html.ini
index 1dde052a1803..20aaaca0131f 100644
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.html.ini
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.https.html.ini
@@ -1,3 +1,3 @@
-[drm-mp4-playback-temporary-multikey-sequential-readyState.html]
+[drm-mp4-playback-temporary-setMediaKeys-onencrypted.https.html]
   type: testharness
   disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-two-videos.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-two-videos.html.ini
deleted file mode 100644
index c4516bcc78b3..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-two-videos.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-temporary-two-videos.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-two-videos.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-two-videos.https.html.ini
new file mode 100644
index 000000000000..441256fa9d1f
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-two-videos.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-playback-temporary-two-videos.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-waitingforkey.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-waitingforkey.html.ini
deleted file mode 100644
index 9d1b4a724a3d..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-waitingforkey.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-temporary-waitingforkey.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-waitingforkey.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-waitingforkey.https.html.ini
new file mode 100644
index 000000000000..2ee04788f550
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary-waitingforkey.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-playback-temporary-waitingforkey.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary.html.ini
deleted file mode 100644
index 17bd68d23f13..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-playback-temporary.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary.https.html.ini
new file mode 100644
index 000000000000..782b97d15d12
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-playback-temporary.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-playback-temporary.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-requestmediakeysystemaccess.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-requestmediakeysystemaccess.html.ini
deleted file mode 100644
index 7aca0b2839a1..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-requestmediakeysystemaccess.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-requestmediakeysystemaccess.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-requestmediakeysystemaccess.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-requestmediakeysystemaccess.https.html.ini
new file mode 100644
index 000000000000..a873761c4447
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-requestmediakeysystemaccess.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-requestmediakeysystemaccess.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-reset-src-after-setmediakeys.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-reset-src-after-setmediakeys.html.ini
deleted file mode 100644
index f75fbf20c149..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-reset-src-after-setmediakeys.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-reset-src-after-setmediakeys.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-reset-src-after-setmediakeys.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-reset-src-after-setmediakeys.https.html.ini
new file mode 100644
index 000000000000..f979ee8a4772
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-reset-src-after-setmediakeys.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-reset-src-after-setmediakeys.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-again-after-playback.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-again-after-playback.html.ini
deleted file mode 100644
index c67c4f78915d..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-again-after-playback.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-setmediakeys-again-after-playback.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-license-events.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-again-after-playback.https.html.ini
similarity index 60%
rename from testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-license-events.html.ini
rename to testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-again-after-playback.https.html.ini
index ad25829e9237..e573bc238c34 100644
--- a/testing/web-platform/meta/encrypted-media/clearkey-mp4-playback-persistent-license-events.html.ini
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-again-after-playback.https.html.ini
@@ -1,3 +1,3 @@
-[clearkey-mp4-playback-persistent-license-events.html]
+[drm-mp4-setmediakeys-again-after-playback.https.html]
   type: testharness
   disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.html.ini
deleted file mode 100644
index 6b608446d55e..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-setmediakeys-again-after-resetting-src.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.https.html.ini
new file mode 100644
index 000000000000..f5f5e4c79114
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-setmediakeys-again-after-resetting-src.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-at-same-time.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-at-same-time.html.ini
deleted file mode 100644
index e64dd9a6fa88..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-at-same-time.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-setmediakeys-at-same-time.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-at-same-time.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-at-same-time.https.html.ini
new file mode 100644
index 000000000000..e8a94cf6ecea
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-at-same-time.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-setmediakeys-at-same-time.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html.ini
similarity index 93%
rename from testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.html.ini
rename to testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html.ini
index 0051ec6c7892..73ec3036c905 100644
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.html.ini
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html.ini
@@ -1,3 +1,3 @@
-[drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.html]
+[drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html]
   type: testharness
   disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html.ini
deleted file mode 100644
index 09c2210fba92..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html.ini
new file mode 100644
index 000000000000..eaeb952c58fa
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.html.ini
deleted file mode 100644
index e171bca7fa87..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-setmediakeys-to-multiple-video-elements.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.https.html.ini
new file mode 100644
index 000000000000..b3bb183b82ac
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-setmediakeys-to-multiple-video-elements.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys.html.ini
deleted file mode 100644
index 902023cc2ec4..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-setmediakeys.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys.https.html.ini
new file mode 100644
index 000000000000..f7afcbf85d36
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-setmediakeys.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-setmediakeys.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-syntax-mediakeys.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-syntax-mediakeys.html.ini
deleted file mode 100644
index 1ad03d51b7c0..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-syntax-mediakeys.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-syntax-mediakeys.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-syntax-mediakeys.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-syntax-mediakeys.https.html.ini
new file mode 100644
index 000000000000..d3fa45dbad54
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-syntax-mediakeys.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-syntax-mediakeys.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-syntax-mediakeysession.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-syntax-mediakeysession.html.ini
deleted file mode 100644
index acdbdef27601..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-syntax-mediakeysession.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-syntax-mediakeysession.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-syntax-mediakeysession.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-syntax-mediakeysession.https.html.ini
new file mode 100644
index 000000000000..3faea30674b7
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-syntax-mediakeysession.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-syntax-mediakeysession.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.html.ini
deleted file mode 100644
index eda140262a39..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-syntax-mediakeysystemaccess.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.https.html.ini
new file mode 100644
index 000000000000..09f23fd06fdc
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-syntax-mediakeysystemaccess.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-unique-origin.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-unique-origin.html.ini
deleted file mode 100644
index 74fe3d05e860..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-unique-origin.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-unique-origin.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-unique-origin.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-unique-origin.https.html.ini
new file mode 100644
index 000000000000..3c47cc244c4b
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-unique-origin.https.html.ini
@@ -0,0 +1,3 @@
+[drm-mp4-unique-origin.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-mp4-waiting-for-a-key.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-waiting-for-a-key.html.ini
deleted file mode 100644
index 236561b336a6..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-mp4-waiting-for-a-key.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-mp4-waiting-for-a-key.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-events-session-closed-event.html.ini b/testing/web-platform/meta/encrypted-media/drm-mp4-waiting-for-a-key.https.html.ini
similarity index 68%
rename from testing/web-platform/meta/encrypted-media/drm-events-session-closed-event.html.ini
rename to testing/web-platform/meta/encrypted-media/drm-mp4-waiting-for-a-key.https.html.ini
index 32a75b14cc3f..e41a5037d805 100644
--- a/testing/web-platform/meta/encrypted-media/drm-events-session-closed-event.html.ini
+++ b/testing/web-platform/meta/encrypted-media/drm-mp4-waiting-for-a-key.https.html.ini
@@ -1,3 +1,3 @@
-[drm-events-session-closed-event.html]
+[drm-mp4-waiting-for-a-key.https.html]
   type: testharness
   disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-not-callable-after-createsession.html.ini b/testing/web-platform/meta/encrypted-media/drm-not-callable-after-createsession.html.ini
deleted file mode 100644
index 6132aa39ce22..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-not-callable-after-createsession.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-not-callable-after-createsession.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-not-callable-after-createsession.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-not-callable-after-createsession.https.html.ini
new file mode 100644
index 000000000000..6f935f0bc143
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-not-callable-after-createsession.https.html.ini
@@ -0,0 +1,3 @@
+[drm-not-callable-after-createsession.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-temporary-license-type.html.ini b/testing/web-platform/meta/encrypted-media/drm-temporary-license-type.html.ini
deleted file mode 100644
index b8e7d3907222..000000000000
--- a/testing/web-platform/meta/encrypted-media/drm-temporary-license-type.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[drm-temporary-license-type.html]
-  type: testharness
-  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/meta/encrypted-media/drm-temporary-license-type.https.html.ini b/testing/web-platform/meta/encrypted-media/drm-temporary-license-type.https.html.ini
new file mode 100644
index 000000000000..46e05f41242e
--- /dev/null
+++ b/testing/web-platform/meta/encrypted-media/drm-temporary-license-type.https.html.ini
@@ -0,0 +1,3 @@
+[drm-temporary-license-type.https.html]
+  type: testharness
+  disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1313284
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-check-initdata-type.html b/testing/web-platform/tests/encrypted-media/clearkey-check-initdata-type.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-check-initdata-type.html
rename to testing/web-platform/tests/encrypted-media/clearkey-check-initdata-type.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-events-session-closed-event.html b/testing/web-platform/tests/encrypted-media/clearkey-events-session-closed-event.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-events-session-closed-event.html
rename to testing/web-platform/tests/encrypted-media/clearkey-events-session-closed-event.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-events.html b/testing/web-platform/tests/encrypted-media/clearkey-events.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-events.html
rename to testing/web-platform/tests/encrypted-media/clearkey-events.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-generate-request-disallowed-input.html b/testing/web-platform/tests/encrypted-media/clearkey-generate-request-disallowed-input.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-generate-request-disallowed-input.html
rename to testing/web-platform/tests/encrypted-media/clearkey-generate-request-disallowed-input.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-invalid-license.html b/testing/web-platform/tests/encrypted-media/clearkey-invalid-license.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-invalid-license.html
rename to testing/web-platform/tests/encrypted-media/clearkey-invalid-license.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-keystatuses-multiple-sessions.html b/testing/web-platform/tests/encrypted-media/clearkey-keystatuses-multiple-sessions.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-keystatuses-multiple-sessions.html
rename to testing/web-platform/tests/encrypted-media/clearkey-keystatuses-multiple-sessions.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-keystatuses.html b/testing/web-platform/tests/encrypted-media/clearkey-keystatuses.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-keystatuses.html
rename to testing/web-platform/tests/encrypted-media/clearkey-keystatuses.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-destroy-persistent-license.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-destroy-persistent-license.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-destroy-persistent-license.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-destroy-persistent-license.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-persistent-license-events.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-persistent-license-events.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-persistent-license-events.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-persistent-license-events.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-persistent-license.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-persistent-license.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-persistent-license.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-persistent-license.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-events.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-events.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-events.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-events.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-multikey.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-multikey.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-multikey.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-multikey.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-multisession.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-multisession.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-multisession.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-multisession.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-two-videos.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-two-videos.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-two-videos.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-two-videos.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-playback-temporary.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-at-same-time.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-at-same-time.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-at-same-time.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-at-same-time.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-setmediakeys.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-syntax-mediakeys.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-syntax-mediakeys.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-syntax-mediakeys.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-syntax-mediakeys.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-syntax-mediakeysession.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-syntax-mediakeysession.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-syntax-mediakeysession.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-syntax-mediakeysession.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-unique-origin.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-unique-origin.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-unique-origin.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-unique-origin.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-update-disallowed-input.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-update-disallowed-input.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-update-disallowed-input.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-update-disallowed-input.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-mp4-waiting-for-a-key.html b/testing/web-platform/tests/encrypted-media/clearkey-mp4-waiting-for-a-key.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-mp4-waiting-for-a-key.html
rename to testing/web-platform/tests/encrypted-media/clearkey-mp4-waiting-for-a-key.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-not-callable-after-createsession.html b/testing/web-platform/tests/encrypted-media/clearkey-not-callable-after-createsession.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-not-callable-after-createsession.html
rename to testing/web-platform/tests/encrypted-media/clearkey-not-callable-after-createsession.https.html
diff --git a/testing/web-platform/tests/encrypted-media/clearkey-update-non-ascii-input.html b/testing/web-platform/tests/encrypted-media/clearkey-update-non-ascii-input.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/clearkey-update-non-ascii-input.html
rename to testing/web-platform/tests/encrypted-media/clearkey-update-non-ascii-input.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-check-initdata-type.html b/testing/web-platform/tests/encrypted-media/drm-check-initdata-type.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-check-initdata-type.html
rename to testing/web-platform/tests/encrypted-media/drm-check-initdata-type.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-events-session-closed-event.html b/testing/web-platform/tests/encrypted-media/drm-events-session-closed-event.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-events-session-closed-event.html
rename to testing/web-platform/tests/encrypted-media/drm-events-session-closed-event.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-events.html b/testing/web-platform/tests/encrypted-media/drm-events.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-events.html
rename to testing/web-platform/tests/encrypted-media/drm-events.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-expiration.html b/testing/web-platform/tests/encrypted-media/drm-expiration.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-expiration.html
rename to testing/web-platform/tests/encrypted-media/drm-expiration.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-generate-request-disallowed-input.html b/testing/web-platform/tests/encrypted-media/drm-generate-request-disallowed-input.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-generate-request-disallowed-input.html
rename to testing/web-platform/tests/encrypted-media/drm-generate-request-disallowed-input.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-invalid-license.html b/testing/web-platform/tests/encrypted-media/drm-invalid-license.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-invalid-license.html
rename to testing/web-platform/tests/encrypted-media/drm-invalid-license.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-keystatuses-multiple-sessions.html b/testing/web-platform/tests/encrypted-media/drm-keystatuses-multiple-sessions.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-keystatuses-multiple-sessions.html
rename to testing/web-platform/tests/encrypted-media/drm-keystatuses-multiple-sessions.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-keystatuses.html b/testing/web-platform/tests/encrypted-media/drm-keystatuses.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-keystatuses.html
rename to testing/web-platform/tests/encrypted-media/drm-keystatuses.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-onencrypted.html b/testing/web-platform/tests/encrypted-media/drm-mp4-onencrypted.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-onencrypted.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-onencrypted.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-destroy-persistent-license.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-destroy-persistent-license.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-destroy-persistent-license.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-destroy-persistent-license.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-persistent-license-events.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-persistent-license-events.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-persistent-license-events.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-persistent-license-events.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-persistent-license.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-persistent-license.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-persistent-license.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-persistent-license.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-persistent-usage-record-events.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-persistent-usage-record-events.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-persistent-usage-record-events.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-persistent-usage-record-events.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-persistent-usage-record.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-persistent-usage-record.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-persistent-usage-record.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-persistent-usage-record.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-retrieve-persistent-license.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-retrieve-persistent-license.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-retrieve-persistent-license.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-retrieve-persistent-license.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-events.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-events.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-events.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-events.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-expired.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-expired.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-expired.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-expired.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-multikey.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-multikey.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-multikey.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-multikey.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-multisession.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-multisession.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-multisession.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-multisession.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-two-videos.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-two-videos.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-two-videos.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-two-videos.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-waitingforkey.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-waitingforkey.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-waitingforkey.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary-waitingforkey.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary.html b/testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-playback-temporary.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-requestmediakeysystemaccess.html b/testing/web-platform/tests/encrypted-media/drm-mp4-requestmediakeysystemaccess.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-requestmediakeysystemaccess.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-requestmediakeysystemaccess.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-reset-src-after-setmediakeys.html b/testing/web-platform/tests/encrypted-media/drm-mp4-reset-src-after-setmediakeys.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-reset-src-after-setmediakeys.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-reset-src-after-setmediakeys.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-again-after-playback.html b/testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-again-after-playback.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-again-after-playback.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-again-after-playback.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.html b/testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-at-same-time.html b/testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-at-same-time.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-at-same-time.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-at-same-time.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.html b/testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html b/testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.html b/testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys.html b/testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-setmediakeys.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-syntax-mediakeys.html b/testing/web-platform/tests/encrypted-media/drm-mp4-syntax-mediakeys.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-syntax-mediakeys.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-syntax-mediakeys.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-syntax-mediakeysession.html b/testing/web-platform/tests/encrypted-media/drm-mp4-syntax-mediakeysession.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-syntax-mediakeysession.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-syntax-mediakeysession.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.html b/testing/web-platform/tests/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-unique-origin.html b/testing/web-platform/tests/encrypted-media/drm-mp4-unique-origin.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-unique-origin.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-unique-origin.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-mp4-waiting-for-a-key.html b/testing/web-platform/tests/encrypted-media/drm-mp4-waiting-for-a-key.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-mp4-waiting-for-a-key.html
rename to testing/web-platform/tests/encrypted-media/drm-mp4-waiting-for-a-key.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-not-callable-after-createsession.html b/testing/web-platform/tests/encrypted-media/drm-not-callable-after-createsession.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-not-callable-after-createsession.html
rename to testing/web-platform/tests/encrypted-media/drm-not-callable-after-createsession.https.html
diff --git a/testing/web-platform/tests/encrypted-media/drm-temporary-license-type.html b/testing/web-platform/tests/encrypted-media/drm-temporary-license-type.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/drm-temporary-license-type.html
rename to testing/web-platform/tests/encrypted-media/drm-temporary-license-type.https.html
diff --git a/testing/web-platform/tests/encrypted-media/idlharness.html b/testing/web-platform/tests/encrypted-media/idlharness.https.html
similarity index 100%
rename from testing/web-platform/tests/encrypted-media/idlharness.html
rename to testing/web-platform/tests/encrypted-media/idlharness.https.html
diff --git a/testing/web-platform/tests/encrypted-media/scripts/unique-origin.js b/testing/web-platform/tests/encrypted-media/scripts/unique-origin.js
index ff1122db4de9..015ea9d4e922 100644
--- a/testing/web-platform/tests/encrypted-media/scripts/unique-origin.js
+++ b/testing/web-platform/tests/encrypted-media/scripts/unique-origin.js
@@ -10,7 +10,7 @@ function runTest(config) {
                 resolve(iframe);
             };
             iframe.sandbox = sandbox;
-            iframe.src = src;
+            iframe.srcdoc = src;
             document.documentElement.appendChild(iframe);
         });
     }
@@ -25,7 +25,7 @@ function runTest(config) {
     }
 
     promise_test(function (test) {
-        var script = 'data:text/html,' +
+        var script =
           '