NGLayout - Gecko's future (beta, release, and beyond)
with Rick Gessner


<chrisn> rickg: why don't you introduce yourself?
<ncode> is mozilla the lecture channel?
<Sjoerd> ben: with PNG and alpha-channel this could be done with translucent white and black pixels, right?
<rickg> I'm rickg, Director of Engineering at Netscape.
  I was one of the original architects of Gecko.
<Ben_Goodger> sjoerd: I dont know, I just used a transparent gif. :)
<Asa> hi rickg
<rickg> hello
<chrisn> ok, if we could get a quick introduction from everyone else, we'll get started.
  I'm chris nelson, and I maintain mozillaZine...
<Sjoerd> ben: are they already black and white, or do you have to make a new picture for every color?
<Asa> Asa Dotzler: mozilla advocate
<FrodoB> Mark Anderson, college student, Web developer, and Mozilla advocate extraordinaire.
<jst_home> I'm Johnny Stenback, a DocZilla developer...
<MattyT> matthew tuck: I don't know why I'm here
<Ben_Goodger> Ben Goodger, questionable UI advances
<chrisn> also, if some of you could log this chat in case I get disconnected...
<zinebot> Just appeared in Slashdot:News for Nerds. Stuff that Matters. ( Linux Scavenger Hunt Party
<Sephus> Stephan Nedregaard: developer
<Tekhir> I'm Jeremy, web dev
<Sjoerd> Sjoerd Visscher, website scripter
<Tekhir> chrisn: I'm making a log too
<trudelle> Peter Trudelle, XPToolkit mangler, sheriff du jour
<chrisn> Tekhir: ok, thanks
<Ben_Goodger> hi simon
<rickg> Hey Simon.
* smfr awaits pearls of wisdom from rickg
<chrisn> alright, well someone feel free to throw out the first question
<rickg> I'll go first...
  What the heck is the story behind the moose?
<smfr> floppy moose?
<Ben_Goodger> that's what I'd like to know.
<rickg> MMhhmm
<akk> It's highly technical.
<chrisn> the moose?
<rickg> Ok, I'll have to read about it in Dr Dobbs.
<MattyT> ok, I'
<rickg> The moose is mascot/architect of the ender project.
<chrisn> ah
<Asa> RickG: Where is gecko now (standards support, speed, whatever) and where is it going?
<rickg> Hi Dawn.
<endico> hi!
<MattyT> I've heard the mathml people talk about how they hook in being ad hoc, how much work would it be the add a general interface to nglayout so that say adding svg would involve no nglayout work?
<rickg> Let's start with where we are, then I'll go back to MathML...
  Speed: fast now, and getting better weekly.
  The nice thing is that the core layout team is focused on perf/stability.
  Standards support: we just did a presentation at WebGuild, and blew IE off the podium.
* Asa cheers
<chrisn> sweet!
* Ben_Goodger cheers too
<rickg> But we have some work to do, too.
<Sephus> Standards support: Blowing IE off the podium isn't enough...
<chrisn> rickg: how far from completed is HTML 4 & CSS1?
<rickg> Ok, then how about this...
  HTML 4.0 Transitional is in the mid to high 90%.
<FrodoB> What's missing, then?
<rickg> CSS1 is largely done, I believe, though we've suffered setback recently. Our chief style engineer has departed to focus on his family.
  We've moved the bar up a bit.
<chrisn> rickg: who was that?
<rickg> Peter Linss. I hope everyone will mail him at and ask him to come back! : )
  The bar...
  We're now focused on DOM level2, CSS level 2, and XML.
* Asa cheers again
<rickg> The problem with standards, of course, is that they don't sit still.
<chrisn> rickg: focused on them with the goal being?
<rickg> And we have to get or system done and out the door for this to mean anything.
  Focusing on Css2, for example, enables XUL functionality, while enables web developers to make better UI/applications.
  So, our priorities are...
  1) Ship soon; 2) Ship something *great* soon
  next question...
<chrisn> are the goals of 100% HTML 4.0 Transitional, CSS1, XML and DOM Level 1 still there?
<rickg> Yes.
<chrisn> (by release that is)
<MattyT> rickg: mathml?
<Tekhir> rickg: How is incremental reflow coming along?
<rickg> Incremental reflow is getting better every day.
  The biggest problem we have now...
  is content sink update.
  We've got "top men" working on he problem everyday.
