Bug 1427939 - Convert paymentRequest.js to an ES module. r=sfoster
MozReview-Commit-ID: 9C1iYMchWuD
--- a/browser/base/content/test/static/browser_parsable_script.js
+++ b/browser/base/content/test/static/browser_parsable_script.js
@@ -5,18 +5,19 @@
* detect newly occurring issues in shipping JS. It is a list of regexes
* matching files which have errors:
*/
const kWhitelist = new Set([
/browser\/content\/browser\/places\/controller.js$/,
]);
const kESModuleList = new Set([
- /toolkit\/res\/payments\/(components|containers|mixins)\/.*.js$/,
- /toolkit\/res\/payments\/PaymentsStore.js$/,
+ /toolkit\/res\/payments\/(components|containers|mixins)\/.*\.js$/,
+ /toolkit\/res\/payments\/paymentRequest\.js$/,
+ /toolkit\/res\/payments\/PaymentsStore\.js$/,
]);
// Normally we would use reflect.jsm to get Reflect.parse. However, if
// we do that, then all the AST data is allocated in reflect.jsm's
// zone. That exposes a bug in our GC. The GC collects reflect.jsm's
// zone but not the zone in which our test code lives (since no new
// data is being allocated in it). The cross-compartment wrappers in
// our zone that point to the AST data never get collected, and so the
--- a/toolkit/components/payments/.eslintrc.js
+++ b/toolkit/components/payments/.eslintrc.js
@@ -2,16 +2,17 @@
module.exports = {
overrides: [
{
files: [
"res/components/*.js",
"res/containers/*.js",
"res/mixins/*.js",
+ "res/paymentRequest.js",
"res/PaymentsStore.js",
"test/mochitest/test_*.html",
],
parserOptions: {
sourceType: "module",
},
},
],
--- a/toolkit/components/payments/res/containers/basic-card-form.js
+++ b/toolkit/components/payments/res/containers/basic-card-form.js
@@ -1,16 +1,16 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/* import-globals-from ../../../../../browser/extensions/formautofill/content/autofillEditForms.js*/
import PaymentStateSubscriberMixin from "../mixins/PaymentStateSubscriberMixin.js";
+import paymentRequest from "../paymentRequest.js";
/* import-globals-from ../unprivileged-fallbacks.js */
-/* import-globals-from ../paymentRequest.js */
/**
* <basic-card-form></basic-card-form>
*
* XXX: Bug 1446164 - This form isn't localized when used via this custom element
* as it will be much easier to share the logic once we switch to Fluent.
*/
--- a/toolkit/components/payments/res/containers/payment-dialog.js
+++ b/toolkit/components/payments/res/containers/payment-dialog.js
@@ -1,24 +1,24 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
import "../vendor/custom-elements.min.js";
import PaymentStateSubscriberMixin from "../mixins/PaymentStateSubscriberMixin.js";
+import paymentRequest from "../paymentRequest.js";
import "../components/currency-amount.js";
import "./address-picker.js";
import "./basic-card-form.js";
import "./order-details.js";
import "./payment-method-picker.js";
import "./shipping-option-picker.js";
-/* global paymentRequest */
/* import-globals-from ../unprivileged-fallbacks.js */
/**
* <payment-dialog></payment-dialog>
*/
export default class PaymentDialog extends PaymentStateSubscriberMixin(HTMLElement) {
constructor() {
--- a/toolkit/components/payments/res/paymentRequest.js
+++ b/toolkit/components/payments/res/paymentRequest.js
@@ -5,18 +5,16 @@
/**
* Loaded in the unprivileged frame of each payment dialog.
*
* Communicates with privileged code via DOM Events.
*/
/* import-globals-from unprivileged-fallbacks.js */
-"use strict";
-
var paymentRequest = {
domReadyPromise: null,
init() {
// listen to content
window.addEventListener("paymentChromeToContent", this);
window.addEventListener("keydown", this);
@@ -165,8 +163,10 @@ var paymentRequest = {
onPaymentRequestUnload() {
// remove listeners that may be used multiple times here
window.removeEventListener("paymentChromeToContent", this);
},
};
paymentRequest.init();
+
+export default paymentRequest;
--- a/toolkit/components/payments/res/paymentRequest.xhtml
+++ b/toolkit/components/payments/res/paymentRequest.xhtml
@@ -43,18 +43,17 @@
<link rel="stylesheet" href="components/payment-details-item.css"/>
<link rel="stylesheet" href="containers/order-details.css"/>
<script src="unprivileged-fallbacks.js"></script>
<script src="formautofill/autofillEditForms.js"></script>
<script type="module" src="containers/payment-dialog.js"></script>
-
- <script src="paymentRequest.js"></script>
+ <script type="module" src="paymentRequest.js"></script>
<template id="payment-dialog-template">
<header>
<div id="total">
<h2 class="label"></h2>
<currency-amount></currency-amount>
<div id="host-name"></div>
</div>
--- a/toolkit/components/payments/test/mochitest/test_basic_card_form.html
+++ b/toolkit/components/payments/test/mochitest/test_basic_card_form.html
@@ -9,17 +9,16 @@ Test the basic-card-form element
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
<script type="application/javascript" src="/tests/SimpleTest/AddTask.js"></script>
<script src="sinon-2.3.2.js"></script>
<script src="payments_common.js"></script>
<script src="../../res/vendor/custom-elements.min.js"></script>
<script src="../../res/unprivileged-fallbacks.js"></script>
<script src="autofillEditForms.js"></script>
- <script src="../../res/paymentRequest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
<link rel="stylesheet" type="text/css" href="../../res/paymentRequest.css"/>
</head>
<body>
<p id="display">
</p>
<div id="content" style="display: none">
--- a/toolkit/components/payments/test/mochitest/test_payer_address_picker.html
+++ b/toolkit/components/payments/test/mochitest/test_payer_address_picker.html
@@ -6,16 +6,17 @@ Test the paymentOptions address-picker
<head>
<meta charset="utf-8">
<title>Test the paymentOptions address-picker</title>
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="application/javascript" src="/tests/SimpleTest/AddTask.js"></script>
<script src="payments_common.js"></script>
<script src="../../res/vendor/custom-elements.min.js"></script>
+ <script src="../../res/unprivileged-fallbacks.js"></script>
<link rel="stylesheet" type="text/css" href="../../res/components/rich-select.css"/>
<link rel="stylesheet" type="text/css" href="../../res/components/address-option.css"/>
<link rel="stylesheet" type="text/css" href="../../res/paymentRequest.css"/>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
</head>
<body>
<p id="display">
--- a/toolkit/components/payments/test/mochitest/test_payment_dialog.html
+++ b/toolkit/components/payments/test/mochitest/test_payment_dialog.html
@@ -6,16 +6,18 @@ Test the payment-dialog custom element
<head>
<meta charset="utf-8">
<title>Test the payment-dialog element</title>
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="application/javascript" src="/tests/SimpleTest/AddTask.js"></script>
<script src="sinon-2.3.2.js"></script>
<script src="payments_common.js"></script>
<script src="../../res/vendor/custom-elements.min.js"></script>
+ <script src="../../res/unprivileged-fallbacks.js"></script>
+
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
<link rel="stylesheet" type="text/css" href="../../res/paymentRequest.css"/>
</head>
<body>
<p id="display">
<iframe id="templateFrame" src="../../res/paymentRequest.xhtml" width="0" height="0"></iframe>
</p>
<div id="content" style="display: none">