aboutsummaryrefslogtreecommitdiffstats
path: root/platform
diff options
context:
space:
mode:
authorDeathamns <deathamns@gmail.com>2014-12-18 14:43:34 +0100
committerDeathamns <deathamns@gmail.com>2015-01-13 07:29:21 +0100
commite61514b9b112db75d0f6df68fb627c2014609f6f (patch)
tree0debfd4f942802ec0039b1177040a692fa2c0a6f /platform
parent20bd1287cfd355d73f16f39b59c43ee486e3129c (diff)
downloaduBlock-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.js49
-rw-r--r--platform/firefox/vapi-background.js5
-rw-r--r--platform/safari/Info.plist2
-rw-r--r--platform/safari/vapi-background.js12
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]
};
/******************************************************************************/