diff options
Diffstat (limited to 'data/web-extension-api.js')
-rw-r--r-- | data/web-extension-api.js | 24 |
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; |