mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-22 07:07:30 +09:00
Issue #1482 - Give dynamic SSUAO rules priority over static ones
This commit is contained in:
parent
30e381eea2
commit
4f0a0c4606
1 changed files with 19 additions and 7 deletions
|
|
@ -30,6 +30,7 @@ XPCOMUtils.defineLazyServiceGetter(this, "ppmm",
|
||||||
var gPrefBranch;
|
var gPrefBranch;
|
||||||
var gOverrides = new Map;
|
var gOverrides = new Map;
|
||||||
var gUpdatedOverrides;
|
var gUpdatedOverrides;
|
||||||
|
var gOldDynOverrides;
|
||||||
var gOverrideForHostCache = new Map;
|
var gOverrideForHostCache = new Map;
|
||||||
var gInitialized = false;
|
var gInitialized = false;
|
||||||
var gOverrideFunctions = [
|
var gOverrideFunctions = [
|
||||||
|
|
@ -55,7 +56,10 @@ this.UserAgentOverrides = {
|
||||||
}
|
}
|
||||||
|
|
||||||
UserAgentUpdates.init(function(overrides) {
|
UserAgentUpdates.init(function(overrides) {
|
||||||
gOverrideForHostCache.clear();
|
if (overrides == gOldDynOverrides) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
gOldDynOverrides = overrides;
|
||||||
if (overrides) {
|
if (overrides) {
|
||||||
for (let domain in overrides) {
|
for (let domain in overrides) {
|
||||||
overrides[domain] = getUserAgentFromOverride(overrides[domain]);
|
overrides[domain] = getUserAgentFromOverride(overrides[domain]);
|
||||||
|
|
@ -63,6 +67,7 @@ this.UserAgentOverrides = {
|
||||||
overrides.get = function(key) { return this[key]; };
|
overrides.get = function(key) { return this[key]; };
|
||||||
}
|
}
|
||||||
gUpdatedOverrides = overrides;
|
gUpdatedOverrides = overrides;
|
||||||
|
buildOverrides();
|
||||||
});
|
});
|
||||||
|
|
||||||
buildOverrides();
|
buildOverrides();
|
||||||
|
|
@ -159,10 +164,16 @@ function buildOverrides() {
|
||||||
if (!Services.prefs.getBoolPref(PREF_OVERRIDES_ENABLED))
|
if (!Services.prefs.getBoolPref(PREF_OVERRIDES_ENABLED))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
let builtUAs = new Map;
|
|
||||||
let domains = gPrefBranch.getChildList("");
|
let domains = gPrefBranch.getChildList("");
|
||||||
|
|
||||||
|
// Since the static override map has the highest priority, we build it so
|
||||||
|
// that it includes only domains with user-set overrides and domains with
|
||||||
|
// default pre-set overrides that are not overridden by dynamic updates.
|
||||||
for (let domain of domains) {
|
for (let domain of domains) {
|
||||||
|
if (!(gUpdatedOverrides && gUpdatedOverrides.get(domain)) ||
|
||||||
|
gPrefBranch.prefHasUserValue(domain)) {
|
||||||
|
// Here we selected domains that are not dynamically overridden
|
||||||
|
// or have a user-set override.
|
||||||
let override = gPrefBranch.getCharPref(domain);
|
let override = gPrefBranch.getCharPref(domain);
|
||||||
let userAgent = getUserAgentFromOverride(override);
|
let userAgent = getUserAgentFromOverride(override);
|
||||||
|
|
||||||
|
|
@ -170,6 +181,7 @@ function buildOverrides() {
|
||||||
gOverrides.set(domain, userAgent);
|
gOverrides.set(domain, userAgent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function HTTP_on_modify_request(aSubject, aTopic, aData) {
|
function HTTP_on_modify_request(aSubject, aTopic, aData) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue