You are currently viewing a snapshot of taken on April 21, 2008. Most of this content is highly out of date (some pages haven't been updated since the project began in 1998) and exists for historical purposes only. If there are any pages on this archive site that you think should be added back to, please file a bug.

Memory Tasks

Task possible sized of win? Bug(s) Assignee Duration
memory analysis (task generator)
  • publish gcc code generation analysis.
    • Fix gcc to *not* generate standard function prologue and epilogue for leaf functions; i.e., don't push a stack frame.
    • Fix gcc to use short jumps more aggressively (it appears to almost

    • exclusively use long jumps).
    • If we turned on -O3, make a pass through our code to make as many routines "static" as possible. Because of Unix linker semantics, all non-static routines must also be available "out-of-line".
    • dougt suggested, grovel around on the net to see if there are codegen patches for gcc that just haven't been checked in yet.
  • publish gcc compiler option analysis
  • "what we know now/what we need to know" paper
  • get daily memory use analysis reports running with smoke tests
    • track starting point, ave, end point, and slope of memory use in waterson graph
    • Include leak data in weekly memory tracking reports.
    • get Boehm Collector Leak Detector hooked up to smoketests and fiogure out data management and analysis scheme


thesteve, cls?


beard, thesteve, cpatrick

dll analysis (where's the code space going now?/how much have we got?)
  • how to measure on win32? investigate collection of detailed memory stats on Win32 (code vs. data)
    • vtune?
    • others?
  • Refine footprint requirements for existing embedding clients The embedding PRD lists overall RAM and disk requirements for target machines. We need to understand how these translate to allowable initial and maximum process size for the embedded component
    • goal setting for win32 - 32mb?
    • goal setting for linux - 64 mb?
    • how to build and measure in embedded apps?
      • post build instructions
  • collect "live object" data to determine what objects are contributing to process size growth.

mjudge, dprice



  • Tool updates
  • evalute and migrated to gcc 2.95.2 -O2 & -O3 builds or best currently available combination (bug 53486)
  • under new gcc, make L"..." expand NS_LITERAL_STRING("foo") correctly ( bug 54564 )
  • turn on exception handling. gcc currently requires RTTI to be turned on for exception handling to work properly. This is a known bug in gcc; see ¬†would save beaucoup footprint. (RTTI generates a lot of extra crap.)
  • sony gcc optimizations?
  • intel cygnus optimizations?
  • guilmette and/or other contracts for specific spec'ed optrimation work or other analysis view points?
  • commercial compiler evaluations
cls, granrose
  • Raise the priority of leak bugs, especially those that have a high benefit to cost ratio. Leak bugs should be thought of in the same light as crashers.
  • Drive the know leak mlk bug list to zarro to remove leak noise.
    • new owners for warren/ bugs?
  • Add leak status to weekly status reports - number of leak bugs open for their team, bugs fixed in previous week.
  • Get tinderbox leaks to zero. Expand tests, and do it again.

mgrs dbaron, dprice

  • reducing number of DLLs
    • 3.5Mb overhead on linux. why is the loader costing us so much?
    • cost of downloading bits to users
    • build system issue: big lump vs. lotsa dlls
    • where to apply component model; remove XPCOM interfaces from places where not appropriate (e.g., GFX)
    • getting rid of interfaces, getting rid of XPCOM interfaces, keep
    • XPCOM interface but "friends" don't need to use those interfaces.
    • ST: more analysis, build process changes on all platforms
    • LT: analyze eliminating component model boundaries, identify which components are replacable.
  • remove static linkage of DOM JS, replace with XPConnect
    • ST: 3 months ETA
jst 3 months
  • refactoring/.repartition code for working set
    • ST: get XUL, chrome, and rdf out of distribution
    • tool-based approach
    • code cover analysis of GKLAYOUT.DLL
    • xpcom code coverage analysis
    • code coverage analysis of (Solaris)


  • attack allocations
    • using new string implementations
    • ST: construction site analysis (wallet, layout)
    • savings on common strings
    • string compaction (e.g., UTF-8 encode everywhere?)
  • Port the "trace-malloc" code to win32
  • style system
    • estimate footprint savings for stlye system structure minimization
    • style context sharing if good savings
    • evaluate bloaty structures
    • ST: both
pierre, attinasi, evaughan
  • object cache analysis
    • ST: bloatblame, dynamic (page-to-page) analysis
  • ender "lite" analysis
    • ST: analyze allocation during blur, focus, typing
  • in-process PSM
    • psm does its own html UI -- inflexible
    • ST: yes (?)
    • LT:
      • eliminate PSM glue, protocols, threads
      • cert management UI
  • separate wallet from cookie
    • ST: ok
  • change content sink interfaces so that we can hook expat up directly to sinks
    • LT
  • layout memory analysis
    • ST
  • memory tools
    • ST
rework imagelib for lower bit-depths

Performance Tasks

Task Bug(s) Assignee Duration
  • examine multithreaded concerns
    • ST: fix proxy code, fix atom table
performance measurements for tracking (page load time primarily?)
  • get reflow measurement analysis tests running with smoke tests
  • come up with industry/press reviewer benchmarks where we need work, and begin daily measurements
    • zdnet
      • cache
      • plugins
      • others
  • get side case tests where we need work and begin daily measurements
    • large pages
    • big tables
    • big images, many images
  • Investigate page load hang problems that throw page load performance measurements off.


Architecture Tasks

Task Bug(s) Assignee Duration
  • making frames extensible and changing the way that frame ownership works
    • plug ins for mathML, svg, etc.
  • make GFX not XPCOM
    • ST: profile GFX on all platforms
    • LT: pavlov's GFX2
  • emulating native widgets
    • accessibility
    • test harness (e.g. QA Partner)
    • ST:
      • compile new frame classes that talk to native widgets, or
      • build out XUL and XBL to emulate
  • imagelib redesign
    • image depth; space wasted?
    • image cache analysis
    • tor's imagelib 1.5
    • ST: tor will land some good things; e.g., platform code for scaling
  • network cache
    • ST: memory & disk cache needs stronger ownership
  • DLL unloading, plugin unloading
    • actually unload modules that claim they can be unloaded
    • unload unused services
    • pick a simple test case to unload, like ftp
    • ST: turn on unloading when a module returns CanUnload().
  • bi-direction text landing
    • ST: let it happen; accept patches turned off
  • new view manager
    • remove xpcom interfaces?
    • ST: let it happen
  • security audit
    • ST: starting to happen
    • LT: privacy
  • consistent gamma correction
    • CSS work; e.g., PNG and named colors get same color correction
    • inhibit use of PNGs in skins
    • ST: tor is working on this
    • LT: CSS work
  • finish API cleanup
    • ST
  • make seamonkey be a "standard" embedding client
    • LT

Unit Testing Tasks

Task Bug(s) Assignee Duration
  • get serious about unit testing
    • ST:
      • "make test"?
      • investigate QA partner integration (somebody having success @iplanet)
      • getting at DOM-level stuff? DOM-based automation? DOM recorder?
      • string test harness (and make it xp ->bug 58544)¬†

adding 'make tests' to build system dprice
create output diff-ing tool dprice
hook up tests to tinderbox
investigate xpcshell for testing gerardok
DOM-diff, driving DOM, etc. Jason?

Support Tasks

Task Bug(s) Assignee Duration
document embedding APIs for AOL
continued PRD refinement / resolving questions frank
bugzilla enhancements
tinderbox enhancements