summaryrefslogtreecommitdiffstats
path: root/addon-sdk/source/examples/toolbar-api
diff options
context:
space:
mode:
Diffstat (limited to 'addon-sdk/source/examples/toolbar-api')
-rw-r--r--addon-sdk/source/examples/toolbar-api/data/favicon.icobin0 -> 15086 bytes
-rw-r--r--addon-sdk/source/examples/toolbar-api/data/index.html21
-rw-r--r--addon-sdk/source/examples/toolbar-api/lib/main.js48
-rw-r--r--addon-sdk/source/examples/toolbar-api/package.json12
-rw-r--r--addon-sdk/source/examples/toolbar-api/test/test-main.js10
5 files changed, 91 insertions, 0 deletions
diff --git a/addon-sdk/source/examples/toolbar-api/data/favicon.ico b/addon-sdk/source/examples/toolbar-api/data/favicon.ico
new file mode 100644
index 000000000..ae5084bc0
--- /dev/null
+++ b/addon-sdk/source/examples/toolbar-api/data/favicon.ico
Binary files differ
diff --git a/addon-sdk/source/examples/toolbar-api/data/index.html b/addon-sdk/source/examples/toolbar-api/data/index.html
new file mode 100644
index 000000000..4c91a63ae
--- /dev/null
+++ b/addon-sdk/source/examples/toolbar-api/data/index.html
@@ -0,0 +1,21 @@
+<!-- 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/. -->
+
+<html>
+ <body>
+ <button id=post>post!</button>
+ </body>
+ <script>
+ window.addEventListener("message", event => {
+ console.log("Document message", event, event.data, event.source !== window && event.source === window.parent);
+ });
+ window.addEventListener("click", event => {
+ if (event.target.id === "post") {
+ console.log("click!")
+ window.parent.postMessage("ping!", "*");
+ }
+ });
+ console.log(window.parent === window)
+ </script>
+</html>
diff --git a/addon-sdk/source/examples/toolbar-api/lib/main.js b/addon-sdk/source/examples/toolbar-api/lib/main.js
new file mode 100644
index 000000000..a538c8cd6
--- /dev/null
+++ b/addon-sdk/source/examples/toolbar-api/lib/main.js
@@ -0,0 +1,48 @@
+/* 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 { Toolbar } = require("sdk/ui/toolbar");
+const { Frame } = require("sdk/ui/frame");
+const { ActionButton } = require("sdk/ui/button/action");
+
+var button = new ActionButton({
+ id: "button",
+ label: "send!",
+ icon: "./favicon.ico",
+ onClick: () => {
+ frame.postMessage({
+ hello: "content"
+ });
+ }
+});
+
+var frame = new Frame({
+ url: "./index.html",
+ onAttach: () => {
+ console.log("frame was attached");
+ },
+ onReady: () => {
+ console.log("frame document was loaded");
+ },
+ onLoad: () => {
+ console.log("frame load complete");
+ },
+ onMessage: (event) => {
+ console.log("got message from frame content", event);
+ if (event.data === "ping!")
+ event.source.postMessage("pong!", event.source.origin);
+ }
+});
+var toolbar = new Toolbar({
+ items: [frame],
+ title: "Addon Demo",
+ hidden: false,
+ onShow: () => {
+ console.log("toolbar was shown");
+ },
+ onHide: () => {
+ console.log("toolbar was hidden");
+ }
+});
diff --git a/addon-sdk/source/examples/toolbar-api/package.json b/addon-sdk/source/examples/toolbar-api/package.json
new file mode 100644
index 000000000..62af7f7ff
--- /dev/null
+++ b/addon-sdk/source/examples/toolbar-api/package.json
@@ -0,0 +1,12 @@
+{
+ "name": "toolbar-api",
+ "title": "Toolbar API",
+ "main": "./lib/main.js",
+ "description": "a toolbar api example",
+ "author": "",
+ "license": "MPL-2.0",
+ "version": "0.1.1",
+ "engines": {
+ "firefox": ">=27.0 <=30.0"
+ }
+}
diff --git a/addon-sdk/source/examples/toolbar-api/test/test-main.js b/addon-sdk/source/examples/toolbar-api/test/test-main.js
new file mode 100644
index 000000000..9862fc20b
--- /dev/null
+++ b/addon-sdk/source/examples/toolbar-api/test/test-main.js
@@ -0,0 +1,10 @@
+/* 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";
+
+exports.testMain = function(assert) {
+ assert.pass("TODO: Write some tests.");
+};
+
+require("sdk/test").run(exports);