diff options
Diffstat (limited to 'addon-sdk/source/examples/toolbar-api')
-rw-r--r-- | addon-sdk/source/examples/toolbar-api/data/favicon.ico | bin | 0 -> 15086 bytes | |||
-rw-r--r-- | addon-sdk/source/examples/toolbar-api/data/index.html | 21 | ||||
-rw-r--r-- | addon-sdk/source/examples/toolbar-api/lib/main.js | 48 | ||||
-rw-r--r-- | addon-sdk/source/examples/toolbar-api/package.json | 12 | ||||
-rw-r--r-- | addon-sdk/source/examples/toolbar-api/test/test-main.js | 10 |
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 Binary files differnew file mode 100644 index 000000000..ae5084bc0 --- /dev/null +++ b/addon-sdk/source/examples/toolbar-api/data/favicon.ico 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); |