summaryrefslogtreecommitdiff
path: root/data/web-extension-api.js
diff options
context:
space:
mode:
Diffstat (limited to 'data/web-extension-api.js')
-rw-r--r--data/web-extension-api.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/data/web-extension-api.js b/data/web-extension-api.js
new file mode 100644
index 00000000..83e85bd3
--- /dev/null
+++ b/data/web-extension-api.js
@@ -0,0 +1,24 @@
+// Promise-based message handler
+var promises = [];
+var last_promise = 0;
+var m = function (fn, args, cb) {
+ var promise = new Promise (function (resolve, reject) {
+ window.webkit.messageHandlers.midori.postMessage ({fn: fn, args: args, promise: last_promise});
+ last_promise = promises.push({resolve: resolve, reject: reject});
+ });
+ return promise;
+}
+
+// Browser API
+window.browser = {
+ tabs: {
+ create: function (args, cb) { return m ('tabs.create', args, cb); },
+ executeScript: function (args, cb) { return m ('tabs.executeScript', args, cb); },
+ },
+ notifications: {
+ create: function (args, cb) { return m ('notifications.create', args, cb); },
+ }
+}
+
+// Compatibility with Chrome
+window.chrome = window.browser;