Difference between revisions of "Clear Private Data"

From CDOT Wiki
Jump to: navigation, search
Line 11: Line 11:
  
 
Found "/browser/locales/en-US/chrome/help/menu_reference.xhtml, line 351 -- <h3 id="clear_private_data">Clear Private Data...</h3>" which gives us some xml tag id which may help. Going to search that tag. We found anothe route.
 
Found "/browser/locales/en-US/chrome/help/menu_reference.xhtml, line 351 -- <h3 id="clear_private_data">Clear Private Data...</h3>" which gives us some xml tag id which may help. Going to search that tag. We found anothe route.
 
+
 
Found "/browser/locales/en-US/chrome/browser/browser.properties, line 106 -- sanitizeButton=Clear Private Data Now". The sanitize button seemed interesting, so we searched that and got:
 
Found "/browser/locales/en-US/chrome/browser/browser.properties, line 106 -- sanitizeButton=Clear Private Data Now". The sanitize button seemed interesting, so we searched that and got:
  
Line 36: Line 36:
 
  164      }
 
  164      }
 
  165    },
 
  165    },
 +
 +
We'll search "nsICookieManager" and found a "/netwerk/cookie/public/nsICookieManager.idl".
 +
 +
In "nsICookieManager.idl" we found a link [http://lxr.mozilla.org/mozilla1.8.0/ident?i=nsICookieManager nsICookieManager] which links [http://lxr.mozilla.org/mozilla1.8.0/source/netwerk/cookie/src/nsCookieService.cpp#376 nsCookieServer.cpp].
 +
 +
449    if (!nsCRT::strcmp(aData, NS_LITERAL_STRING("shutdown-cleanse").get())) {
 +
450      RemoveAllFromMemory();
 +
'''451      // delete the cookie file'''
 +
452      if (mCookieFile) {
 +
'''453        mCookieFile->Remove(PR_FALSE);'''
 +
454      }
 +
455    } else {
 +
456      Write();
 +
'''457      RemoveAllFromMemory();'''
 +
458    }
 +
 +
This file is the cpp cookie implementation and it seems the code above removes the cookie.
 +
Good learning experience I think we'd all say!

Revision as of 12:06, 29 September 2006

LXR Exercise

Searching the "Clear Private Data" feature. By Mohamed, Man, and Mark.

Documentation

Searched "Clear Private Data" in LXR for Mozilla 1.8.0 branch.

Found "/browser/locales/en-US/chrome/browser/browser.dtd, line 169 -- <!ENTITY clearPrivateDataCmd.label "Clear Private Data">", line 169 which did not help us. This file seems to describe the browser labels and buttons, but it does not link to code.

Found "/browser/locales/en-US/chrome/help/menu_reference.xhtml, line 351 --

Clear Private Data...

" which gives us some xml tag id which may help. Going to search that tag. We found anothe route.

Found "/browser/locales/en-US/chrome/browser/browser.properties, line 106 -- sanitizeButton=Clear Private Data Now". The sanitize button seemed interesting, so we searched that and got:

104 # Sanitize
105 sanitizeWithPromptLabel=Clear Private Data...
106 sanitizeButton=Clear Private Data Now

Found "/browser/base/content/sanitize.xul, line 75 -- document.documentElement.getButton("accept").label = bundleBrowser.getString("sanitizeButton");". sanitize.xul seems to link the button to some javascript source. We will search sanitize.js and see if that brings up anything interesting.

In sanitize.js we found some javascript code that seems to link to c++ code.

151     cookies: {
152       clear: function ()
153       {
154         var cookieMgr = Components.classes["@mozilla.org/cookiemanager;1"]
155                                   .getService(Components.interfaces.nsICookieManager);
156         cookieMgr.removeAll();
157       },
158       
159       get canClear()
160       {
161         var cookieMgr = Components.classes["@mozilla.org/cookiemanager;1"]
162                                   .getService(Components.interfaces.nsICookieManager);
163         return cookieMgr.enumerator.hasMoreElements();
164       }
165     },

We'll search "nsICookieManager" and found a "/netwerk/cookie/public/nsICookieManager.idl".

In "nsICookieManager.idl" we found a link nsICookieManager which links nsCookieServer.cpp.

449     if (!nsCRT::strcmp(aData, NS_LITERAL_STRING("shutdown-cleanse").get())) {
450       RemoveAllFromMemory();
451       // delete the cookie file
452       if (mCookieFile) {
453         mCookieFile->Remove(PR_FALSE);
454       }
455     } else {
456       Write();
457       RemoveAllFromMemory();
458     }

This file is the cpp cookie implementation and it seems the code above removes the cookie. Good learning experience I think we'd all say!