<MattyT> rickg: a lot of people seem to agree
<chrisn> content sink update? Could you explain?
<rickg> with our goal, or our improvement gains?
<MattyT> chrisn: that's the most voted bug
<rickg> The content sink is an interface that lives between the backend and the document.
  When a document streams into the parsing engine, it's routed to the sink.
  The sink then routes it to the doucment, and nodes are created.
  The sink itself is lightning fast, but updating the content model is not "incremental" enought.
  What was the question?
<MattyT> I've heard the mathml people talk about how they hook in being ad hoc, how much work would it be the add a general interface to
  +nglayout so that say adding svg would involve no nglayout work?
<rickg> oh yes...
<MattyT> chrisn: I think the gist of rickg's last comments were that lists and tables don't incrementally appear
<rickg> That's true.
  We cache content until the close tag for a given element.
  One of our engineers has apparently made great strides this week.
  SO, mathML...
  The problem that the MathML folks have had, as far as I know, is that we don't have a public mechanism for extending the frame system.
  This is a hard problem.
  We don't want to hack an interface, only to have to replace it later. (It makes engineers really mad).
  So MathML folks have had to hack their frames into the layout DLL. Very bad.
  (Very bad means unfortunate).
  Early next year, we'll be freezing our interfaces.
  At that time, we might be able to free up someone to look into what it would take to allow frames to be more XP-COM based.
<Asa> rickg: It might help some of us if you could give a quick description off the organizational breakdown. Do you have several teams working on different areas of layout? Is there an HTML team, a stability team, a DOM team, an XML team, etc. and where are the priorities?
<rickg> My friends in management will not like this, but I'll tell you the truth...
  We have several teams working on mozilla.
  Layout, Ender (my two favorite)
  (ender is the editor built upon Gecko)
  Browser core
  (I'm probably missing someone)
<MattyT> internationalisation?
<rickg> Yes of course, Sorry.
<kerz> Necko?
<rickg> Again, I beg your forgiveness. Yes, Necko is a very important element.
<MattyT> nspr?
<chrisn> heheh
<rickg> And a few secret teams, too... : )
<MattyT> I think we should get a bit closer to rickg's core competency =)
<rickg> NSPR is a seperate team altogether. They're not part of CPD.
  Yes, thanks.
<chrisn> damn the secret teams. bring those agents in from the cold!
<Ben_Goodger> rickg: for building the nuclear deployment component?
<MattyT> nspr is used by netscape servers I assume
<rickg> Yes.
  Our plan is to acquire to nuclear subs, and be the first software company with thermonuclear capabilities.
<Ben_Goodger> will there be a XUL interface for this?
<rickg> Back to priorities...
<Ben_Goodger> hehe
<rickg> Each of the components is at a different stage.
<FrodoB> (So, would that be a Neckular sub? ;) )
<MattyT> can you tell us a bit more about the creation of nglayout?
<rickg> The gecko team is working on perfomrance and stability.
  Matty: yup.
  NGLayout came about when Netscape bought DigitalStyle.
  Kipp Hickman, Principal Engineer extraordinare, realized they needed a new layout engine.
  I've been building layout engines since 1988, and many of us have built style based editing/publishing tools since the early 1990s.
<kerz> any this big?
  or bigger?
<rickg> Some of you may have heard of Pages by Pages. It was a very cool publshing system for the Next.
  It was much bigger than this one.
  So we have lots of tricks up our sleeves still.
<Tekhir> hehe, I own Pages
<rickg> My hero.
  So we had a vision for a much faster/smaller componentized layout engine.
  Netscape needed it, and infused my little team with great folks, like the Ender team.
  The project was very contentious at first.
<Sjoerd> Did the original design of nglayout include alpha-transparency?
<kerz> So were you already at work when bought out?
<rickg> Somewhat.
  It was our secret plan.
  Netscape ultimately decided last year to rebuild its technological base around Gecko last year.
<nonmo> how much of the buggy HTML stuff that displays ok on buggy netscape 4 layout-engine displays "right" on Geko?
<rickg> nonmo: good question.
  We have two modes... quirks, and non-quirks.
  In quirks mode, we try to behave liike Nav4
  In non-quirks mode, we try to "do the right thing"
