status update

maintained by Tim Rowley <tor@cs.brown.edu>

Last Updated Friday August 4, 2000

This status update page is updated every weekend. To get updates and news throughout the week you are invited to check out mozillaZine, a site devoted to Mozilla advocacy.

Previous Updates


Friends of the Tree

Module Updates
XPToolkit
July 31
Submitted by Peter Trudelle <trudelle@netscape.com>

Summary

  • David Hyatt checked in dramatic performance enhancments for tree scrolling by rows for M18. 
  • The XPToolkit team resolved 93 bugs in the last week, fixing 34 of  these, including 15 '+'.  For details, see our resolved bug list.

Highlights

  • Mike Pinkerton (pinkerton)
    • Fixed 46223, regression of not being able to drop on mozilla from outside apps.
    • Applied patch from Dean Tessman for right clicking in context menus (31727)
  • Chris Saari (saari)
    • Forward merging joki's changes. Successful tests on Mac and Linux right now. Should get Windows today.
    • Helped Daniel fix a dogfood bug.
  • Daniel Matejka (danm)
    • 45663 FIXE---[nsbeta2+]crash, nsbeta2, regression, topcrashcrash reloading page after switching to classic theme [@ Doc
    • 43470 FIXE---[dogfood-][nsbeta2-]crash, nsbeta3crash closing new account wizard with confused text field
  • Eric Vaughan (evaughan):
    • On Vacation
  • Stuart Parmenter (pavlov):
    • reduced memory churn by not creating as many nsToolkit objects on unix (bug 16328)
    • fixed nsBasicEncoder being held on past XPCOM shutdown leak (bug 43580)
  • David Hyatt  (hyatt):
    • Worked on the XUL template builder with waterson to add the ability to prevent the template from groveling one level ahead to determine whether or not a container should have children.
    • Patched the XUL template builder and XP Menu code  to prevent aggressive menu construction.  This fix decreases time to  bring up windows, since RDF was groveling into closed menus.
    • Patched XBL so that its exclusion mechanism takes precedence over checking the child count.  This prevents child generation from happening when using XBL with XUL templates.
    • Fixed keyboard navigation and shortcut mnemonics  in XP menus by making the XBL insertion point retrieval (from the frame side)  be recursive (finding the innermost insertion point).
    • Abstracted the XBL insertion point mechanism so that it can be used with XML and HTML (as well as XUL).  The code is still a static method on nsBox, and it needs to move into layout's nsFrameManager, but it's ready to move. This fix will bring XML and HTML to full parity with XUL as far as XBL capabilities (finally!).
    • Patched XBL so that style contexts are properly reparented when XBL's <children> mechanism is used, both with static content and dynamically added content (using the DOM).  This patch helps attinasi, who was unable to land his style optimizations because of this bug in XBL.
    • Added a timed select capability to the tree widget, so that onselect handlers don't fire immediately when the selection is adjusted.  Mailnews can also use this functionality when adjusting the selection following the deletion.  This results in a large performance speedup for arrow key scrolling in tree widgets (especially in the thread pane).
    • Fixed a positioning problem with the tree widget's child rows that resulted in all rows being placed at (0,0) before being moved to their correct positions.  This was causing the textfield flicker when typing in mailcompose.
    • Added an API to nsIScrollableFrame to enable child scrolling views to perform blits while scrolling.  Discovered that all child views appear not to be blitting, which means any nested scrolling view was invalidating itself when scrolling.  Applied this patch to the tree widget to enable it to finally blit when scrolling.
    • Improved line scrolling in the tree widget (it's actually as fast as 4.7 on my Win32 machine) on all platforms.
    • Added synchronous painting on row construction to reduce tree widget flashing on page scrolls and thumb drags.
    • Fixed a multiple style context resolution problem in the tree widget.  All rows and items were resolving their style contexts twice during construction.
    • Implemented finer-grained sharing in the XUL cache to provide another decrease in the time to show windows.  Most large stylesheets (such as global.css) were never being cached because they  were @imported from other stylesheets.  Patched the CSS loader to check  the XUL cache when @importing stylesheets and patched it to place stylesheets  that were loaded via @import  directives into the XUL cache for other windows  to reference when they load.
    • Added support for "bindingattached" event handlers to XBL.  This will enable the toolbars to be re-written (fixing numerous toolbar bugs) with a better architecture.
    • Stubbed out support for "bindingdetached" handlers in XBL.
    • Fixed a bug on a binding swap (through style) that was preventing resizing of the sidebar in mailnews.
    • Patched scrollboxes to fix a bug that prevented line scrolling.
    • Implemented support for obtaining a XUL object's  x/y position and rect.  This is equivalent to IE's  offsetWidth,offsetHeight,offsetLeft and  offsetTop properties
  • Dan Rosen (dr)
    • Successfully indoctrinated, set up his Linux box (thanks for nothing, IS), and dived into bugfixing.
  • Brian Ryner (bryner)
    • fixed linux bookmarks crasher (45786)

Lowlights

Priorities

  • pinkerton:
    • 39326, distinguish between src and dest in drag/drop
  • saari:
    •   Checkin 'fix in hand' bugs - 37301,35394, 43874,44503
  • hyatt:
    • Fix up the XUL cache
    • Work on resizing columns in tree
    • Continue to work on performance issues (Quantify Quantify Quantify)
  • evaughan:
    • more vacation
  • pavlov:
    • begin working on performance bugs (12761, 16710, 26502)
  • danm:
    • 46556 -[nsbeta2+]ETA ???crash, nsbeta2Crash after change theme [@ DocumentViewerImpl::MakeWindow]
  • dr:
    • 36532 M18nsbeta3+nsbeta3Mozilla hangs on the splash screen when using UNC to launch
  • bryner:
    • 42109 -nsbeta3+crash, nsbeta3crash at shift-clicking a title in the messages list
    • 46426 M18nsbeta3+crash, nsbeta3crash deleting and selecting local messages quickly

Dogfood

  • Zarro Boogs

Beta Stoppers

People

Necko/Imglib
July 31
Submitted by Gagan Saksena <gagan@netscape.com>

Summary

  • Highlights
    • Proxy Auto Config finally in!
    • Several bug fixes. Really down to Zarro Boogs for nsbeta2+
    • Exceptional work by the whole team to nail the last few cache bugs for PR2. Kudos to all of gteam!
  • Lowlights
    • Huge list of untargetted bugs to go thru. Hopefully resolved by end of day today!

Highlights

  • gordon
    • no status this week.
  • ruslan
    • No official status but he has been working on a Win2K only problem which has been difficult to reproduce. And also helping Neeti out on cache bugs.
  • neeti
    • Bugs 40084, 46014 resolved by the collective efforts of the entire Necko & ImageLib team.- Thanks to Pam, Gordon, Ruslan and Gagan.
    • Currently working on bug 40449
  • pnunn
    • bug#46049: [probably will be nsbeta2+]  fix for 30852 puts added channel load attribute on loadgroup. fixed by backing out nsLoadGroup.cpp change on 30852 (since I had approval to fix that.)
    • bug#46032: closed/fixed. nsbeta2+. changing imglib load attrib to value of default channel off of LoadGroup works (instead of the attrib attached to the LoadGroup).
    • bug#46236: closed/WONTFIX. bug is can't display corrupted image.
    • bug#41056: closed/fixed. Could not reproduce on Mac OS 8.5.
    • bug#40192: closed/fixed. Works ok now.
    • bug#42208: closed/wontfix.  (user using old internal icon names).
    • bug#19283: closed/fixed. png transparency works. when alpha fixed.
    • bug#40066: closed as worksforme.
    • bug#41627: close/duplicate of #41107.
    • bug#45999: closed/fixed. by checkins for #46049.
    • bug#22754: closed/fixed. gif crash.
    • bug#42290: closed/works for me.
    • bug#41630: closed/worksforme.
    • bug#42788: closed/works for me.
    • GTeam Cache Bugs Extravaganza.
    • bug#41107: got to the core of the problem. Animated images are not kept in image cache and js preloaded images are assumed to be in image cache.
  • gagan
    • Proxy Auto Config finally switched on. The last bug was a regression caused by SOCKs checkin a while back.
    • Helped keep the whole team's nsbeta2+ in focus.
    • Helped Neeti with her cache bugs.

Lowlights/Issues/Risks/Escalations

  • None.
MailNews
July 31
Submitted by Steve Elmer <selmer@netscape.com>

Navin Gupta joins the MailNews team starting today!  Welcome Navin!

Thanks! to:

  • Hyatt for tree scrolling improvements (the number 1 marketing request for performance)
  • The whole team for getting all our beta2 bugs fixed!
  • Joe Francis for helping fix autocomplete/IME recently
  • Jennifer Glick and Andrew Wooldridge fixed a number of Address Book UI bugs last week for us.
  • thanks again to timeless@bemail.org for fixing more menu stuff
  • MScott helped security team implement the ability to download certificates via the uriloader for beta2.

Issues

  • Still minusing bugs in our triage meetings, need to get some plusses soon
  • AB Sync server still not reachable due to missing firewall access.  The press around this feature has been cut from beta2, we're trying to get the feature itself in so we can promote it on the website.

Vacations & Sabbaticals!

  • JeffT 7/10-9/5
  • SSpitzer 7/5-8/26
  • CHuang 7/24-8/11
  • Bienvenu 8/17-8/23
  • RHP 8/18-8/27

MailNews

  • nsBeta2+ Bug List (None Left!!!)
  • Bugs closed last week (1 dogfood, 11 nsbeta2+, 25 total)
  • nsBeta3 Triage (608 candidates)
    • Mail Triage is currently minusing bugs and sorting potential plus bugs into different buckets for prioritization.  Mail developers continue to work on a small number of pre-approved bugs while we figure out what to give actual plus status.  We're planning to have all plus bugs marked by the end of the week.
  • Opening the trunk to beta3 is a HUGE relief :-)
  • Converting prefs to nsIFile
  • Working on embedding vs profiles and prefs
  • Completed cleanup the Message compose menus and fixed all the enable/disable problems.
  • Fixed the "quit mailnews and crash" bug
  • Fixed last problems with Netcenter Webmail

Profile Manager

  • Highlights
    • Helped UREG and Franklin teams with following bugs 
      • 1283 - Activation team to query Franklin multiplexer
      • 1420 - Franklin team to set webmail cookie on receiving request from UREG
      • 1626 - "Login Failed" for webmail acocunt (mailbox is not getting created) 
    • These bugs have been fixed. Verified on test servers. Waiting for changes to get pushed on to production servers.
  • Lowlights
    • Helping Nisheeth with history bug.
    • 1231 - Go Back screen on Activation error screens is not working
    • This is a history.back() problem. Helping Nisheeth with his proposed fix. Bug fixing is still in progress.
  • Issues
    • Many (UREG and Franklin) changes getting pushed on to production servers. We need to see how things shape out.
  • This week
    • Continue to work with UREG and Franklin teams on activation and webmail beta bugs.
    • Help with other beta2 bugs and verifications.
    • Start on beta3 Profile Manager bugs.

CCK

  • highlights
    • CCK is out of the water as far as the build process is concerned.
    • fixed several bugs
    • Resolved Bugs
  • lowlights
    • Kyle needs some more time to come up to speed on cck and we will not have the infozip (for multiple windows platforms) for Beta2.
Architecture
July 31
Submitted by Warren Harris <warren@netscape.com>

Issues

  • Vidur, Waterson, Valeski and I got together on Friday to triage all the bugs we've filed for embedding. We've uncovered:
    • 107 bugs nominated for nsbeta3
    • 58 of those fall outside of Jud's and my groups
    • 44 or those are footprint/mlk, 16 are embed/arch
  • We feel that to adequately tackle footprint problems to satisfy the embedding project's needs, it will require a consorted effort on the part of many CPD engineers. Engineers closes to the code in question need do the analysis to uncover memory consumption problems and help minimize footprint. There are currently 77 memory bugs nominated for beta3 (the 44 above fall outside of the architecture and embedding groups) -- but these are just the tip of the iceberg, and we still have no data on how these particular bugs will affect overall memory consumption. We need to raise the priority of footprint work throughout CPD.
  • On top of this memory footprint problem are numerous architectural cleanup tasks which seem to be below the seamonkey radar. These tasks serve 2 purposes:
    • stabilize APIs for embedding,
    • buy us insurance post-seamonkey FCS so that developers wishing to extend mozilla don't come to depend on every API we've got (this is a major problem when all your source code is publicly visible).
  • We should decide that the embedding goal is everyone's priority, or we shouldn't do it at all. It's clear from this data that it goes well beyond Jud's group.

Highlights

  • Edward Kandrot starts this week and is in orientation today. He will begin helping us with footprint and performance issues.
  • Big speedups for large documents by Chris Waterson and David Baron (see below).

Engineering Status

  • waterson
    • Wrapped up M17/nsbeta2 bug 46013 (no themes on startup), which ended up being caused by two different faults. Decoupled RDF from layout (yay!) and fixed refcounting & teardown in the chrome registry's datasource.
    • Landed nsTextRun evisceration; caused some regressions, but I think those are dealt with now. This takes a big chunk out of the "slow on long text docs" bugs; however, we're still about 2x slower than 4.x and IE on long, flat text & HTML (down from 3x to 4x slower). (N.B. that dbaron's fixes to GetLinkState() are another big contributor to this speedup.)
    • Landed pent-up M18/nsbeta3 work; mostly fixes to RDF and XUL templates, some minor layout correctness bugs.
    • Moved nsFixedSizeAllocator into xpcom/ds (from RDF) for use by harishd for parser node arena allocation. (Also, alecf & bienvenu had expressed interest.)
  • vidur
    • Attended footprint meeting and sent out active footprint/performance task list.
    • Ongoing API Review work.
    • Set up http://www.mozilla.org/xmlextras. A bit of minor bug fixing.
    • [Lots of Netscape internal meetings]
  • rayw
    • Made progress on Views and Formatting proposal, and clarified the issues for the teleconference and face-to-face meeting about it.
    • Spent a lot of time working on the bug lists, working towards resolutions on a number of xpcom fixes.  No actual code changes were rolled out.
    • Spent more time researching and discussing Component Manager issues. I would rather go slow than do the wrong thing at this point.
    • Will log more bugs this weekend and try to come up with a reasonable schedule for beta3 work, and a last pass at the APIs, with descriptions.
  • waldemar
    • away again
  • rpotts
    • no status (2 more weeks of vacation)
  • jband
    • Fixed some bugs.
    • Did some investigation of footprint bugs.
  • warren
    • Worked on getting jar process running on the Mac. Need to do a little more debugging.
    • Jarring is working on Windows, not checked in. Linux needs a little more work too.
    • Working on reworking streams interfaces to solve problems for embedding.
  • dprice
    • Got sucked into 4.7 on Thursday and Friday.
  • scc
    • bug #46899: fixed/checked-in changes to ns[C]String::SetCapacity(0) to discard storage
    • bug #46898: verified/checked-in for jag's nsCString::ToInteger patch
    • bugs #28221, #46738: looked at Doug Turner's string profiling data (here are copies for people outside the firewall: Book1.txt, Book2.txt) but I think we need more data before we can draw any meaty conclusions
    • worked with David Boswell on Mozilla Developer Day schedule, speakers, and preparations
    • Posted the slides from my O'Reilly presentation and hooked them up to the Mozilla at the O'Reilly OSS Convention page
    • updated distribution instructions for Mac with details of BuildID generation at Dawn Endico's request
    • fixed the nsCOMPtr User's Guide and a couple of other documents to have the cool horizontal menu
