summaryrefslogtreecommitdiffstats
path: root/devtools/shared/fronts/settings.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/shared/fronts/settings.js')
-rw-r--r--devtools/shared/fronts/settings.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/devtools/shared/fronts/settings.js b/devtools/shared/fronts/settings.js
new file mode 100644
index 000000000..158425364
--- /dev/null
+++ b/devtools/shared/fronts/settings.js
@@ -0,0 +1,29 @@
+/* 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/. */
+"use strict";
+
+const {settingsSpec} = require("devtools/shared/specs/settings");
+const protocol = require("devtools/shared/protocol");
+
+const SettingsFront = protocol.FrontClassWithSpec(settingsSpec, {
+ initialize: function (client, form) {
+ protocol.Front.prototype.initialize.call(this, client);
+ this.actorID = form.settingsActor;
+ this.manage(this);
+ },
+});
+
+const _knownSettingsFronts = new WeakMap();
+
+exports.getSettingsFront = function (client, form) {
+ if (!form.settingsActor) {
+ return null;
+ }
+ if (_knownSettingsFronts.has(client)) {
+ return _knownSettingsFronts.get(client);
+ }
+ let front = new SettingsFront(client, form);
+ _knownSettingsFronts.set(client, front);
+ return front;
+};