<nonmo> what switches modes?
<rickg> It's VERY difficult to know the difference sometimes.
<chrisn> rickg: that brings me to one of our questions sumbitted in the mz forum: what kind of UI will you have to switch between them?
<rickg> Usually the doctype. But prefs may also be available.
<nonmo> can other "modes" easily be developed? (IE mode)
<kerz> Are you trying at all to mimic IE's engine?
  oh, heh
<rickg> I'll tell you if you promise to keep it secret... : )
<FrodoB> So, essentially, if I specify the HTML 4.0 Transitional doctype, I'd better hope I have the markup right for nonquirks mode?
<rickg> If you say doctype=strict, we'll be much more picky.
<FrodoB> I would imagine. :)
<rickg> kerz: you aren't far off...
<nonmo> I have to check my HTML on like 5 different platforms/browsers---if Moz could flawlessly simulate thouse...
<rickg> Here's something cool...
<MattyT> trying to emulate all IEs layout bugs would take a lifetime
<Kovu> flawlessly is a big, big word, no?
<rickg> Let me explain...
  In the old codebase, all of the semantics for dealing with tags was hardcoded in N places.
  In the new codebase, it's not nearly as fixed.
  For example...
  The parsing engine allows DTD's to be swapped in.
<Ben_Goodger> is that part of the reason why the new layout is smaller?
<rickg> Yse.
  er yes.
  That's how we deal with XML, HTML, text, ec.
  If someone wanted us to behave like IE, they could drop in a new DTD. Cool?
  (It's not quite that easy, but close).
<nonmo> can you explain why it's proving hard to integrate MathTML into the layout engine?
<chrisn> that is cool
<FrodoB> (Well, assuming you can emulate IE in a DTD. :) )
<Ben_Goodger> you'd have to define the visual layout though, I guess.
<chrisn> nonmo: already covered
<nonmo> sorry
<rickg> nonmos: see above.
<nonmo> okay
<chrisn> nonmo: we'll have the log up after the chat
<Ben_Goodger> rickg: any other ways that nglayout is smaller?
<rickg> Well, for starters, there is lot's less duplication of code. For example...
  The old editor used it's own layout engine of sorts to render a page.
  Ender uses Gecko.
  That's a lot of code.
  XPCOM has benefited us as well.
<Ben_Goodger> yeah..
<rickg> And this...
<akk> Also the old layout engine was implemented 3 times (different per platform).
<rickg> Hah!
  And this..
  There iscommon wisdom that says every app reflects the team that built it.
  Netscape has a set of small, fast teams that interoperate.
<Ben_Goodger> so you all went on a diet? :)
<rickg> Their code is a reflection of that.
<nonmo> heh
<rickg> ben: Umm, kind of.
<Ben_Goodger> hehe
<Asa> rickg: with ender and UI relying on gecko, is it being taxed to its limits?
<rickg> Not at all...
<jst_home> rickg: Can you say if the source for Gecko (or other currently public components) used in the upcoming *Netscape* release of mozilla will be available to the public (CVS tag/date) or will that version of Gecko contain "secret" stuff like crypto or licensed code?
<MattyT> How does ender hook in, eg placing a cursor and disabling links/buttons etc
<rickg> jst_home first...
  jst: The answer is that almost everything in mozilla will be in Netscape, but not everything in netscape is in mozilla.
  Mostly, this is for legal reasons.
  Matty: ...
<jst_home> Ok, thanks...
<rickg> How does ender hook in?
  Ender is a small component that lives, via XPCOM interfaces on top of Gecko.
  It provides transactions, editing rules, tranformation code, etc...
  It also uses services of the webshell for focus, selection, etc.
  Most of the operationg in ender are transactionalized operations against the DOM, via XPCOM interfaces.
  Is that what you wanted to know?