Footprint/Performance
August 3
Submitted by Vidur Apparao <vidur@netscape.com>

1) Parser token and string usage
Description: The parser currently heap allocates small CToken instances and keeps them on a recycler list "for performance reasons". The recycler list is currently unbounded in size. Text tokens also use nsStrings to store copies of their text data - also heap allocated. The overall memory usage shows up high in bloatblame logs. The working set memory usage also stays pretty high because of the unbounded token recycler.
Module owner: harishd@netscape.com
Task owner: harishd@netscape.com, scc@netscape.com, vidur@netscape.com
Bugs: 46702
Status:
7/28 - Harish is looking at arena allocating the token objects. Scott is working on a segmented string implementation which
can deal with substrings that share the underlying buffer for the token strings.
8/2 - Harish switched token allocation to be arena-based. Needs help from waterson for analysis. Scott is working on a segmented string implementation which can deal with substrings that share the underlying buffer for the token strings.

2) "Super global" for JavaScript
Description: Currently each DocShell has a script context and script global object associated with it. For each script global object, we initialize the JavaScript core classes and some DOM classes per document in the shell. This redundancy has both performance and bloat repercussions. The thought is that we might be able to have "super global" object on which the core classes are defined. This would be the JS prototype of the per shell script global.
Module owner: jst@netscape.com
Task owner: jband@netscape.com, vidur@netscape.com
Bugs: 46703
Status:
7/28 - JBand to determine the memory used by the core classes. JBand, Vidur and Johnny to determine what could break
with a super global.
8/2 - JBand did some analysis. Initializing the core classes is around 87k, per window, per document. This is bigger than one would expect so JBand will do more analysis.

