Improve SSUAO to provide more accurate OS information.
This commit is contained in:
parent
812072e9b6
commit
c03564ad50
|
@ -2,6 +2,10 @@
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#ifdef XP_WIN
|
||||||
|
#define UA_SPARE_PLATFORM
|
||||||
|
#endif
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
this.EXPORTED_SYMBOLS = [ "UserAgentOverrides" ];
|
this.EXPORTED_SYMBOLS = [ "UserAgentOverrides" ];
|
||||||
|
@ -18,6 +22,14 @@ const PREF_OVERRIDES_ENABLED = "general.useragent.site_specific_overrides";
|
||||||
const DEFAULT_UA = Cc["@mozilla.org/network/protocol;1?name=http"]
|
const DEFAULT_UA = Cc["@mozilla.org/network/protocol;1?name=http"]
|
||||||
.getService(Ci.nsIHttpProtocolHandler)
|
.getService(Ci.nsIHttpProtocolHandler)
|
||||||
.userAgent;
|
.userAgent;
|
||||||
|
const OSCPU = Cc["@mozilla.org/network/protocol;1?name=http"]
|
||||||
|
.getService(Ci.nsIHttpProtocolHandler)
|
||||||
|
.oscpu;
|
||||||
|
#ifndef UA_SPARE_PLATFORM
|
||||||
|
const PLATFORM = Cc["@mozilla.org/network/protocol;1?name=http"]
|
||||||
|
.getService(Ci.nsIHttpProtocolHandler)
|
||||||
|
.platform;
|
||||||
|
#endif
|
||||||
const MAX_OVERRIDE_FOR_HOST_CACHE_SIZE = 250;
|
const MAX_OVERRIDE_FOR_HOST_CACHE_SIZE = 250;
|
||||||
|
|
||||||
XPCOMUtils.defineLazyServiceGetter(this, "ppmm",
|
XPCOMUtils.defineLazyServiceGetter(this, "ppmm",
|
||||||
|
@ -33,12 +45,20 @@ var gOverrideFunctions = [
|
||||||
function (aHttpChannel) { return UserAgentOverrides.getOverrideForURI(aHttpChannel.URI); }
|
function (aHttpChannel) { return UserAgentOverrides.getOverrideForURI(aHttpChannel.URI); }
|
||||||
];
|
];
|
||||||
var gBuiltUAs = new Map;
|
var gBuiltUAs = new Map;
|
||||||
|
var gOSSlice;
|
||||||
|
|
||||||
this.UserAgentOverrides = {
|
this.UserAgentOverrides = {
|
||||||
init: function uao_init() {
|
init: function uao_init() {
|
||||||
if (gInitialized)
|
if (gInitialized)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
gOSSlice = OSCPU + ";";
|
||||||
|
#ifndef UA_SPARE_PLATFORM
|
||||||
|
if (PLATFORM != "") {
|
||||||
|
gOSSlice = PLATFORM + "; " + gOSSlice;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
gPrefBranch = Services.prefs.getBranch("general.useragent.override.");
|
gPrefBranch = Services.prefs.getBranch("general.useragent.override.");
|
||||||
gPrefBranch.addObserver("", buildOverrides, false);
|
gPrefBranch.addObserver("", buildOverrides, false);
|
||||||
|
|
||||||
|
@ -143,7 +163,7 @@ function getUserAgentFromOverride(override)
|
||||||
if (search && replace) {
|
if (search && replace) {
|
||||||
userAgent = DEFAULT_UA.replace(new RegExp(search, "g"), replace);
|
userAgent = DEFAULT_UA.replace(new RegExp(search, "g"), replace);
|
||||||
} else {
|
} else {
|
||||||
userAgent = override;
|
userAgent = override.replace(/%OS_SLICE%/g, gOSSlice);
|
||||||
}
|
}
|
||||||
gBuiltUAs.set(override, userAgent);
|
gBuiltUAs.set(override, userAgent);
|
||||||
return userAgent;
|
return userAgent;
|
||||||
|
|
|
@ -99,9 +99,9 @@ IPDL_SOURCES += [
|
||||||
'PHttpChannel.ipdl',
|
'PHttpChannel.ipdl',
|
||||||
]
|
]
|
||||||
|
|
||||||
EXTRA_JS_MODULES += ['UserAgentOverrides.jsm']
|
EXTRA_JS_MODULES += ['UserAgentUpdates.jsm']
|
||||||
|
|
||||||
EXTRA_PP_JS_MODULES += ['UserAgentUpdates.jsm']
|
EXTRA_PP_JS_MODULES += ['UserAgentOverrides.jsm']
|
||||||
|
|
||||||
include('/ipc/chromium/chromium-config.mozbuild')
|
include('/ipc/chromium/chromium-config.mozbuild')
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user