Source code
Revision control
Copy as Markdown
Other Tools
/* 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/. */
import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";
export const DEFAULT_WINDOWS_LAUNCH_ON_LOGIN_NIMBUS_FEATURE_ID =
"defaultWindowsLaunchOnLogin";
const lazy = XPCOMUtils.declareLazy({
ClientEnvironmentBase:
"resource://gre/modules/components-utils/ClientEnvironment.sys.mjs",
WindowsLaunchOnLogin: "resource://gre/modules/WindowsLaunchOnLogin.sys.mjs",
NimbusFeatures: "resource://nimbus/ExperimentAPI.sys.mjs",
});
export var DefaultWindowsLaunchOnLogin = {
async firstStartupNewProfile() {
if (!lazy.ClientEnvironmentBase.os.isWindows) {
return;
}
this.logger.debug(
"First startup with a new profile - checking to enable launch on login by default"
);
const nimbusFeature =
lazy.NimbusFeatures[DEFAULT_WINDOWS_LAUNCH_ON_LOGIN_NIMBUS_FEATURE_ID];
await nimbusFeature.ready();
const { enabled } = nimbusFeature.getAllVariables({
defaultValues: { enabled: false },
});
if (!enabled) {
this.logger.debug(" - Nimbus said no");
return;
}
let approval = await lazy.WindowsLaunchOnLogin.getLaunchOnLoginApproved();
if (!approval) {
this.logger.debug(" - Windows policy denied");
return;
}
nimbusFeature.recordExposureEvent({ once: true });
await lazy.WindowsLaunchOnLogin.createLaunchOnLogin();
this.logger.debug(" - enabled");
},
logger: console.createInstance({
prefix: "DefaultWindowsLaunchOnLogin",
maxLogLevel: "Debug",
}),
};