As most of you probably know, I spent two weeks at Netscape in Mountain
View, CA. While there, I finally got some time to sort out the Transformiix
wrapper classes, and fix the XSLT hooks in the layout module. Keith Visco,
Nisheeth Ranjan, Vidur Apparao and myself discussed the state of
Transformiix and how we're gonna approach it in the future. I've split up my
report in current and future items, to keep everyone in the loop of our
plans, and to solicit feedback.
Current status
- As of today, the tree should build and run again with MOZ_XSL defined, on
all platforms. (Thanks Axel)
- The wrapper implementation has been fixed and cleaned up. Previously,
because the wrapper objects aren't always created through the document,
not all the wrappers ended up in the hashtable which defeated the
hashtable's purpose (cache the wrapper objects). The wrapper objects also
didn't take ownership of the Mozilla objects, but ignored the fact that
they got a strong reference back from Mozilla. This caused all the Mozilla
DOM objects of source, style and result documents to be leaked. The
wrapper objects now hold a strong reference to their Mozilla counterpart,
releasing the reference when they get destroyed. To ensure that all
wrapper classes get destroyed, I added a new base class
(MozillaObjectWrapper) that adds the wrapper object to the hashtable from
the constructor. When the document gets destroyed, so does its hashtable
which deletes all the wrapper classes. Previously, the document wrapper
also got put into the hashtable which resulted in the document trying to
delete itself from it's destructor. We currently don't hash document
wrappers to solve this. This has to be fixed properly (for xsl:include and
document()).
- The hooks in layout have been fixed, but their general design hasn't
changed. Previously, the XMLContentSink created two trees (source and
style) within the same document and passed that document to Transformiix.
Transformiix then had to hang it's result tree off that document. I
changed this so that Transformiix gets three document: source, style and
result. The rest of the hooks remain unchanged: this means that we don't
currently support multiple XSLT stylesheet PIs, and that the result
document is always an XMLDocument. For HTML output, we just create XHTML
content. This isn't optimal, and we have to fix some bugs because XHTML
elements and attributes need to be lowercased.
- I fixed up most of the namespace support in Transformiix. I still need to
check for any places that I overlooked, and verify that we always change
the default namespace when needed. This code is currently only available
in the Mozilla module, I'm working on getting it into the standalone
version.
Future
- I have basic support for the document() function and xsl:include for the
Mozilla module. I still have to verify the code and check it in.
- I have exposed the Transformiix XPath engine to Mozilla. I haven't checked
it in yet because there is no good way to pass the result back. I hope to
sort this out in the following weeks.
- I do realize that the design of the XSLT hooks in layout is flawed.
However, I've chosen to proceed as is for now. As I see it, it is pretty
important to have, even minimal, support for XSLT in Netscape 6 (and
Mozilla 1.0?). I am trying to get the hooks turned on by default. That
would allow us to ship a Transformiix (beta) module when Netscape 6 is
released to give people the option to drop in support for XSLT. This
decision is also inspired by the fact that the layout engine hasn't been
designed to allow Transformiix to plug into it as it should, and Netscape
will (understandably) be wary of changing the layout engine's design so
close to a release.
- I will investigate how to create a XPInstall package for the module.
- It would be good to expose the XSLT and XPath processors to JavaScript
from a "global name".
- Following Netscape 6, the design of the layout engine will change, and
we'll be changing the hooks. Currently, the idea would be to keep wrapping
the source and style documents, but to move the result construction to a
SAX-like event model. The standalone version will also be moving to SAX
for output construction. Work in the Transformiix side has already
started, but nothing has been checked in as yet.
- We haven't done any performance work on Transformiix. As we get pretty
close to conformance, attention will probably shift more to that area.
To get the hooks turned on by default, it would be good if people tried out
a Mozilla build built with MOZ_XSL defined, but without the Transformiix
module. This would allow us to ensure we don't cause regressions in the
layout engine when we remove "#ifdef MOZ_XSL".
Thanks to:
- Thanks to Radha for working with mscott on session history bugs with quick turn around on regression tests and code reviews.
-
Thanks to Varada for decomposing the mailnews JAR manifest file into manifest
files per mailnews resoure directory. This saves mailnews UI developers
a ton of time!
Issues:
- Jar packaging checkin cost us about 2 days
- Infrastructure regressions in general getting very expensive
- High nsbeta3 incoming rate
- Rapid cutting caused some inefficiency
Vacations & Sabbaticals!
-
JeffT - Back Today!
-
Alecf in Australia 8/21-9/8
MailNews:
Date | Open nsBeta3+ P1/2 | Open nsBeta3+ P3/4/5 | New, UnTriaged nsBeta3 Nominees | Fixed nsBeta3+ | Fixed non-nsBeta3+ | 7/31 | 0 | 0 | 630 | 10 | 46 (and 8 b2+) | 8/7 | 0 | 135 | 57 | 33 | 47 (and 9 b2+) | 8/14 | 0 | 146 | 43 | 56 | 16 | 8/21 | 69 | 62 | 70 | 43 | 6 | 8/28 | 54 | 66 | 53 | 37
(26 were P1/2) | 13 | 9/5
| 28
| 13
| 46
| 44
(29 were P1/2)
| 7 |
Profile Manager:
-
nsbeta3+ bug fixing.
- Fixed bug 50792 (Win95 Appdata problem), Fix for bug 48981 (Shrimp
tweak) under review.
Working on 49088 (Navigator only Install problem).
CCK:
- no status yet, fixed 3 bugs
-
waterson
-
vidur
-
Checked in fixes for the following nsbeta3+ bugs:
-
46861 - Split nsIDOMWindow into public and private versions for embedding.
-
49187 - Switched View Source to spit out HTML (to enabled selection and
copying) and optional coloring (to improve performance).
-
Working on 50071 - Correct codepath for XHTML delivered as text/html.
-
Ran Footprint/Performance tracking meeting.
-
Used waterson's memory snapshot tool to identify a couple of bloat culprits.
Also did a bit more MSDN research looking for DLL memory overhead information.
-
Worked with kandrot, jband, dp and rayw to figure out tasks for nsComponentManager
memory reduction.
-
rayw
-
No status; last seen gathering seamonkeys from the middle of the Great
Salt Lake
-
waldemar
-
Worked on ECMA 4 spec
-
Wrote tool to compare successive BloatView runs
-
Lots o' meetings
-
Played the role of virtual Warren
-
rpotts
-
No status; training team-building skills for Survivor II
-
jband
-
Worked on bugs:
-
50080 fixed DOM resolve regression
-
46707 added zip caching to typelib system needed here
-
51176 fixed crasher in xpconnect
-
50602 support for shared strings for xpconnect
-
50859 investigate necessity of JS locking in seamonkey
-
I've also been:
-
Looking at Win9x specific memory issues
-
Investigating memory costs of caching jars
-
Doing some work on JS debugging support code
-
Fishing for leaks and bloat
-
warren
-
Attended fiery conference at Black Rock Desert Inn
-
scc
-
kandrot
-
Accomplishments:
-
Investigated bug #46832, and the other ComponentManager bloat issues.
-
Volunteered to eventually take over rayw's XPCOM level work.
-
Successfully handed off the Monument leaking bug (#49428) to evaughn, with
all of the information I learned about the problem. He has a fix
for it.
-
Found a bug with plugins causing Linux to not launch. Found the bug
in the code, then contacted av with a recommendation for a fix.
-
Goals:
-
Continue to find and recommend fixes bugs in the product.
-
Continue to learn the codebase, and the tools available. Lots of
info to learn, lots of trick to the code to find out about.
-
Meet with rayw to get a dump of what he knows and his plans for his XPCOM
level work, to start the transition.
-
Implement perfomance/bloat issues for the ComponentManager startup, as
discussed with others on team.
-
Have a good Labor Day.
-
Issues:
-
I am borrowing some equipment now, until my equipment from AOL arrives.
I want to take my personal machines home soon.
-
dprice
-
Fixed a smoketest blocker for win32.
-
Worked on jar packaging for mac and linux.
Summary
-
The XPToolkit team resolved 93 bugs in the last week, fixing 57 of these, including 37 '+'. For details,
see our
resolved
bug list.
- We currently have 19 open '+' bugs,
only 9 of which we have committed to fixing for nsbeta3. The remaining
bugs, all p4-p5 priority, will soon be dropping off of our list entirely.
- We
now have engineers bouncing off Zarro Boogs; who are ready, willing and
able to assist others with their critical nsbeta3+ bugs (see priorities
for availability). Please contact me directly if you have work we can help
with.
Highlights
-
Mike Pinkerton (pinkertoni)
- profiling window creation time, window refresh time, window activation time on mac
- fixed dragging between text fields in nav window (47428)
- AIM no longer crashes on mac in standalone window (bugscape 2119)
- scrollbar thumb is dragable in history dialog window (49094)
-
Chris Saari (saari)
- mac menu optimizations
- hunting down various linux focus problems in search of a solution to 26882, the infamous spacebar scrolling
issue.
-
Daniel Matejka (danm)
-
43466
root_points_to_gcArenaPool in mail account wizard
-
22658
stacked dependent dialogs activate the wrong window when clo
-
44797
Sidebar links should open a New Browser window if there are
-
Eric Vaughan (evaughan)
- fixed several redraw bugs in labels in preferences.
-
made the grippy once again collapse.
-
fixed memory leaks in grids and trees.
-
Stuart Parmenter (pavlov)
- fix windows not repainting due to us dropping events bug 50606
- crash trying to get the parent of a drive in nsLocalFileWin bug 50837
- added support for secure smtp bug 30321
- reviewed blizzaard's 3000+ line drag and drop patch
-
David Hyatt (hyatt)
- XBL Work
- xbl syntax changes
- sped up typing speed and xbl event handling
- wrote xbl dtd and began working on formal xbl specification
- nsbeta3+ bugs
- fixed 42492, overflow: scroll not honored by textarea
- fixed 46330, add way to specify default skin/locale in chrome registry
- fixed 48261, delete bookmarks causes display error
- fixed 46505, text controls' divs improperly inheriting style from
main doc
-
Dan Rosen (dr)
- 49802
Mozilla overrides window manager placement prefs, randomly m
- 50612
remove C++ tab control frames
- 49479
[pagedown] on last page and [end] in xul tree widget don't s
-
Brian Ryner (bryner)
- filepicker stuff: landed RDF_FILEPICKER_BRANCH, fixing bugs:
- 49693 (crash on .. button)
- 47795 (slowness)
- with external contributor patches for:
- 9542 (esc should dismiss)
- 42054 (recognize ~ in paths)
- 42056 (resurrect history list)
- Other stuff:
- 50664 - memleak fix in nsBaseFilePicker
- 50628 - crash attaching a file to bugzilla
- 50554 - rework tree content deletion in the xul
template builder a bit, to fix the filepicker and chatzilla
- 50558 - too many onSelect firings (perf)
Lowlights
Priorities
-
pinkerton:
-
49141
New window performance
-
40071
accesskey doesn't block menus
-
I think activation/focus processing is a big reason why window redraw feels slow. Will profile that as part of window creation time.
-
saari:
-
hyatt:
-
43326
Thread Pane is corrupted while maximizing Mail window
-
41138
Dragging address to compose window crash after 3rd address
-
42553
ender lite event processing needs to be at the frame level
-
48774
sortStaticsLast property doesn't work
- crash when invoking menu commands
- may end up with dogfood+ bug on waterson's plate related to closing
of large pages being slow
-
evaughan:
- Bouncing off zarro, will help Hyatt, others.
-
pavlov:
- Available to help others.
- Performance optimization, especially on Linux.
-
danm:
-
37258
window.toolbar must be backwardly compatible with 4.x and IE
-
46988
browser window doesn't stay minimised
-
dr:
- 47395, 50440 (typing slowness: hyatt gave me lots of help understanding this stuff)
- receive more general brain dump on xul and xbl key handlers to fix more stuff in the languages
-
bryner:
- Available to help out with other people's beta3+ bugs
(I don't have any at the moment)
- Performance optimization, especially on Linux.
Dogfood
-
49141
New window performance
Beta Stoppers
We currently have 19 open '+' bugs, only 9 of which
we have committed to fixing for nsbeta3. The remaining bugs, all p4-p5
priority, will soon be dropping off of our list entirely.
Risk
Regressions continue to destabilize product, hamper progress.
Issues
High regression rate;
it seems like people are not being as careful fixing things as they should,
not testing thoroughly before checking in. We need to be getting more picky
about what gets changed ("don't shake the jello"), ensuring that the quality
goes only up. We cannot afford to tolerate instability just to increase
the number of bugs that get fixed. If the product isn't getting better,
it is getting worse, and there is no time to recover from that
before RTM.
Escalation
People
- Daniel Matejka on vacation 9/7 - 9/13
- Chris Saari is on vacation 9/5 - 9/8
Summary
-
We are down from 38 to 15 nsbeta3+
bugs. We should comfortably hit Zarro Boogs with a bug fix rate
of 3 bugs per engineer over the next week.
-
Thanks a lot to Eric Krock for helping us triage our beta3+ and beta 3
nominee bug lists last week.
-
The XML/DOM team resolved 40
bugs last week. Great job, guys!
People
-
Tom will be in Mountain View next week, from September 12 through 19.
Accomplishments of last week
- Harish Dhurvasula (harishd)
-
Analyzed arena based token cache with Waterson and found out that we now
save ~10% of the heap. Thanks to Waterson & Vidur - they were a great
help
-
Checked in fixes for bugs 46702,7670,47827,15204
-
Triaged my bug list ( 2 beta3+,3 nominated, 0 untargeted)
-
Sheriffed the tree on Thursday for 3 hours
-
Code reviewed for Akkana, and Vidur
-
Spent time to fix ( partial ) Solaris bustage
-
Fixed a crasher bug ( in rickg's plate ) 50994
-
Helped Naoki with tag observer regression.
- Heikki Toivonen (heikki)
-
Triaged bugs on my list as well as joki's list
-
Resolved 3 bugs: 46085 (fixed), 48139 (wfm), 42830 (wfm)
-
I am now officially a member of the W3C XML Linking WG
-
Did my first sheriff duty on Thursday
- Johnny Stenback (jst)
-
Checked in a fix for the final known problem with code that relied on old
incorrect DOM behaviour, patch from jrgm@netscape.com, part of bugs 48264
and 48161
-
Fixed nsbeta3+ bug 48213 and most of bug 48161. Finally removed the temporary
DOM Level 2 debugging warnings, cleaned out some old unused code
and made getAttribute() and setAttribute() on HTML elemensts case
insensitive (regression)
-
Fixing nsbeta3+ bug 28277. Added a callback to nsHTMLImageElement so that
we know when a image created in JavaScript has loaded completely (or fails
to load), this is needed to support onload and onerror event fireing
and also to support the '.complete' property on images create in
JavaScript
-
Helped Vidur land his changes that split up nsIDOMWindow into nsIDOMWindow
and nsIDOMWindowInternal
-
Did a final code review of the work done by Peter Van der Beken to turn
on the hooks for XSLT in mozilla
-
Started working on nsbeta3+ bug 7515
- Nisheeth Ranjan (nisheeth)
-
Checked in fixes and patches related to bug 10292 from last week.
-
Implemented getElementById() for XML documents
-
Fixed bug 50960 - crash while loading XML IRS test page
-
Checked in Ian Hickson's partial fix for bug 41924 related to computing
the alternate text for broken images. Latered the bug.
-
Investigated bugs 40982 and 47188 and marked them worksforme.
-
Investigated bug 47958 and marked it invalid.
-
Triaged beta3+ (from 38 to 20 bugs) and beta 3 nominee (from 21 to 0 bugs)
bug lists for the XML/DOM group with Eric Krock.
-
Code reviewed Charles Manske's workaround to bug 50703.
-
Sheriffed the tree on Thursday night for 4 hours
Plans for this week
- Harish Dhurvasula (harishd)
-
Fix the remaining ( 2 ) beta3+ bugs
-
Figure out why Solaris failing on run time
-
Triage bugs
- Heikki Toivonen (heikki)
-
Working on 22710 & 46046, still problems with load event (we will not
do abort event for 6.0)
-
Fix any of my remaining nsbeta3+ bugs.
- Johnny Stenback (jst)
-
Continue working on my remaining nsbeta3+ bugs.
Nisheeth Ranjan (nisheeth)
-
Work with Rick Potts on enabling asynchronous reflow during document load.
-
Work on remaining nsbeta3+ bugs.
Lowlights
Escalations
Summary
-
nsbeta3+ getting managable except for cache.
Dogfood and Risks
Beta Stoppers
Highlights
-
neeti
-
Thanks to dp for his help in fixing cache bugs
-
Fixed bug 49108
-
Currently working on cache crash bugs 48292, 48401
-
Have a patch for dogfood+ bug 50977. Need to verify it
on Mac, before it can be checked in.
-
pnunn
-
Bugs closed: 37241, 20939, 12977, 46236, 47098, 48546, 49097, 50614,
49440, 38656, 50614
-
13718: Most changes checked in on libimg side. Now working with Charlie
& Simon to figure out how info gets to DOM api.
-
Worked with UI folks to get work arounds for their chrome png antics.
-
png binary transparency doesn't work when specified as background image
in tables or table cells.
-
Gamma settings incorrect for mac.
-
gagan
-
Continuing to triage bugs for the whole team.
-
Proxies seem busted looking at them.
-
ruslan
-
Fixed 47936 - hopefully finally this time. Large post regressions have
been striking us lately in various places.
-
looking into - 31174 (SSL proxies)
-
gordon
-
Fixed 31900 "[MLK] Leaking CacheInfo objects"
-
Investigated 42408 "Downloading pdf file crashes" It doesn't crash anymore,
but there are still sporadic problems downloading pdf files I'll close
this bug if I find there are other open bugs that cover these problems.
-
Investigated 44627 "[mac]local files without .html extension are not loaded
correctly" yup. It works in 4.x. We should fix this,
nominating for nsbeta3.
-
Investigated 36196 "Int'l URLs have connection problems with their sites."
-
Investigated 35564 "MLK] Potential nsIIOService Leak" Patrick's changes
don't appear to be checked in. This should be easy to fix.
Lowlights
-
ruslan
-
looks like our general proxy support regressed across the board and needs
a hard look throughout. It blocks even looking into 31174
-
Continuing to be very short on time due to my new assignments
-
gordon
-
Haven't made progress on 47405 "Move cache logic out of HTTP" It might
be too risky at this stage to do anything significant here.
Issues/Escalations
With RSA Security's announcement that it has released
the RSA algorithm into the public domain
(http://www.rsasecurity.com/news/pr/000906-1.html),
the NSS team met and revised the release schedule
for NSS 3.1. (The NSS 3.1 project plan is at
http://www.mozilla.org/projects/security/pki/nss/plan_3_1.html)
The old schedule was:
- Beta: 9/25
- Certification (RTM Candidate): 10/6
- RTM: 10/13
We decided to start coding the RSA algorithm immediately
and aim to release a first functionally complete beta
next Monday (9/11). The certification and RTM dates
remain the same to allow sufficient time for testing and
debugging.
The new schedule is:
- Coding of RSA starts: 9/6
- Beta: 9/11
- Certification (RTM Candidate): 10/6
- RTM: 10/13
Previous Updates
|