3) Image Library
Description: We have anecdotal information that the image memory cache (not the network memory cache) is not being hit very often. We also don't know if the size of the cache is bounded and if it a memory flush listener.
Module owner: pnunn@netscape.com
Task owner: syd@netscape.com
Bugs: 46704
Status:
7/28 - Syd to work with Pam to analyze image memory cache usage and size limits.
8/2 - Syd met with Pnunn to get an introduction to image lib. They put some debug logging into the image lib and believes that the cache is being used correctly for chrome images. Syd to do more analysis with chrome and content images.
The image lib cache size is hardcoded now - it should be controllable via a pref.

4) CSS Loader
Description: Analysis from dougt@netscape.com shows that we are loading the same CSS files from disk at startup time redundantly. The CSS Loader should be caching compiled CSS style sheets so that we don't hit the disk. Chris' suspicion is that we aren't hitting the cache for @imported stylesheets. Why are we loading the CSS files multiple times? If the cache does exist, is it bounded? It needs to be a memory flush listener.
Module owner: pierre@netscape.com, attinasi@netscape.com
Task owner: pierre@netscape.com
Bugs: 46548, 29370
Status:
7/28 - Pierre to investigate why we are loading the CSS files multiple times and not hitting the CSS Loader cache.
8/2 - Hyatt says CSSLoaderCache is only per document. He has fixed the chrome cache to cache across documents for chrome. Still need to look at 29370.
 

