forked from mirrors/gecko-dev
UAOverridesBootstrapper.js is introduced to delay the initialization of UserAgentOverrides.jsm until the creation of the first nsHttpChannel. Uninit will be triggered at profile-change-net-teardown because no network traffice after this point. MozReview-Commit-ID: F8Lpn6RyZEm --HG-- extra : rebase_source : 7c3649b50ad8594dc0968961fbbd2766d0d98b0a
36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* 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/. */
|
|
|
|
"use strict";
|
|
|
|
const Ci = Components.interfaces;
|
|
const Cu = Components.utils;
|
|
|
|
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
|
Cu.import("resource://gre/modules/Services.jsm");
|
|
Cu.import("resource://gre/modules/UserAgentOverrides.jsm");
|
|
|
|
function UAOverridesBootstrapper() {
|
|
this.init();
|
|
}
|
|
|
|
UAOverridesBootstrapper.prototype = {
|
|
init: function uaob_init() {
|
|
Services.obs.addObserver(this, "profile-change-net-teardown", false);
|
|
UserAgentOverrides.init();
|
|
},
|
|
|
|
observe: function uaob_observe(aSubject, aTopic, aData) {
|
|
if (aTopic == "profile-change-net-teardown") {
|
|
Services.obs.removeObserver(this, "profile-change-net-teardown");
|
|
UserAgentOverrides.uninit();
|
|
}
|
|
},
|
|
|
|
QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver]),
|
|
classID: Components.ID("{965b0ca8-155b-11e7-93ae-92361f002671}")
|
|
};
|
|
|
|
const components = [UAOverridesBootstrapper];
|
|
this.NSGetFactory = XPCOMUtils.generateNSGetFactory(components);
|