summaryrefslogtreecommitdiffstats
path: root/browser/components/payments/res/unprivileged-fallbacks.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/payments/res/unprivileged-fallbacks.js')
-rw-r--r--browser/components/payments/res/unprivileged-fallbacks.js159
1 files changed, 159 insertions, 0 deletions
diff --git a/browser/components/payments/res/unprivileged-fallbacks.js b/browser/components/payments/res/unprivileged-fallbacks.js
new file mode 100644
index 0000000000..ee7e47a7df
--- /dev/null
+++ b/browser/components/payments/res/unprivileged-fallbacks.js
@@ -0,0 +1,159 @@
+/* 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/. */
+
+/**
+ * This file defines fallback objects to be used during development outside
+ * of the paymentDialogWrapper. When loaded in the wrapper, a frame script
+ * overwrites these methods. Since these methods need to get overwritten in the
+ * global scope, it can't be converted into an ES module.
+ */
+
+/* eslint-disable no-console */
+/* exported log, PaymentDialogUtils */
+
+"use strict";
+
+var log = {
+ error: console.error.bind(console, "paymentRequest.xhtml:"),
+ warn: console.warn.bind(console, "paymentRequest.xhtml:"),
+ info: console.info.bind(console, "paymentRequest.xhtml:"),
+ debug: console.debug.bind(console, "paymentRequest.xhtml:"),
+};
+
+var PaymentDialogUtils = {
+ getAddressLabel(address, addressFields = null) {
+ if (addressFields) {
+ let requestedFields = addressFields.trim().split(/\s+/);
+ return (
+ requestedFields
+ .filter(f => f && address[f])
+ .map(f => address[f])
+ .join(", ") + ` (${address.guid})`
+ );
+ }
+ return `${address.name} (${address.guid})`;
+ },
+
+ getCreditCardNetworks() {
+ // Shim for list of known and supported credit card network ids as exposed by
+ // toolkit/modules/CreditCard.jsm
+ return [
+ "amex",
+ "cartebancaire",
+ "diners",
+ "discover",
+ "jcb",
+ "mastercard",
+ "mir",
+ "unionpay",
+ "visa",
+ ];
+ },
+ isCCNumber(str) {
+ return !!str.replace(/[-\s]/g, "").match(/^\d{9,}$/);
+ },
+ DEFAULT_REGION: "US",
+ countries: new Map([
+ ["US", "United States"],
+ ["CA", "Canada"],
+ ["DE", "Germany"],
+ ]),
+ getFormFormat(country) {
+ if (country == "DE") {
+ return {
+ addressLevel3Label: "suburb",
+ addressLevel2Label: "city",
+ addressLevel1Label: "province",
+ addressLevel1Options: null,
+ postalCodeLabel: "postalCode",
+ fieldsOrder: [
+ {
+ fieldId: "name",
+ newLine: true,
+ },
+ {
+ fieldId: "organization",
+ newLine: true,
+ },
+ {
+ fieldId: "street-address",
+ newLine: true,
+ },
+ { fieldId: "postal-code" },
+ { fieldId: "address-level2" },
+ ],
+ postalCodePattern: "\\d{5}",
+ countryRequiredFields: [
+ "street-address",
+ "address-level2",
+ "postal-code",
+ ],
+ };
+ }
+
+ let addressLevel1Options = null;
+ if (country == "US") {
+ addressLevel1Options = new Map([
+ ["CA", "California"],
+ ["MA", "Massachusetts"],
+ ["MI", "Michigan"],
+ ]);
+ } else if (country == "CA") {
+ addressLevel1Options = new Map([
+ ["NS", "Nova Scotia"],
+ ["ON", "Ontario"],
+ ["YT", "Yukon"],
+ ]);
+ }
+
+ let fieldsOrder = [
+ { fieldId: "name", newLine: true },
+ { fieldId: "street-address", newLine: true },
+ { fieldId: "address-level2" },
+ { fieldId: "address-level1" },
+ { fieldId: "postal-code" },
+ { fieldId: "organization" },
+ ];
+ if (country == "BR") {
+ fieldsOrder.splice(2, 0, { fieldId: "address-level3" });
+ }
+
+ return {
+ addressLevel3Label: "suburb",
+ addressLevel2Label: "city",
+ addressLevel1Label: country == "US" ? "state" : "province",
+ addressLevel1Options,
+ postalCodeLabel: country == "US" ? "zip" : "postalCode",
+ fieldsOrder,
+ // The following values come from addressReferences.js and should not be changed.
+ /* eslint-disable-next-line max-len */
+ postalCodePattern:
+ country == "US"
+ ? "(\\d{5})(?:[ \\-](\\d{4}))?"
+ : "[ABCEGHJKLMNPRSTVXY]\\d[ABCEGHJ-NPRSTV-Z] ?\\d[ABCEGHJ-NPRSTV-Z]\\d",
+ countryRequiredFields:
+ country == "US" || country == "CA"
+ ? [
+ "street-address",
+ "address-level2",
+ "address-level1",
+ "postal-code",
+ ]
+ : ["street-address", "address-level2", "postal-code"],
+ };
+ },
+ findAddressSelectOption(selectEl, address, fieldName) {
+ return null;
+ },
+ getDefaultPreferences() {
+ let prefValues = {
+ saveCreditCardDefaultChecked: false,
+ saveAddressDefaultChecked: true,
+ };
+ return prefValues;
+ },
+ isOfficialBranding() {
+ return false;
+ },
+};