5) When to flush memory
Description: When should the memory flushers be run? The current thinking is to have a combination of a timer and an IsLowMemory predicate (requires hooking into malloc/free, new/delete for each platform) to determine when to run them.
Task owner: warren@netscape.com, wade@netscape.com
Bugs: 44352
Status:
7/28 - Wade to investigate implementing the IsLowMemory perdicate.
8/2 - Wade found a utility to get memory information on Linux, but Warren didn't have luck using it. Warren and Wade to investigate more.

6) .xpt file loading
Description: Currently we're loading more type library information than we necessarily use because of the way xpt files are created as part of the module build process. Better factoring of the xpt files could result in less loading at startup time and less memory usage. Also, the type library info needs to be a memory flush listener.
Module owner: jband@netscape.com, mccabe@netscape.com
Task owner: jband@netscape.com
Bugs: 46707
Status:
7/28 - JBand to investigate either better factoring of typelibs in xpt files or the idea of putting all of the individual small xpt files into a single zip file.
8/2 - JBand found that Warren's idea of putting everything into a zip file is not slower. JBand to look into playing with the build system to switch the packaging mechanism.

7) Networking memory/disk cache
Description: We have anecdotal information that we're not hitting the networking memory/disk caches that often. We need to do analysis of cache hit rates.
Module owner: neeti@netscape.com
Task owner: gagan@netscape.com
Bugs: 46708
Status:
7/28 - Gagan and Neeti to do analysis.
8/2 - Gagan found that some cache logic sits in HTTP and would like to see if it's possible to move the logic into generic code so that it can be used by other protocols. Image library might want to use cache manager.
 

