Spent some time poking around bug 100935, a crasher that appears to happen when you've got Java installed on Linux, somewhere down in the bowels of focus handling. Checked in a fix for 102534 provided by tingley@sundell.net for a minor regression from his typed node changes to RDF.
Spent the rest of the day batting around bug
102100
which is a regression that I caused when landing the fix for
97383.
The problem is that the max-element-size now
includes the width of the largest floater along a line's
band with the max-element-size of the line
itself. When doing an unconstrained reflow, a ``tall'' floater may
intrude on the line below it, and get included in that lines
max-element-size even though it couldn't possibly
reach that far down during a constrained reflow.
Tried fixing
102100
by using the placeholder frames in the line to account for the
floater's width; however, that didn't work in the case where the
text contained a <br> element. So, I gave up,
and futured the bug.
Poked around a couple new bugs that turned up which look like they might either have to do with my max-element-size changes to floats or attinasi's ongoing struggle with wrapping in table cells. Fixed a bug in the rdfliner code that was showing up when adding new accounts to mail. Spent some time poking around on Tuxia's website after a phone call where improvement of footprint to around 12MB was discussed. Couldn't find any of the good juice, but sent follow-on mail asking where I might find the magic patches.
Spent a few hours tracking down and fixing a re-entrancy bug in the good old template builder (content flavored!), and found the same bug existed in at least one place in the outliner builder, as well.
Verified that the fix for
bug 100952
will fix
bug 73953.
Yay! Spent the day trying to figure out why comboboxes that have a
height style set will expand every time you choose a
value. After much gnashing of teeth, I gave up, and gave the
bug
to rods.
Spent some time debugging
41521,
which is a block-in-inline bug that I managed to regress a while
ago. Turns out that I botched the implementation of
GetIBContainingBlockFor: I returned the top-most frame
in the split, not the block that contained it. Anyway, fixing that
still doesn't appear to fix the bug, so there's something
else going on here. I stepped through the StyleChange
reflow in the debugger, and as far as I can tell, everything is
working the way it should. (Actually, I really only verified that
everything is working the way it should for the first line in the
test case; after that, I just verified that the reflow reason
looked correct. Need to look more carefully at what's happening.)
Static build broke again. Took me a while to get past the other build bustage that's crept in during debug builds. Once I did, it turned out to be a simple case of missing statuc build-fu declrataions.
Mmm, page load performance bug triage.
Spent the day pulling together heap bloat data collected with trace-malloc; XUL and JS are at the top of the heap (so to speak) in a ``normal'' mozilla build. Took a look at shaver's patch for brutally sharing attributes: this'll knock off about 6% of the heap usage (after we've got ten windows open, anyway). Helped pav get the MIPS xptcstubs stuff working.
Put together a test case for shaver; there are some problems with the sharing stuff in its current incarnation. Got the MIPS stuff running on its target platform; looks like it thrasheth greatly; we're going to need to get our RSS to about 16MB. Met with folks about performance analysis.
Took the XUL attribute sharing bug back from shaver.
Continued to bang on XUL attribute sharing.
Should we make nsINodeInfo be a ``normal'' C++ object instead of a COM object?
Put the wraps on XUL attribute sharing. This is ready to go. Prepare for s3kr1t meeting.
Filed a
meta bug for XUL element reduction,
as well as several easy tasks (some with patches, even). Checked in
tingley's fix
to speed up nsIRDFContainer::IndexOf. Continued
collecting footprint stuff. Need to make embed tests link
static. Need to work on some kind of ``why would anyone care to use
XUL'' whitepaper.
Thought about keeping a look-aside map that would keep a reverse
pointer from the prototype element to the lightweight element, so
that we could get rid of the mParent and
mChildren fields in nsXULElement. If we
used a dhash, it might win over putting the fields in the
lightweight: have to do the math to see. The fly in the ointment is
the fact that we tend to clone nodes a lot for XBL, which would
necessitate copying these fields. Anyway, it's a thought.
clayton's meeting, review s3kr1t presentation, collect footprint
numbers, meet with rogc and grega for mail demo, rework
XUL attribute sharing
for shaver's nits. Check in
changes
to use nsCheapVoidArray for
nsXULElement::mChildren. Decided
moving
mListenerManager into nsXULElement::Slots
is not worth it. Checked in
changes
to eliminate nsXULElement::mContentID.
Got TestGtkEmbed to link statically, also made
trace-malloc work right with it. We're big. Real
big. s3kr1t meeting. Checked in
changes
to move nsXULElement::mLazyState into the slots. Left
the bug open, because I ought to share this with the low bits of a
pointer field.
Tinkered with shaver's
resident set viewer.
Couldn't get it to work. Whined. Spent the rest of the day
moving broadcaster support
into nsXULDocument.
Finished up work on the patch to
move broadcaster support
to nsXULDocument.