summaryrefslogtreecommitdiff
path: root/data/web-extension-api.js
blob: 83e85bd339495d1d0ed776cca52b2b26c6b18c03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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;