diff options
Diffstat (limited to 'js/firefox/page-shim.js')
-rw-r--r-- | js/firefox/page-shim.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/js/firefox/page-shim.js b/js/firefox/page-shim.js new file mode 100644 index 0000000..fc63f89 --- /dev/null +++ b/js/firefox/page-shim.js @@ -0,0 +1,62 @@ +(function() { + //Communication functions for + + var messageId = 1; + var callbacks = {}; + function send(type, message, callback) { + var id = messageId++; + window.postMessage({sender:'page', messageId:id, messageType:type, payload:message}, '*'); + callbacks[id] = callback; + } + + window.addEventListener('message', function(message) { + if (message.data.sender == 'page') { + return; //Ignore messages we sent ourselves + } + + console.info('page got message: ' + JSON.stringify(message.data)); + + var callback = callbacks[message.data.messageId]; + if (callback) { + callback(message.data.payload); + delete callbacks[message.data.messageId]; + } + }); + + window.chrome = { + storage : { + local : { + get : function(query, callback) { + send('storage.get', query, callback); + }, + set : function(data, callback) { + send('storage.set', data, callback); + } + } + }, + + extension : { + getURL : function(file) { + return document.location.protocol + '//' + document.location.host + '/' + file; + } + }, + + tabs : { + query : function(data, callback) { + + }, + + update : function(tabId, options, callback) { + + } + }, + + runtime : { + getManifest : function() { + return { version : '3.0' }; + } + } + }; + +})(); + |