<chrisn> rickg: could you tell us a bit more about the WebGuild conference?
<FrodoB> I've noticed in the Working Draft for the CSS3 spec that there are a lot of elements geared toward UI design. Are there any plans, when those specs are final, to have those supercede equivalent XUL functionality?
<MattyT> more of how you turn a fairly static page into a dynamic one
<rickg> ack...
  Ok, quickly then...
  FrodoB: Yes, we've worked closely with the css group on w3c to integrate our ideas into future specs. nothing in concrete yet, though.
  Chrisn: just a moment...
  MattyT: ...
  The beauty of this architecture is that Gecko has a complete document model.
  Ender plugs in via a large set of interface.
  Those interfaces allow ender to cause document changes, which are updated by th normal reflow/process.
  So ender is very cool, especially because it gets to use so much of what Gecko brings by default.
  If you want to address something specific, ask again...
  ChrisN: the webguild...
  About a year ago, I was asked to present the *very* early demo on Gecko.
  As a follow up, we went back to debate with Microsoft on the state of the browser war.
  The MS guy was nice enough, and credible, too. He seems like he cares about what he was doing.
<Kovu> bloody forehead, brick wall?
<rickg> But our own Eric Krock was on a mission.
<chrisn> was that Chris Wilson, perchance?
<rickg> Even though he had larengitis (sp), he managed to show a side by side demo of us vs IE, and we killed 'em.
  Not chris wilson.
<MattyT> on function or speed?
<rickg> We smoked their demo on size, speed, and mostly on standards compliance.
  It was really funny to watch.
<Ben_Goodger> yeah baybee
<nonmo> would you be opposed to ad-blocking code being added to geko?
<rickg> The only thing we haven't done ship.
<chrisn> that's great
<MattyT> I guess there weren't any pages with big tables loading on a modem ;)
<rickg> No.
<nonmo> cool
<rickg> But look for even better table perf next week.
<Ben_Goodger> I wonder what MS has up their sleeves with its tasman.
<rickg> nonmo:...
<FrodoB> nonmo: I believe he was answering MattyT.
<nonmo> sorry
<o0> rickg: a quick question. is residual style being worked on? is this a beta task?
<rickg> nonmo: I doubt we would do it as netscape, but you can do it via mozilla.
<FrodoB> (If Tasman is even gonna be available for Windows.... It's allegedly coming first for Mac.)
<nonmo> I'm going to use moz, not netscape
<rickg> o0: (I ran a /whois on you earlier) I think you were set up to ask me that!!! : )
<MattyT> ok, were hooks added for ender into gecko, or did ender already have what it needed. I'm thinking specifically of the cursor, did they just add a DOM element and dynamically change a CSS property or what?
<rickg> Matty: one second.
<o0> rickg: i have a one-track mind :-)
<rickg> oO: Residual style is my problem. I'll get it in by beta, I promise.
  Matty: ...
<MattyT> what is residual style?
<rickg> An example of residual style...
  Residual style results when the document has style elements (inline) that are improperly formed.
<MattyT> irk, bring on xhtml!
<rickg> Really? Do you folks think xhtml is a good thing?
<chrisn> I'm ambivalent about it
<Sjoerd> Yes!
<Sephus> yes :)
* Asa doesn't know enough about it.
<FrodoB> Abso-freakin'-lutely.
<nonmo> one more spec to learn...
<MattyT> in some ways it seems to be, and in some ways not
<Sjoerd> the XML part of it anywhays
<nonmo> Why would anyone choose to use Netscape v.5 over Moz v.1 (besides crypto)?
<FrodoB> I like XML.... Enforces strict parsing. That's why I like XHTML. :)
<rickg> Features you'll really like, and that I can't talk about.
<irc> support. and branding I assume
<Kovu> hiss boo :)
<rickg> irc: Yes. Trust.
<Ben_Goodger> like winamp and realaudio bundled ;)
<rickg> I'm sorry. You'll have to forgive me.
<nonmo> it strikes me a scummy of netscape to add proprietary crap
<rickg> Please, it's not like that.
  It's just that we haven't announced it yet.
  I don't think we even know it will remain proprietary.
<irc> well I can't argue with crypto and 3rd party stuff not being in mozilla
<brad> be nice.. there's stuff that netscape as a corporation /can't/ release publically, and that's just a fact of life.
<FrodoB> And it's certainly not scummy.... Any company can do that with the terms of the MPL.
<MattyT> rickg: ender hooks in gecko? (above)?
<rickg> brad: Thanks.
<nonmo> if not proprietary then it will fold back into Moz?
<chrisn> rickg: what is your plan for beta? and do you expect it to be coming out at 12/15 still?
<rickg> matty: one moment.
  chrisn: Let me address matty, then you...
