summaryrefslogtreecommitdiffstats
path: root/devtools/shared/touch/simulator-content.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/shared/touch/simulator-content.js')
-rw-r--r--devtools/shared/touch/simulator-content.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/devtools/shared/touch/simulator-content.js b/devtools/shared/touch/simulator-content.js
new file mode 100644
index 000000000..0b10579ca
--- /dev/null
+++ b/devtools/shared/touch/simulator-content.js
@@ -0,0 +1,43 @@
+/* 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/. */
+ /* globals addMessageListener, sendAsyncMessage */
+"use strict";
+
+const { utils: Cu } = Components;
+const { require } = Cu.import("resource://devtools/shared/Loader.jsm", {});
+const { SimulatorCore } = require("devtools/shared/touch/simulator-core");
+
+/**
+ * Launches SimulatorCore in the content window to simulate touch events
+ * This frame script is managed by `simulator.js`.
+ */
+
+var simulator = {
+ messages: [
+ "TouchEventSimulator:Start",
+ "TouchEventSimulator:Stop",
+ ],
+
+ init() {
+ this.simulatorCore = new SimulatorCore(docShell.chromeEventHandler);
+ this.messages.forEach(msgName => {
+ addMessageListener(msgName, this);
+ });
+ },
+
+ receiveMessage(msg) {
+ switch (msg.name) {
+ case "TouchEventSimulator:Start":
+ this.simulatorCore.start();
+ sendAsyncMessage("TouchEventSimulator:Started");
+ break;
+ case "TouchEventSimulator:Stop":
+ this.simulatorCore.stop();
+ sendAsyncMessage("TouchEventSimulator:Stopped");
+ break;
+ }
+ },
+};
+
+simulator.init();