Revision control

Copy as Markdown

Other Tools

/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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/. */
const {AppConstants} = ChromeUtils.import("resource://gre/modules/AppConstants.jsm");
const {ShellService} = ChromeUtils.import("resource:///modules/ShellService.jsm");
var defaultClient = 0;
var defaultApps = 0;
function Startup()
{
InitPlatformIntegration();
CrashReportsCheck();
}
/**
* System preferences
*/
function InitPlatformIntegration() {
if (ShellService) {
try {
this.defaultApps = ShellService.shouldBeDefaultClientFor;
["Browser", "Mail", "News", "Rss"].forEach(function(aType) {
let button = document.getElementById("setDefault" + aType);
try {
let client = Ci.nsIShellService[aType.toUpperCase()];
let isDefault = ShellService.isDefaultClient(false, client);
if (isDefault) {
this.defaultClient |= client;
}
button.disabled = isDefault;
document.getElementById("defaultClientGroup").hidden = false;
} catch (e) {
button.hidden = true;
}
});
} catch (e) {
}
}
}
function ApplySetAsDefaultClient() {
let pane = document.getElementById("advanced_pane");
ShellService.setDefaultClient(false, false, pane.defaultClient);
ShellService.shouldBeDefaultClientFor = pane.defaultApps;
}
function onSetDefault(aButton, aType) {
if (document.documentElement.instantApply) {
ShellService.setDefaultClient(false, false, Ci.nsIShellService[aType]);
ShellService.shouldBeDefaultClientFor |= Ci.nsIShellService[aType];
} else {
this.defaultClient |= Ci.nsIShellService[aType];
this.defaultApps |= Ci.nsIShellService[aType];
window.addEventListener("dialogaccept", this.ApplySetAsDefaultClient, true);
}
aButton.disabled = true;
}
function onNewsChange(aChecked) {
let snws = document.getElementById("network.protocol-handler.external.snews");
let nntp = document.getElementById("network.protocol-handler.external.nntp");
if (!snws.locked)
snws.value = aChecked;
if (!nntp.locked)
nntp.value = aChecked;
}
function CrashReportsCheck()
{
if (AppConstants.MOZ_CRASHREPORTER) {
var cr = Cc["@mozilla.org/toolkit/crash-reporter;1"]
.getService(Ci.nsICrashReporter);
document.getElementById("crashReports").hidden = !cr.enabled;
document.getElementById("submitCrashes").checked = cr.submitReports;
}
}
function updateSubmitCrashes(aChecked)
{
Cc["@mozilla.org/toolkit/crash-reporter;1"]
.getService(Ci.nsICrashReporter)
.submitReports = aChecked;
}