<chrisn> k
<rickg> Matty: You asked if hooks were added to gecko for ender.
  The answer, is that being a layout team who has editor experience, we knew that an editor would be built upon gecko and designed it that way.
  Cursor management ties into the focus system, which ties into event propagation, which was part of the gecko design. (And then greatly improved).
  Does that answer it?
<MattyT> yeah
<rickg> chrisn: Beta plans...
  Here's where rickg the engineer and rickg the manager are at odds...
  As rickg the engineer, I want this to get out yesterday, damn it.
<Kovu> amen
<rickg> As rickg the director, I owe it to you folks to make sure that what ships is usable. I feel that we only have one (big) bullet left, and I don't plan to waste it.
<MattyT> in my experience it's usually the opposite =)
<es_> by beta you're referring to mozilla beta and not netscape beta right?
<Ben_Goodger> what do you mean by one big bullet?
<rickg> The distinction is not useful.
<es_> ok
<chrisn> rickg: don't tell shaver that!
<rickg> shaver is one of the guys I respect the most.
  by "one (big) bullet", I mean...
  I don't expect the world to wait forever for us to provide a vision of the future.
  We have to execute well, RIGHT NOW!
<nonmo> how easy would you say it is to add to geko (compared with other large open source programming projects)
<Ben_Goodger> yes!
<Kovu> one last chance to make sure M$ doesn't jade Web standards
<rickg> Yes...
  and to keep the trust and mindshare of the web...
  we owe you folks a vision.
<MattyT> rickg: I think Mozilla 6 will make more of an impact that 5
<rickg> matty: how come?
<Kovu> I, at least, can wait for the quality
<MattyT> because 5 will attract the independent developers that will help to build 6
<rickg> Fair enought.
  Fair enough.
<Ben_Goodger> 6 should have more user level features.
<rickg> And this...
<Ben_Goodger> given the publicity of XUL and extensibility afte r5's release
<rickg> I have to say that 5 represents a new architect, and a new vision.
<FrodoB> However, I should think that 5 will also be the one where everyone is forced to stand up and take notice that people don't have to have incompatibilities, if the programming is done right.
<rickg> 6 will be a chance for us to REALLY innovate. If you like Gecko/Ender/XUL, wait until you see 6!
  Any other questions?
<MattyT> rickg: so will nglayout be shipped only with zero-known bugs?
<Tekhir> rickg: Could gecko be hooked into Netscape 4.x codebase easily, if someone at netscape wanted to do that.
<Ben_Goodger> FrodoB: I agree!
  the future looks bright :)
<rickg> tekhir: No. XPCOM is an all or nothing thing.
  Any other questions?
* FrodoB points to Matty's 0-bug question.
<rickg> Mmm..
<nonmo> would you still work on Moz if you didn't work for Netscape?
<rickg> We all know there's no such thing as 0 bugs.
<Sjoerd> how many procent of the time has gone into being compatible with HTML4?
<MattyT> 0-known bugs I said
<brad> 0 bugs is a misnomer.. can't happen. Many bugs are subjective.
<Ben_Goodger> wasn't there a plan or a build flag or something that would include nglayout in Classic?
<rickg> Matty: no.
  ben: there was a LONG time ago.
  nonmo asked a good question.
<Kovu> I remember a Classic 5.0 beta
<nonmo> if red hat (for example) hired you to contribute to Moz, would that feel okay?
<rickg> yes.
<nonmo> will something like that ever happen?
<rickg> But my head is focused on 5.0, right now. No other offers are being considred.
  nonmo: for me?
<nonmo> or your colleges?
<rickg> Yes, I know for a fact that it already has. Folks believe in mozilla.
<Kovu> colleagues?
<rickg> yes.
<chrisn> ok, folks - gotta wrap it up.
<MattyT> why headhunt someone i Netscape to work on Moz when someone else is already paying them too? =)
<nonmo> thanks rick. you rule
<MattyT> thanks
<chrisn> Thanks very much to Rick for stopping by and answering our questions
<_AsA_> Thank you Rick. : )
<Ben_Goodger> thanks, rick :)
<endico> there are some people who have no longer work for netscape who still contribute to mozilla occasionally
<rickg> I'm happy to do it. Please feel free to invite me back.
<Tekhir> thanks
<Kovu> see you on the other side
<chrisn> rickg: certainly will.
<jst_home> Thanks Rick.