Gecko:Content Team Minutes

From MozillaWiki
Jump to: navigation, search

Last week's actions:

  1. current team roster: bz, dbaron, jst, sicking
  2. who else should be included? bryner, peterv, mrbkap
  3. how should we track our work?
  4. laundry list construction

Laundry list:

  1. sicking: get XUL story in better shape, get somewhere with vector graphics.
    • brendan: beware w3c compound doc whim-wham, consider xul2 as consolidated namespace, keep eye on "rich client app" platform competitors. also, footprint, perf, web compatibility, etc.
  2. wyciwyg caching for javascript:
  3. blows away state
  4. blazingly fast "Back" issues
    • can't just treat it like tab switching if onunload/onbeforeunload are missing, because of timers, blur handlers
  5. brendan, need help: E4X <-> DOM
  6. sicking: fix IndexOf quadratic growth
    • sicking: will filling only in IndexOf pay off (don't want to fill in ChildAt)?
    • bz: yes, for sibling following use-case
    • jst: get something in, instrument cache hits/misses
    • bz: fill for all kids (if above a threshold) on first IndexOf, keep "search rotor" to start from
  7. bz: extensibility story with XBL and XTF
    • security story for these extension mechanisms [1]
    • brendan: jst's patch to split content vs. chrome xpconnect scopes
    • scripting language neutrality
    • XTF API may be kept, but need common insertion point magic (see also [2])
    • bz: when is binding attached, detached -- poorly spec'ed
    • dbaron: avoiding CSS when expressing bindings will help that
    • bz: trying to attach before node is in doc breaks chrome
    • brendan: keep default for compat, convenience
    • bz: cloning XUL elements is exception: [ cloneNode attaches before node is in doc]
    • migration to XBL2 will help us clean up, but compatibility is king for
    • now we need to evaluate sXBL and XBL2 spec drafts
    • bryner is gonna implement the sXBL/XBL2 extensions for binding attachment etc.
    • bryner has a [ native-delegate interface for doing XBL impl. in C++ rather than JS]
    • bz: base tag and extends issue: namespace/tag assumes XUL common content data structure, doesn't work well with HTML, etc.
    • bryner: should we really keep XTF if XBL2 fixes everything?  probably not, but are there things XTF can do that XBL2 can't?
    • bz: class attribute in HTML and XForms counterexample: nsIStyledContent has methods to query these, but it's not scriptable. But native-delegate goodness should address this
    • bryner: another issue: binding to a namespaced attribute instead of an element
    • bz: can't remove bindings because it breaks QI identity/round-tripping; attribute bindings make this even more fun
    • bryner: XTF uses wrappers, maybe we could use those to handle removal; upon removal, the wrapper keeps on QI'ing to the missing interface, but its methods give back errors; could have perf probs though
    • bz: maybe distinguish removable bindings by saying they can't add interfaces?
    • bz: moving nodes from one doc to another issue: ownerDoc changes, what should happen?
    • brendan: we should ask Hixie
    • jst: if binding was attached by CSS, it should go away when node moves to other doc, else not necessarily
    • bz: need a new bug filed on this (update: filed
  8. dbaron: it's hard not to leak with our toolkit
    • brendan: maybe the ephemerality of XPConnect wrappers is the underlying bug?
    • bz: IE allows "expando" properties on DOM objects to persist
    • dbaron: can find strong component root by walking up parent chain
    • bz: but not for anonymous content
    • dbaron: script-reachable a.c. or not?
    • bz: not yet, but maybe
    • dbaron: sXBL and XBL2 fix this
  9. bz: native anonymous content:
    • breaks some bindings, not scriptable
    • what's the ordering w.r.t. regular anonymous content
    • bz: I need a more complete list, and do we need a tracking bug?
  10. better security model for XUL and XBL, broadly construed
    • brendan: work at higher level (data tainting?) with Coverity et al.
    • see Andrew Meyer's JIF?
  11. bz: display:none shouldn't tear down iframe content
    • so we need to move docshell ownership into XBL
    • sicking: or rewrite in C++
    • brendan: don't rewrite in C++ if there's a better security model that's language-neutral and within our reach
    • dbaron: could help dynamic theme switching if we change horses, approaches
    • two issues, really: XUL and HTML; HTML iframe still loses content when removed from doc
  12. jst: plugins should be owned by content nodes, not frames
  13. sicking: 4% Tp win if we improve the mutation event implementation; more to do with mutation events, for code cleanup as well as perf.
  14. brendan: are there high-level design changes to improve perf, not seen by profilers?
    • jst: batching of HTML content notifications is a mess, could be wins
    • bz: refactor to share with XML sink? initially just making XML increment
    • clean up event loop scheduling hacks
    • dbaron: content sink is batching stuff up, parser is breaking things up; if content sink is "taking too long" -> conflict
    • brendan: timers (bz: resolution bug due to condvar notify impl) come up
    • sicking: we're reflowing while loading too much, maybe to make offsetTop etc. valid? KTHML better?
    • bz: reflows are flushed by offsetTop getter
    • paint suppression is yet another hack to consider in global sense
  15. bz: document object setup and ownership (content viewer, docshell, etc.) are hard to diagram
    • brendan: draw "anatomical sections" or partial overlays
    • dbaron, everyone: too many objects, period
    • bz: we have two separate ways to own docshells: embeddings vs. non-embedding XUL; we should unify toward embedding APIs (nsIWebBrowser)
    • jst: eliminate internal methods that duplicate embedding API
  16. bz: should we post wiki references to the m.dom etc. newsgroups?  group: Yes
  17. jst: right before Firefox 1.0, we were fighting synthetic event bugs that got handled by chrome handlers; we could ignore those that aren't trusted events.
    • this breaks if we synthesize events that should be trusted but are not marked "trusted", because some C++ uses the untrusted DOM event APIs.
    • Need a use-case.
  18. bz: event dispatch issues: two different methods on pres-shell to dispatch, one to content, one to content and to frames.
    • Latter used from widget and view manager event sources, but content events could have coordinates too.
    • This means you can't change the selection from a DOM event, because it doesn't dispatch to frames.
    • The method that does dispatch to frames fails to dispatch at all (to content) if there are no frames.
  19. bryner, bz: dangling pointer to on-stack nsEvent bug
    • bryner, bz, hyatt: let's get rid of nsEvent stack allocation and all, and just move logic into DOM event classes.
    • bryner: some events have opaque pointers to native data not valid after unwinding; need a method to null them out before unwinding
    • sicking, bryner: [ centralize the DOM event logic nested under HandleDOMEvent]. Probably need pre-capture and other observation points
    • bz: need some interface other than nsIDOMEvent, so let's have a deCOMtaminated nsIPrivateDOMEvent (we have one already, jst said).  Always use the private one internally, QI for external consumption.
  20. Wiki URL:
  21. Splitting the window object into inner and outer objects: Gecko:SplitWindow