8) Component registry loading
Description: We load and inflate the component registry at startup time. We've heard anecdotally that the in-memory cost of the component registry is 1-3 megs. This hit could become worse if/when we implement RayW's new scheme for prog IDs. Need to see if we can use a better scheme to reduce bloat.
Module owner: rayw@netscape.com
Task owner: waterson@netscape.com, dougt@netscape.com
Bugs: 46709
Status:
7/28 - Chris and Doug to do analysis of memory usage so we have real numbers.
8/2 - Doug found that we're hitting the disk too often in reading the component registry. There's a lot of seeking going on. One option in dealing with this is reading the entire file into memory. Another is to explore a different file format. Warren to look into this.
Need to do more analysis on the in-memory component manger representation to see if we can get it more compact.

9) String bundles
Description: StringKeys used by string bundle hashtables have showed up fairly high on the bloatblame list. Each StringKey holds an AutoString which seems wasteful for the keys in the hashtable itself (the AutoStrings are useful during lookup when the key is stack allocated). We need to reduce the size of StringKeys. Also, could string bundles be arena allocated?
Module owner:  tao@netscape.com
Task owner: warren@netscape.com, alecf@flett.org
Bugs: string key/hashtable issue:  46711
string bundles: 46712
Status:
7/28 - Warren to look into alternatives for StringKeys and string bundle allocation.
8/2 - Warren to look into putting a bit into StringKeys to deal with the case where the key doesn't own its string - it points to the static version or an arena allocated version of a string. Arena allocation should happen for some of the hashtables that use StringKey. Warren to also look at whether double-byte string keys are always necessary.

