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
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#ifdef XP_WIN
|
||||
#define UA_SPARE_PLATFORM
|
||||
#endif
|
||||
|
||||
"use strict";
|
||||
|
||||
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"]
|
||||
.getService(Ci.nsIHttpProtocolHandler)
|
||||
.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;
|
||||
|
||||
XPCOMUtils.defineLazyServiceGetter(this, "ppmm",
|
||||
|
@ -33,12 +45,20 @@ var gOverrideFunctions = [
|
|||
function (aHttpChannel) { return UserAgentOverrides.getOverrideForURI(aHttpChannel.URI); }
|
||||
];
|
||||
var gBuiltUAs = new Map;
|
||||
var gOSSlice;
|
||||
|
||||
this.UserAgentOverrides = {
|
||||
init: function uao_init() {
|
||||
if (gInitialized)
|
||||
return;
|
||||
|
||||
gOSSlice = OSCPU + ";";
|
||||
#ifndef UA_SPARE_PLATFORM
|
||||
if (PLATFORM != "") {
|
||||
gOSSlice = PLATFORM + "; " + gOSSlice;
|
||||
}
|
||||
#endif
|
||||
|
||||
gPrefBranch = Services.prefs.getBranch("general.useragent.override.");
|
||||
gPrefBranch.addObserver("", buildOverrides, false);
|
||||
|
||||
|
@ -143,7 +163,7 @@ function getUserAgentFromOverride(override)
|
|||
if (search && replace) {
|
||||
userAgent = DEFAULT_UA.replace(new RegExp(search, "g"), replace);
|
||||
} else {
|
||||
userAgent = override;
|
||||
userAgent = override.replace(/%OS_SLICE%/g, gOSSlice);
|
||||
}
|
||||
gBuiltUAs.set(override, userAgent);
|
||||
return userAgent;
|
||||
|
|
|
@ -99,9 +99,9 @@ IPDL_SOURCES += [
|
|||
'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')
|
||||
|
||||
|
|
Loading…
Reference in New Issue