diff options
author | Deathamns <deathamns@gmail.com> | 2014-12-18 14:43:34 +0100 |
---|---|---|
committer | Deathamns <deathamns@gmail.com> | 2015-01-13 07:29:21 +0100 |
commit | e61514b9b112db75d0f6df68fb627c2014609f6f (patch) | |
tree | 0debfd4f942802ec0039b1177040a692fa2c0a6f /platform | |
parent | 20bd1287cfd355d73f16f39b59c43ee486e3129c (diff) | |
download | uBlock-e61514b9b112db75d0f6df68fb627c2014609f6f.zip uBlock-e61514b9b112db75d0f6df68fb627c2014609f6f.tar.gz uBlock-e61514b9b112db75d0f6df68fb627c2014609f6f.tar.bz2 |
Firefox,Safari: fill vAPI.app in a different way
Pass the extension data (name and version) as the fragment of the URL
for the background script, so vAPI.app can be filled without using XHR
to read the manifest files.
Diffstat (limited to 'platform')
-rw-r--r-- | platform/firefox/bootstrap.js | 49 | ||||
-rw-r--r-- | platform/firefox/vapi-background.js | 5 | ||||
-rw-r--r-- | platform/safari/Info.plist | 2 | ||||
-rw-r--r-- | platform/safari/vapi-background.js | 12 |
4 files changed, 29 insertions, 39 deletions
diff --git a/platform/firefox/bootstrap.js b/platform/firefox/bootstrap.js index c601c73..330ed84 100644 --- a/platform/firefox/bootstrap.js +++ b/platform/firefox/bootstrap.js @@ -19,43 +19,37 @@ Home: https://github.com/gorhill/uBlock */ -/* global Services, APP_STARTUP, APP_SHUTDOWN */ +/* global APP_SHUTDOWN */ /* exported startup, shutdown, install, uninstall */ 'use strict'; /******************************************************************************/ -var bgProcess; - -Components.utils['import']('resource://gre/modules/Services.jsm'); +let bgProcess; /******************************************************************************/ -function startup(data, reason) { - bgProcess = function(ev) { - if (ev) { - this.removeEventListener(ev.type, bgProcess); - } +function startup(data) { + let {AddonManager} = Components.utils['import']( + 'resource://gre/modules/AddonManager.jsm', + null + ); + + AddonManager.getAddonByID(data.id, addon => { + let hDoc = Components.classes['@mozilla.org/appshell/appShellService;1'] + .getService(Components.interfaces.nsIAppShellService) + .hiddenDOMWindow.document; - bgProcess = Services.appShell.hiddenDOMWindow.document; - bgProcess = bgProcess.documentElement.appendChild( - bgProcess.createElementNS('http://www.w3.org/1999/xhtml', 'iframe') + bgProcess = hDoc.documentElement.appendChild( + hDoc.createElementNS('http://www.w3.org/1999/xhtml', 'iframe') ); - bgProcess.setAttribute('src', 'chrome://ublock/content/background.html'); - }; - - if (reason === APP_STARTUP) { - Services.ww.registerNotification({ - observe: function(win) { - Services.ww.unregisterNotification(this); - win.addEventListener('DOMContentLoaded', bgProcess); - } - }); - } - else { - bgProcess(); - } + + let bgURI = 'chrome://ublock/content/background.html'; + + // send addon data synchronously to the background script + bgProcess.src = bgURI + '#' + [addon.name, addon.version]; + }); } /******************************************************************************/ @@ -70,7 +64,8 @@ function shutdown(data, reason) { function install() { // https://bugzil.la/719376 - Services.strings.flushBundles(); + Components.classes['@mozilla.org/intl/stringbundle;1'] + .getService(Components.interfaces.nsIStringBundleService).flushBundles(); } /******************************************************************************/ diff --git a/platform/firefox/vapi-background.js b/platform/firefox/vapi-background.js index 5481723..4afb30e 100644 --- a/platform/firefox/vapi-background.js +++ b/platform/firefox/vapi-background.js @@ -43,9 +43,10 @@ vAPI.firefox = true; /******************************************************************************/ +vAPI.app = location.hash.slice(1).split(','); vAPI.app = { - name: 'µBlock', - version: '0.8.2.0' + name: vAPI.app[0], + version: vAPI.app[1] }; /******************************************************************************/ diff --git a/platform/safari/Info.plist b/platform/safari/Info.plist index 7c1da4c..0e05e50 100644 --- a/platform/safari/Info.plist +++ b/platform/safari/Info.plist @@ -21,7 +21,7 @@ <key>Database Quota</key> <real>52428800</real> <key>Global Page</key> - <string>background.html</string> + <string>background.html#{appInfo}</string> <key>Popovers</key> <array> <dict> diff --git a/platform/safari/vapi-background.js b/platform/safari/vapi-background.js index 50cfea7..8de5513 100644 --- a/platform/safari/vapi-background.js +++ b/platform/safari/vapi-background.js @@ -32,20 +32,14 @@ /******************************************************************************/ self.vAPI = self.vAPI || {}; - vAPI.safari = true; /******************************************************************************/ -var xhr = new XMLHttpRequest; -xhr.overrideMimeType('application/x-javascript;charset=utf-8'); -xhr.open('GET', 'Info.plist', false); -xhr.send(); -xhr = xhr.responseText; - +vAPI.app = location.hash.slice(1).split(','); vAPI.app = { - name: xhr.match(/DisplayName<\S+[^>]+>([^<]+)/)[1], - version: xhr.match(/ShortVersionString<\S+[^>]+>([^<]+)/)[1] + name: decodeURIComponent(vAPI.app[0]), + version: vAPI.app[1] }; /******************************************************************************/ |