Open main menu

CDOT Wiki β

Changes

Clear Private Data

1,332 bytes added, 13:20, 29 September 2006
no edit summary
== LXR Exercise ==
Searching Documenting the search of the "Clear Private Data" feature.By by Mohamed, Man, and Mark.Using '''Mozilla 1.8.0 branch'''.
== Documentation ==
Searched (via Text Search) "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 -- <h3 h 3 id="clear_private_data">Clear Private Data...</h3h 3>" which gives us some xml tag id which may help. Going to search that tag. We found anothe route.
The previous paths didn't lead us to anything significant.
We found another route that lead to our success. =)
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:
164 }
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!
 
Some advice:
 
1. Search using "Text Search" the keyword you have. In our case "Clear Private Data" we found a lot of results most which did not help.
 
2. Once you found some code that calls what you want try using "File Name Search". We tried "sanitize.js" and just went fishing.
 
3. We tried looking for some interfaces which linked to an idl file which linked to the cpp code.
1
edit