10) Bloatblame FE
Description: Currently bloatblame is a post-processing tool. We believe we can get much more useful information if we can get more real-time data of module memory usage. Brendan has been working on the back-end of the real-time bloatblame. Wade and Pavlov are both looking into a front-end to display/graph the data.
Module owner: brendan@netscape.com
Task owner: wade@netscape.com, pavlov@netscape.com
Bugs: 46714
Status:
7/28 - Brendan is on vacation and we believe that the currently checked in version does not implement all the back-end changes necessary. We may need to wait till Brendan returns.
8/2 - No progress.

11) Chrome cache analysis
Description: Dougt's analysis about redundant file loading at startup time shows that we're also loading the same JS chrome file multiple times. We need to figure out why the chrome cache isn't sharing compiled versions of the JavaScript.
Module owner: waterson@netscape.com
Task owner: waterson@netscape.com
Bugs: 46129
Status:
7/28 - Chris to determine what's happening here
8/2 - Caching is already done per document. Hyatt to look into caching across documents.

12) Mail/New bloat analysis
Description: Does mail/news have bloat analysis tasks that should go on this list?
Module owner: bienvenu@netscape.com, alecf@flett.org
Task owner: waterson@netscape.com
Bugs: 46716
Status:
7/28 - Chris to get David or Alec to come to the meeting and send us a list of tasks.
8/2 - Chris: Every message is recreating a mime parser - 300-400k of bloat over ~2000 messages. Bienvenu, Alec, etc. are working on that.

