home *** CD-ROM | disk | FTP | other *** search
-
-
- //Merc, SLiu , blocking message processing when clear action is in process
- const nsIAppShellService = Components.interfaces.nsIAppShellService;
- var gAppShellService=null;
- const nsIInternetSearchService = Components.interfaces.nsIInternetSearchService;
- var gSearchService=null;
-
- var PrivacyPanel;
- if (!PrivacyPanel) {
-
- dump("Initing PRIVACYPANEL\n");
-
- PrivacyPanel = {
-
- /*
- confirm: function (aTitle, aMessage, aActionButtonLabel)
- {
- var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
-
- var flags = promptService.BUTTON_TITLE_IS_STRING * promptService.BUTTON_POS_0;
- flags += promptService.BUTTON_TITLE_CANCEL * promptService.BUTTON_POS_1;
-
- rv = promptService.confirmEx(window, aTitle, aMessage, flags, aActionButtonLabel, null, null, null, { value: 0 });
- return rv == 0;
- },
- */
- privacyBundle: function()
- {
- return document.getElementById("privacyBundle");
- },
-
- prefService: function()
- {
- return Components.classes["@mozilla.org/preferences-service;1"]
- .getService(Components.interfaces.nsIPrefBranch);
- },
-
- clear: function (aEvent) {
- if (aEvent.target.localName != "expander")
- return;
-
- // MERC (DP): disable clear button only onOK of confirm dialog
- if(PrivacyPanel.clearData[aEvent.target.id]())
- aEvent.target.setAttribute("cleardisabled", "true");
- },
-
- // clear all histories
- clearAll: function (disableButtons) {
- dump("\nclear all of pref-privacy-utils.js called...\n\n");
-
- var title = PrivacyPanel.privacyBundle().getString("clearTitle");
- var msg = PrivacyPanel.privacyBundle().getString("clearAllConfirm");
- if(this.confirm(title, msg)) {
- // call every clear function in privacy panel
- for (var fn in this.clearData) {
-
- var funcName = fn.toString();
-
- // MERC - JCH: Do not clear these two as per PRD 1.9.3 (10.12.9)
- if(funcName == "formfill" || funcName == "passwords")
- continue;
-
- this.clearData[fn](true);
- if(disableButtons)
- document.getElementById(fn).setAttribute("cleardisabled", "true");
- }
- }
- },
-
- getDownloads: function() {
- var dlMgr = Components.classes["@mozilla.org/download-manager;1"].getService(Components.interfaces.nsIDownloadManager);
- var ds = dlMgr.datasource;
-
- var rdfs = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
- var root = rdfs.GetResource("NC:DownloadsRoot");
-
- var rdfc = Components.classes["@mozilla.org/rdf/container;1"].createInstance(Components.interfaces.nsIRDFContainer);
- rdfc.Init(ds, root);
-
- return rdfc.GetElements();
- },
-
- confirm: function(aTitle, aMessage) {
- if(!PrivacyPanel.prefService().getBoolPref("clearhistories.button.dialog")) {
- var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
- .getService(Components.interfaces.nsIPromptService);
-
- var checkResult = {};
- var result = promptService.confirmCheck(window,
- aTitle,
- aMessage,
- "Don't show this message again",
- checkResult);
-
- // (ccampbell) As per BLT Bug #133350, this pref should not be set
- // if the user cancels the dialog
- if (result && checkResult.value)
- PrivacyPanel.prefService()
- .setBoolPref("clearhistories.button.dialog", true);
-
- return result;
- }
- return true;
- },
-
- clearData: {
- // The names of these functions match the id of the expander in the XUL file that correspond
- // to them.
- // clear page history
-
- history: function (suppressConfirm)
- {
- dump("\nPref-privacy-utils.js: clear history of pref-privacy-utils.js called...\n");
-
- var result = true;
- if(!suppressConfirm) {
- var title = PrivacyPanel.privacyBundle().getString("clearTitle");
- var msg = PrivacyPanel.privacyBundle().getString("clearPageHistoryConfirm");
- result = PrivacyPanel.confirm(title, msg);
- }
-
- if(result) {
- var globalHistory = Components.classes["@mozilla.org/browser/global-history;2"]
- .getService(Components.interfaces.nsIBrowserHistory);
- globalHistory.removeAllPages();
-
- var os = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
- os.notifyObservers(null, "browser:purge-session-history", "");
-
- return true;
- }
-
- return false;
- },
-
- // clear search history
- search: function (suppressConfirm)
- {
- dump("\nclear search of pref-privacy-utils.js called...\n\n");
-
- // MERC - JCH: Needed for clearing search history
- // DON'T MAKE THESE VARS GLOBAL UNLESS YOU WANT TO CHANGE clearAll() ABOVE.
- var profileDir = null;
- var PR_RDONLY = 1;
- var SEARCH_HISTORY_FILE = "search-history.txt";
-
- var result = true;
- if(!suppressConfirm) {
- var title = PrivacyPanel.privacyBundle().getString("clearTitle");
- var msg = PrivacyPanel.privacyBundle().getString("clearSearchHistoryConfirm");
- result = PrivacyPanel.confirm(title, msg);
- }
-
- if(result) {
-
- /*if (!gSearchService)
- {
- gSearchService = Components.classes["@mozilla.org/rdf/datasource;1?name=internetsearch"]
- .getService(Components.interfaces.nsIInternetSearchService);
- }
- if(gSearchService)
- {
- gSearchService.ClearResults(true);
- gSearchService.ClearResultSearchSites();
- }
- */
-
-
- // MERC - JCH: The following was purloined from search.js in order to delete search history.
- // Get the user's profile directory
- if (!profileDir) {
- profileDir = Components.classes["@mozilla.org/file/directory_service;1"]
- .getService(Components.interfaces.nsIProperties)
- .get("ProfD", Components.interfaces.nsILocalFile);
- }
-
- if (!profileDir)
- return false;
-
- var file = profileDir.clone();
- file.append(SEARCH_HISTORY_FILE);
-
- if (file.exists()) {
- // Init the file input stream
- var fis = Components.classes["@mozilla.org/network/file-input-stream;1"]
- .createInstance(Components.interfaces.nsIFileInputStream);
- fis.init(file, PR_RDONLY, 0,
- Components.interfaces.nsIFileInputStream.DELETE_ON_CLOSE);
- fis.close();
- }
-
- return true;
- }
- return false;
- },
-
-
- // clear cache
- cache: function (suppressConfirm)
- {
- dump("\nclear cache of pref-privacy-utils.js called...\n\n");
- function clearCacheOfType(aType)
- {
- var classID = Components.classes["@mozilla.org/network/cache-service;1"];
- if (!classID)
- return;
- var cacheService = classID.getService(Components.interfaces.nsICacheService);
- if (!cacheService)
- return;
- cacheService.evictEntries(aType);
- }
-
- var result = true;
- if(!suppressConfirm) {
- var title = PrivacyPanel.privacyBundle().getString("clearTitle");
- var msg = PrivacyPanel.privacyBundle().getString("clearCacheConfirm");
- result = PrivacyPanel.confirm(title, msg);
- }
-
- if(result) {
- clearCacheOfType(Components.interfaces.nsICache.STORE_ON_DISK);
- clearCacheOfType(Components.interfaces.nsICache.STORE_IN_MEMORY);
-
- return true;
- }
- return false;
- },
-
- // clear cookies
- cookies: function (suppressConfirm)
- {
- dump("\nclear cookies of pref-privacy-utils.js called...\n\n");
-
- var result = true;
- if(!suppressConfirm) {
- var title = PrivacyPanel.privacyBundle().getString("clearTitle");
- var msg = PrivacyPanel.privacyBundle().getString("clearCookieConfirm");
- result = PrivacyPanel.confirm(title, msg);
- }
-
- if(result) {
- var cookieMgr = Components.classes["@mozilla.org/cookiemanager;1"].getService();
- cookieMgr = cookieMgr.QueryInterface(Components.interfaces.nsICookieManager);
-
- var e = cookieMgr.enumerator;
- var cookies = [];
- while (e.hasMoreElements()) {
- var cookie = e.getNext().QueryInterface(Components.interfaces.nsICookie);
- cookies.push(cookie);
- }
-
- for (var i = 0; i < cookies.length; ++i)
- cookieMgr.remove(cookies[i].host, cookies[i].name, cookies[i].path, false);
-
- cookieMgr.removeAll();
-
- return true;
- }
- return false;
- },
-
- // clear formfill
- formfill: function (suppressConfirm)
- {
- dump("\nclear formfill of pref-privacy-utils.js called...\n\n");
-
- if (!suppressConfirm) {
- var title = PrivacyPanel.privacyBundle().getString("clearTitle");
- var msg = PrivacyPanel.privacyBundle().getString("clearDatacardManagerConfirm");
- if (!PrivacyPanel.confirm(title, msg)) return false;
- }
-
- datacardUtils.DeleteAllDatacards();
- return true;
- },
-
- // clear download manager history
- downloads: function (suppressConfirm)
- {
- dump("\nclear downloads of pref-privacy-utils.js called...\n\n");
-
- var result = true;
- if(!suppressConfirm) {
- var title = PrivacyPanel.privacyBundle().getString("clearTitle");
- var msg = PrivacyPanel.privacyBundle().getString("clearDownloadManagerHistoryConfirm");
- result = PrivacyPanel.confirm(title, msg);
- }
-
- if(result) {
- var bFailed=false;
- if(!gAppShellService)
- gAppShellService=Components.classes["@mozilla.org/appshell/appShellService;1"].getService(Components.interfaces.nsIAppShellService);
- if(gAppShellService)
- gAppShellService.enableWait(nsIAppShellService.keyPress + nsIAppShellService.mouseClick);
- var dlMgr = Components.classes["@mozilla.org/download-manager;1"].getService(Components.interfaces.nsIDownloadManager);
- try {
- var downloads = PrivacyPanel.getDownloads();
- }
- catch (e) {
- bFailed=true;
- }
- if(!bFailed)
- {
- var rdfs = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
- var state = rdfs.GetResource("http://home.netscape.com/NC-rdf#DownloadState");
- var ds = dlMgr.datasource;
- var dls = [];
-
- while (downloads.hasMoreElements())
- {
- var download = downloads.getNext().QueryInterface(Components.interfaces.nsIRDFResource);
- dls.push(download);
- }
- dlMgr.startBatchUpdate();
- for (var i = 0; i < dls.length; ++i)
- {
- try
- {
- dlMgr.removeDownload(dls[i].Value);
- }
- catch (e) {}
- }
- dlMgr.endBatchUpdate();
- }
- if(gAppShellService)
- gAppShellService.disableWait();
-
- return true;
- }
- return false;
- },
- // clear password manager history
- passwords: function (suppressConfirm)
- {
- dump("\nclear passwords of pref-privacy-utils.js called...\n\n");
- var result = true;
- if(!suppressConfirm) {
- var title = PrivacyPanel.privacyBundle().getString("clearTitle");
- var msg = PrivacyPanel.privacyBundle().getString("clearPasscardManagerConfirm");
- result = PrivacyPanel.confirm(title, msg);
- }
-
- if(result) {
- if(!gAppShellService)
- gAppShellService=Components.classes["@mozilla.org/appshell/appShellService;1"].getService(Components.interfaces.nsIAppShellService);
- if(gAppShellService)
- gAppShellService.enableWait(nsIAppShellService.keyPress + nsIAppShellService.mouseClick);
-
- var passwdMgr = Components.classes["@mozilla.org/passwordmanager;1"].getService();
- passwdMgr = passwdMgr.QueryInterface(Components.interfaces.nsIPasswordManager);
-
- var e = passwdMgr.enumerator;
- var passwds = [];
- while (e.hasMoreElements())
- {
- var passwd = e.getNext().QueryInterface(Components.interfaces.nsIPassword);
- passwds.push(passwd);
- }
-
- for (var i = 0; i < passwds.length; ++i)
- passwdMgr.removeUser(passwds[i].host, passwds[i].user);
-
- if(gAppShellService)
- gAppShellService.disableWait();
-
- return true;
- }
- return false;
- }
- }
- }
- }
-
- // MERC - Brad Lewis - created for nav bar button Clear History (with no Privacy Panel button updated)
- // MERC (DP): deprecated
- function clearHistoryClearAll()
- {
- dump("\nclearHistoryClearAll pref-privacy-utils.js called...\n\n");
-
- var title = PrivacyPanel.privacyBundle().getString("clearTitle");
- var msg = PrivacyPanel.privacyBundle().getString("clearAllConfirm");
- if(PrivacyPanel.confirm(title, msg)) {
- // call every clear function in privacy panel
- for (var fn in PrivacyPanel.clearData) {
- PrivacyPanel.clearData[fn](true);
- }
- }
- }
-
- function enableAnonymousMode()
- {
-
- var displayAnonMsg = PrivacyPanel.prefService().getBoolPref("privacy.displayAnonModeMsg");
-
- if (displayAnonMsg){
-
- // get service to display dialog box explaining what Anonymous Mode does
- var promptService =
- Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
- .getService(Components.interfaces.nsIPromptService);
-
- //default to true: if it were false, we wouldn't get this far
- var displayAnonModeMsg = {value:true};
-
- // display dialog box
- var buttonPressed = promptService.confirmEx( window,
- gNavigatorBundle.getString('clearHistory.anonModeMsgTitle'),
- gNavigatorBundle.getString('clearHistory.anonModeMsg'),
- (promptService.BUTTON_TITLE_IS_STRING * promptService.BUTTON_POS_0)
- + (promptService.BUTTON_TITLE_CANCEL * promptService.BUTTON_POS_1),
- gNavigatorBundle.getString('clearHistory.anonModeMsgButton'),
- null,
- null,
- gNavigatorBundle.getString('clearHistory.anonModePromptMe'),
- displayAnonModeMsg);
-
- var continuePressed = 0;
- // var cancelPressed = 1;
-
- if (buttonPressed == continuePressed) {
- if(displayAnonModeMsg.value == false) {
- // set profile variable
- dump("\nTurning off displayAnonModeMsg message...\n\n");
- PrivacyPanel.prefService().setBoolPref("privacy.displayAnonModeMsg", false);
-
- }
- dump("\nEnabling Anonymous mode...\n\n");
- PrivacyPanel.prefService().setBoolPref("privacy.anonMode.enabled",true);
- } // if continue button pressed
-
- } else {
-
- dump("\nEnabling Anonymous mode...\n\n");
- PrivacyPanel.prefService().setBoolPref("privacy.anonMode.enabled",true);
- } // if not diplaying anonymous mode message
- }
- // END MERC - Brad Lewis
-
- function disableAnonymousMode() {
- // dump("\nDisabling Anonymous mode...\n\n");
- PrivacyPanel.prefService().setBoolPref("privacy.anonMode.enabled",false);
- }
-
- function toggleAnonymousMode() {
- var isSet = PrivacyPanel.prefService().getBoolPref("privacy.anonMode.enabled");
- if (isSet) {
- disableAnonymousMode();
- } else {
- enableAnonymousMode();
- }
-
- /*
- var button = document.getElementById("clearHistoryAnonymousMode");
- if (!button) return;
- button.checked = isSet;
- */
-
- }