summaryrefslogtreecommitdiffstats
path: root/toolkit/components/formautofill/FormAutofillIntegration.jsm
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/formautofill/FormAutofillIntegration.jsm')
-rw-r--r--toolkit/components/formautofill/FormAutofillIntegration.jsm62
1 files changed, 62 insertions, 0 deletions
diff --git a/toolkit/components/formautofill/FormAutofillIntegration.jsm b/toolkit/components/formautofill/FormAutofillIntegration.jsm
new file mode 100644
index 000000000..4b838a6ab
--- /dev/null
+++ b/toolkit/components/formautofill/FormAutofillIntegration.jsm
@@ -0,0 +1,62 @@
+/* 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 module defines the default implementation of platform-specific functions
+ * that can be overridden by the host application and by add-ons.
+ *
+ * This module should not be imported directly, but the "integration" getter of
+ * the FormAutofill module should be used to get a reference to the currently
+ * defined implementations of the methods.
+ */
+
+"use strict";
+
+this.EXPORTED_SYMBOLS = [
+ "FormAutofillIntegration",
+];
+
+const { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components;
+
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+Cu.import("resource://gre/modules/Services.jsm");
+
+XPCOMUtils.defineLazyModuleGetter(this, "Promise",
+ "resource://gre/modules/Promise.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "RequestAutocompleteUI",
+ "resource://gre/modules/RequestAutocompleteUI.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "Task",
+ "resource://gre/modules/Task.jsm");
+
+/**
+ * This module defines the default implementation of platform-specific functions
+ * that can be overridden by the host application and by add-ons.
+ */
+this.FormAutofillIntegration = {
+ /**
+ * Creates a new RequestAutocompleteUI object.
+ *
+ * @param aAutofillData
+ * Provides the initial data required to display the user interface.
+ * {
+ * sections: [{
+ * name: User-specified section name, or empty string.
+ * addressSections: [{
+ * addressType: "shipping", "billing", or empty string.
+ * fields: [{
+ * fieldName: Type of information requested, like "email".
+ * contactType: For example "work", "home", or empty string.
+ * }],
+ * }],
+ * }],
+ * }
+ *
+ * @return {Promise}
+ * @resolves The newly created RequestAutocompleteUI object.
+ * @rejects JavaScript exception.
+ */
+ createRequestAutocompleteUI: Task.async(function* (aAutofillData) {
+ return new RequestAutocompleteUI(aAutofillData);
+ }),
+};