Cache
August 3
Submitted by Gagan Saksena <gagan@netscape.com>
The necko group met today to work on the cache related issues with this agenda in mind-
  1. Wrap up nsbeta2+ if any.
  2. Identify current problems with the cache.
  3. Solve these problems or have people assigned to be working on solving them.
  4. Make sure our solutions are in line for beta3 schedule.

As a result of the discussion we had the following problems with the existing cache were identified-

  1. Cache entries getting updated only in OnEnd This should mostly be fixed now, but was left on the list to make sure we covered it.
  2. Cache Corruption Using the cache for a while results in nasty database corruption which has manifested itself in crashing the app to freezing up on the Mac.
  3. IMS problem This is the problem with bugzilla pages not getting updated correctly because our logic for checking the cache "once per session" was busted. This is fixed as well. Bug 46014.
  4. Caching when we shouldn't There have been known cases (specifically on ETrade) when we get a "Pragma: no-cache" and we'd still land up caching the page.
  5. Delete/Replace cache entries The current cache login using the cache entry that was found thru GetCachedNetData call to replace and update it with a new one. This entry is also marked inUse and so we have problems resetting it.
  6. Testing (about:cache) Most of these cache bugs would be really easy to detect if we had a reliable robust test suite that we could run thru each time the cache code changed. Tever adds that about:cache used to be a reliable way for QA to verify that a cache entry was available in the cache. This is not implemented in Mozilla.
  7. Multithreading issues (simultaneous access) We currently have no mechanism to safely provide simultaneous access to cache.
  8. Versioning cache entries The cache data itself has no versioning mechanism, this means that each time when we build/upgrade the data structure for cache entries, if someone has older cache sitting around we have a guaranteed crash or a hang.
  9. Cache checks for replacement policies, cache headers, etc. Several existing bugs indicate that we may not be checking correctly for replacement policies, the load group flags that are provided on the channel when a request comes thru. We also have cases of incorrect response header handling (like Pragma no-cache, etc.)
  10. Cache logic inside HTTP A significant portion of the actual cache logic sits in the HTTP code (nsHTTPChannel::CheckCache, nsHTTPChannel::CacheReceivedResponse among others.) This makes it difficult to use cache for anything else but HTTP. Besides adding the bloat to the actual HTTP logic.
  11. Preferences are messed up. Several cache preferences are not read/followed correctly.
After about an hour of discussion the following solutions/tasks were determined-
  1. Verify that the replacement policies are correct, cache headers are being honored, and preferences work correctly. Make sure we don't cache when we shouldn't. No duplicate caching (memory as well as disk) As a safe measure we may even consider no caching when there is no content_length associated with a transaction. Bug 47400 (neeti, gagan, tever) [Solves 9, 11]
  2. Add logging to cache, implement about:cache Bug 21095 (gagan, neeti, tever) [Solves 6]
  3. Build a robust cache test suite Bug 47401 (tever, gagan, neeti) [Solves everyone's problems and provides a way to detect them early on]
  4. Break GetCachedNetData into existing entry and new one.Bug 47403 (neeti, ruslan, gordon) [Solves 1, 2, 4, 5]
  5. Move cache out of HTTP Bug 47405 (gordon, ruslan) [Solves 10, addresses 7]
  6. Add reader/writer monitors/locks. Bug 47406 (ruslan, gordon) [Solves 7]
  7. Add a version file to verify correct versioning. Bug 47408 (neeti, gagan) [Solves 8]
Owners of these bugs, please add more details since I only filed these bugs with respect to the discussion we had. Several of these bugs require a lot more info before the nsbeta3 nominations can be resolved.

Previous Updates