mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-09-30 18:56:40 +00:00
closes #577: add back general.useragent.override.*
This commit is contained in:
parent
2eda8a4d45
commit
a8f4daa76e
@ -52,6 +52,9 @@ XPCOMUtils.defineLazyModuleGetter(this, "ContentClick",
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "NetUtil",
|
||||
"resource://gre/modules/NetUtil.jsm");
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "UserAgentOverrides",
|
||||
"resource://gre/modules/UserAgentOverrides.jsm");
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "FileUtils",
|
||||
"resource://gre/modules/FileUtils.jsm");
|
||||
|
||||
@ -817,6 +820,8 @@ BrowserGlue.prototype = {
|
||||
// handle any UI migration
|
||||
this._migrateUI();
|
||||
|
||||
UserAgentOverrides.init();
|
||||
|
||||
this._syncSearchEngines();
|
||||
|
||||
WebappManager.init();
|
||||
@ -1294,6 +1299,7 @@ BrowserGlue.prototype = {
|
||||
SelfSupportBackend.uninit();
|
||||
|
||||
CustomizationTabPreloader.uninit();
|
||||
UserAgentOverrides.uninit();
|
||||
WebappManager.uninit();
|
||||
|
||||
if (!AppConstants.RELEASE_BUILD) {
|
||||
|
@ -29,6 +29,8 @@ var gOverrides = new Map;
|
||||
var gUpdatedOverrides;
|
||||
var gOverrideForHostCache = new Map;
|
||||
var gInitialized = false;
|
||||
var gRegisteredWithNecko = false;
|
||||
|
||||
var gOverrideFunctions = [
|
||||
function (aHttpChannel) { return UserAgentOverrides.getOverrideForURI(aHttpChannel.URI); }
|
||||
];
|
||||
@ -42,15 +44,6 @@ this.UserAgentOverrides = {
|
||||
gPrefBranch = Services.prefs.getBranch("general.useragent.override.");
|
||||
gPrefBranch.addObserver("", buildOverrides, false);
|
||||
|
||||
ppmm.addMessageListener(OVERRIDE_MESSAGE, this);
|
||||
Services.prefs.addObserver(PREF_OVERRIDES_ENABLED, buildOverrides, false);
|
||||
|
||||
try {
|
||||
Services.obs.addObserver(HTTP_on_modify_request, "http-on-modify-request", false);
|
||||
} catch (x) {
|
||||
// The http-on-modify-request notification is disallowed in content processes.
|
||||
}
|
||||
|
||||
UserAgentUpdates.init(function(overrides) {
|
||||
gOverrideForHostCache.clear();
|
||||
if (overrides) {
|
||||
@ -72,10 +65,12 @@ this.UserAgentOverrides = {
|
||||
},
|
||||
|
||||
getOverrideForURI: function uao_getOverrideForURI(aURI) {
|
||||
if (!gInitialized || !gRegisteredWithNecko ||
|
||||
(!gOverrides.size && !gUpdatedOverrides))
|
||||
return null;
|
||||
|
||||
let host = aURI.asciiHost;
|
||||
if (!gInitialized ||
|
||||
(!gOverrides.size && !gUpdatedOverrides) ||
|
||||
!(host)) {
|
||||
if (!(host)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -118,7 +113,7 @@ this.UserAgentOverrides = {
|
||||
|
||||
Services.prefs.removeObserver(PREF_OVERRIDES_ENABLED, buildOverrides);
|
||||
|
||||
Services.obs.removeObserver(HTTP_on_modify_request, "http-on-modify-request");
|
||||
unregisterWithNecko();
|
||||
},
|
||||
|
||||
receiveMessage: function(aMessage) {
|
||||
@ -133,6 +128,30 @@ this.UserAgentOverrides = {
|
||||
}
|
||||
};
|
||||
|
||||
function registerWithNecko() {
|
||||
if (gRegisteredWithNecko) {
|
||||
return;
|
||||
}
|
||||
|
||||
ppmm.addMessageListener(OVERRIDE_MESSAGE, this);
|
||||
Services.prefs.addObserver(PREF_OVERRIDES_ENABLED, buildOverrides, false);
|
||||
|
||||
try {
|
||||
Services.obs.addObserver(HTTP_on_modify_request, "http-on-modify-request", false);
|
||||
gRegisteredWithNecko = true;
|
||||
} catch (x) {
|
||||
// The http-on-modify-request notification is disallowed in content processes.
|
||||
}
|
||||
}
|
||||
|
||||
function unregisterWithNecko() {
|
||||
if (gRegisteredWithNecko == false) {
|
||||
return;
|
||||
}
|
||||
Services.obs.removeObserver(HTTP_on_modify_request, "http-on-modify-request");
|
||||
gRegisteredWithNecko = false;
|
||||
}
|
||||
|
||||
function getUserAgentFromOverride(override)
|
||||
{
|
||||
let userAgent = gBuiltUAs.get(override);
|
||||
@ -150,6 +169,7 @@ function getUserAgentFromOverride(override)
|
||||
}
|
||||
|
||||
function buildOverrides() {
|
||||
unregisterWithNecko();
|
||||
gOverrides.clear();
|
||||
gOverrideForHostCache.clear();
|
||||
|
||||
@ -162,11 +182,16 @@ function buildOverrides() {
|
||||
for (let domain of domains) {
|
||||
let override = gPrefBranch.getCharPref(domain);
|
||||
let userAgent = getUserAgentFromOverride(override);
|
||||
|
||||
if (userAgent != DEFAULT_UA) {
|
||||
gOverrides.set(domain, userAgent);
|
||||
}
|
||||
}
|
||||
|
||||
// Only register with Necko if there are actually overrides.
|
||||
// See https://bug896114.bmoattachments.org/attachment.cgi?id=778980
|
||||
if (gOverrides.size > 0) {
|
||||
registerWithNecko();
|
||||
}
|
||||
}
|
||||
|
||||
function HTTP_on_modify_request(aSubject, aTopic, aData) {
|
||||
|
Loading…
Reference in New Issue
Block a user