home *** CD-ROM | disk | FTP | other *** search
-
-
- var _elementIDs = ["histDay", "browserCacheDiskCache", "cookieBehavior",
- // MERC (DP): "enableCookies", "enableCookiesForOriginatingSiteOnly",
- "historyClearOnExit", "searchClearOnExit", "downloadsClearOnExit",
- "cacheClearOnExit", "networkCookieLifetime",
- // MERC JVL "enableFormFill", "enablePasswords",
- "downloadsRetentionPolicy"];
-
- function Startup() {
- search.Init();
-
- // Initially disable the clear buttons when needed
- var globalHistory = Components.classes["@mozilla.org/browser/global-history;2"].getService(Components.interfaces.nsIBrowserHistory);
- document.getElementById("history").setAttribute("cleardisabled", globalHistory.count == 0);
-
- // MERC - JCH: This is the only way I could find to check search history. Also, seems
- // the search history array never has length 0. So size 1 means it's empty.
- var sarray = search.ReadSearchHistory();
- document.getElementById("search").setAttribute("cleardisabled", sarray.length < 2);
-
-
- var cookieMgr = Components.classes["@mozilla.org/cookiemanager;1"].getService();
- cookieMgr = cookieMgr.QueryInterface(Components.interfaces.nsICookieManager);
- var e = cookieMgr.enumerator;
- document.getElementById("cookies").setAttribute("cleardisabled", !e.hasMoreElements());
-
- var passwdMgr = Components.classes["@mozilla.org/passwordmanager;1"].getService();
- passwdMgr = passwdMgr.QueryInterface(Components.interfaces.nsIPasswordManager);
- e = passwdMgr.enumerator;
- document.getElementById("passwords").setAttribute("cleardisabled", !e.hasMoreElements());
-
- try {
- e = PrivacyPanel.getDownloads();
- var hasDownloads = e.hasMoreElements();
- }
- catch (e) {
- hasDownloads = false;
- }
- document.getElementById("downloads").setAttribute("cleardisabled", !hasDownloads);
-
- //var formHistory = Components.classes["@mozilla.org/satchel/form-history;1"]
- // .getService(Components.interfaces.nsIFormHistory);
- //document.getElementById("formfill").setAttribute("cleardisabled", formHistory.rowCount == 0);
- try {
- var afDataMgr = Components.classes["autofill_datamgr.1"].getService();
- dump("afDataMgr1:"+afDataMgr+"\n");
- afDataMgr = afDataMgr.QueryInterface(Components.interfaces.nsIAFDataMgr);
- dump("afDataMgr2:"+afDataMgr+"\n");
- afDataMgr.readMainData();
- }
- catch (e) {
- document.getElementById("formfill").setAttribute("cleardisabled", null);
- }
-
- // set up the pref checkboxes according to the network.cookie.cookieBehavior pref
- // 0: enabled
- // 1: enabled for originating website only
- // 2: disabled
- var cookieBehavior = document.getElementById("cookieBehavior").getAttribute("value");
- //document.getElementById("enableCookies").checked = cookieBehavior != 2;
- //document.getElementById("enableCookiesForOriginatingSiteOnly").checked = cookieBehavior == 1;
- updateCookieBroadcaster();
-
- var categories = document.getElementById("privacyCategories");
- categories.addEventListener("clear", PrivacyPanel.clear, false);
-
- // XXXben - we do this because of a bug with the download retention window menulist.
- // The bug is that when the Options dialog opens, or you switch from another panel to
- // this panel, style is incompletely resolved on the menulist's display area anonymous
- // content - it is resolved on the all a/c subcomponents *except* menulist-label (the
- // text nodes)... and (as a result, I think) when style is resolved later as the menulist
- // goes from visbility: collapse to being visible, the menulist-label has the wrong parent
- // style context which causes the style context parent checking to complain heartily. The
- // symptom is that the menulist is not initialized with the currently selected value from
- // preferences. I suspect this is related to the fact that the menulist is inserted into
- // an XBL insertion point, as this problem does not occur when the menulist is placed outside
- // the bound element. dbaron is helping me with this with a reduced test case, but in
- // the meantime, I'm working around this bug by placing the menulist outside the bound element
- // until it is completely initialized and then scooting it in, which is what this code does.
- var drb = document.getElementById("downloadsRetentionBox");
- var drp = document.getElementById("downloadsRetentionPolicy");
- drp.removeAttribute("hidden");
- document.documentElement.removeChild(drp);
- drb.appendChild(drp);
-
- setMasterPasswordButtonLabel();
-
- var prefServ = Components.classes["@mozilla.org/preferences-service;1"]
- .getService(Components.interfaces.nsIPrefBranch);
- anonmodeToggle(prefServ.getBoolPref("privacy.anonMode.enabled"));
- }
-
- function unload()
- {
- var categories = document.getElementById("privacyCategories");
- for (var i = 0; i < categories.childNodes.length; ++i) {
- var expander = categories.childNodes[i];
- document.persist(expander.id, "open");
- }
- }
-
- function cookieViewerOnPrefsOK()
- {
- var dataObject = parent.hPrefWindow.wsm.dataManager.pageData["chrome://browser/content/cookieviewer/CookieViewer.xul"].userData;
- if ('deletedCookies' in dataObject) {
- var cookiemanager = Components.classes["@mozilla.org/cookiemanager;1"].getService();
- cookiemanager = cookiemanager.QueryInterface(Components.interfaces.nsICookieManager);
-
- for (var p = 0; p < dataObject.deletedCookies.length; ++p) {
- cookiemanager.remove(dataObject.deletedCookies[p].host,
- dataObject.deletedCookies[p].name,
- dataObject.deletedCookies[p].path,
- dataObject.cookieBool);
- }
- }
- }
-
-
- function viewCookies()
- {
- window.openDialog("chrome://browser/content/cookieviewer/CookieViewer.xul","_blank",
- "chrome,resizable=yes", "cookieManager");
- }
-
- function viewCookieExceptions()
- {
- var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
- .getService(Components.interfaces.nsIWindowMediator);
- var existingWindow = wm.getMostRecentWindow("exceptions");
- if (existingWindow) {
- existingWindow.setHost("");
- existingWindow.focus();
- }
- else {
- var params = { blockVisible : true,
- sessionVisible : true,
- allowVisible : true,
- prefilledHost : "",
- permissionType : "cookie" };
- window.openDialog("chrome://browser/content/cookieviewer/CookieExceptions.xul",
- "_blank", "chrome,modal,resizable=yes", params);
- }
- }
-
- function viewSignons()
- {
- // MERC JVL BEGIN
- //var prefServ = Components.classes["@mozilla.org/preferences-service;1"]
- // .getService(Components.interfaces.nsIPrefBranch);
- //prefServ.setCharPref('browser.preferences.formfillORpasscard', 'passcardtab');
- //window.top.switchPage('catFormFillButton');
- window.openDialog("chrome://mozapps/content/autofill/pref-passcards.xul","_blank",
- "chrome,resizable=yes", "8");
- // window.openDialog("chrome://passwordmgr/content/passwordManager.xul","_blank",
- // "chrome,resizable=yes", "8");
- // MERC END
- }
-
- function updateCookieBehavior()
- {
- var cookiesEnabled = document.getElementById("enableCookies").checked;
- var cookiesOriginating = document.getElementById("enableCookiesForOriginatingSiteOnly").checked;
- document.getElementById("cookieBehavior").setAttribute("value", cookiesEnabled ? (cookiesOriginating ? 1 : 0) : 2);
- }
-
- function updateCookieBroadcaster()
- {
- return; // MERC (ccampbell)
- cookieBehaviorIsLocked = parent.hPrefWindow.getPrefIsLocked("network.cookie.cookieBehavior");
- cookieLifetimeIsLocked = parent.hPrefWindow.getPrefIsLocked("network.cookie.lifetimePolicy");
-
- var broadcaster = document.getElementById("cookieBroadcaster");
- var checkbox = document.getElementById("enableCookies");
- var radiogroup = document.getElementById("networkCookieLifetime");
- if (!checkbox.checked) {
- broadcaster.setAttribute("disabled", "true");
- document.getElementById("enableCookiesForOriginatingSiteOnly").checked = false;
- radiogroup.setAttribute("disabled", "true");
- }
- else {
- broadcaster.removeAttribute("disabled");
- if (!cookieLifetimeIsLocked)
- radiogroup.removeAttribute("disabled");
- }
- if (cookieBehaviorIsLocked) {
- checkbox.setAttribute("disabled", "true");
- broadcaster.setAttribute("disabled", "true");
- }
- }
-
- function onPrefsOK()
- {
- var permissionmanager = Components.classes["@mozilla.org/permissionmanager;1"].getService();
- permissionmanager = permissionmanager.QueryInterface(Components.interfaces.nsIPermissionManager);
-
- var dataObject = parent.hPrefWindow.wsm.dataManager.pageData["chrome://browser/content/cookieviewer/CookieExceptions.xul"].userData;
- if ('deletedPermissions' in dataObject) {
- for (var p = 0; p < dataObject.deletedPermissions.length; ++p) {
- permissionmanager.remove(dataObject.deletedPermissions[p].host, dataObject.deletedPermissions[p].type);
- }
- }
-
- if ('permissions' in dataObject) {
- var uri = Components.classes["@mozilla.org/network/standard-url;1"]
- .createInstance(Components.interfaces.nsIURI);
-
- for (p = 0; p < dataObject.permissions.length; ++p) {
- uri.spec = dataObject.permissions[p].host;
- if (permissionmanager.testPermission(uri, "cookie") != dataObject.permissions[p].perm)
- permissionmanager.add(uri, "cookie", dataObject.permissions[p].perm);
- }
- }
- }
-
- function unexpandOld(event)
- {
- var box = document.getElementById("privacyCategories");
- var newExpander = event.originalTarget.parentNode.parentNode;
- for (var i = 0; i < box.childNodes.length; ++i) {
- if (box.childNodes[i] != newExpander && box.childNodes[i].getAttribute("open"))
- box.childNodes[i].open = false;
- }
- }
-
- function changeMasterPassword()
- {
- // MERC JVL BEGIN
- var title = "Set Master Password";
- var pk11dbService = Components.classes["@mozilla.org/security/pk11tokendb;1"].getService(Components.interfaces.nsIPK11TokenDB);
- if (pk11dbService)
- {
- var tokenName = "";
- var token = pk11dbService.findTokenByName(tokenName);
- if (token)
- {
- if (token.needsLogin())
- title = "Change Master Password";
- }
- }
- // MERC END
-
- window.openDialog("chrome://browser/content/pref/pref-masterpass.xul","",
- "chrome,centerscreen,modal,resizable=yes", title); // MERC JVL
- setMasterPasswordButtonLabel();
- }
-
- function setMasterPasswordButtonLabel()
- {
- // see if there's a master password and set the button label accordingly
- const nsPKCS11ModuleDB = "@mozilla.org/security/pkcs11moduledb;1";
- const nsIPKCS11ModuleDB = Components.interfaces.nsIPKCS11ModuleDB;
- const nsIPKCS11Slot = Components.interfaces.nsIPKCS11Slot;
-
- var secmoddb = Components.classes[nsPKCS11ModuleDB].getService(nsIPKCS11ModuleDB);
- var slot = secmoddb.findSlotByName("");
-
- if (slot) {
- var status = slot.status;
- var masterPasswordBtn = document.getElementById("masterPasswordBtn");
- var privacyBundle = document.getElementById("privacyBundle");
- var buttonLabel = "";
- if (status == nsIPKCS11Slot.SLOT_UNINITIALIZED
- || status == nsIPKCS11Slot.SLOT_READY) {
-
- buttonLabel = privacyBundle.getString("setMasterPassword");
- masterPasswordBtn.setAttribute("label",buttonLabel);
- } else {
- buttonLabel = privacyBundle.getString("changeMasterPassword");
- masterPasswordBtn.setAttribute("label",buttonLabel);
- }
- }
- }
-
- function anonmodeToggle(value) {
- if (value) {
- document.getElementById('historyClearOnExit').setAttribute('disabled','true');
- document.getElementById('searchClearOnExit').setAttribute('disabled','true');
- document.getElementById('downloadsClearOnExit').setAttribute('disabled','true');
- document.getElementById('cacheClearOnExit').setAttribute('disabled','true');
- } else {
- document.getElementById('historyClearOnExit').removeAttribute('disabled');
- document.getElementById('searchClearOnExit').removeAttribute('disabled');
- document.getElementById('downloadsClearOnExit').removeAttribute('disabled');
- document.getElementById('cacheClearOnExit').removeAttribute('disabled');
- }
- }
-