Gecko:Content Team Minutes: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> | |||
<html> | |||
<head> | |||
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type"> | |||
<title></title> | |||
</head> | |||
<body bgcolor="#ffffff" text="#000000"> | |||
Last week's actions:<br> | |||
<ol> | |||
<li>who else should be included? bryner, peterv, mrbkap</li> | |||
<li> how should we track our work? wiki.mozilla.org</li> | |||
<li> laundry list construction<br> | |||
</li> | |||
</ol> | |||
Laundry list:<br> | |||
<ol> | |||
<li>sicking: get XUL story in better shape, get somewhere with vector | |||
graphics.</li> | |||
<ul> | |||
<li>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.</li> | |||
</ul> | |||
<li>wyciwyg caching for javascript: | |||
(<a class="moz-txt-link-freetext" href="https://bugzilla.mozilla.org/show_bug.cgi?id=206531">https://bugzilla.mozilla.org/show_bug.cgi?id=206531</a>)<br> | |||
</li> | |||
<li>document.open/write-after-close blows away state | |||
(<a class="moz-txt-link-freetext" href="https://bugzilla.mozilla.org/show_bug.cgi?id=114461">https://bugzilla.mozilla.org/show_bug.cgi?id=114461</a>)<br> | |||
</li> | |||
<li>blazingly fast "Back" issues | |||
(<a class="moz-txt-link-freetext" href="https://bugzilla.mozilla.org/show_bug.cgi?id=274784">https://bugzilla.mozilla.org/show_bug.cgi?id=274784</a>)<br> | |||
</li> | |||
<ul> | |||
<li>can't just treat it like tab switching if | |||
onunload/onbeforeunload</li> | |||
<li>are missing, because of timers, blur handlers</li> | |||
</ul> | |||
<li>brendan, need help: E4X <-> DOM | |||
(<a class="moz-txt-link-freetext" | |||
href="https://bugzilla.mozilla.org/show_bug.cgi?id=270553">https://bugzilla.mozilla.org/show_bug.cgi?id=270553</a>)</li> | |||
<li>sicking: fix IndexOf quadratic growth | |||
(<a class="moz-txt-link-freetext" | |||
href="https://bugzilla.mozilla.org/show_bug.cgi?id=240884">https://bugzilla.mozilla.org/show_bug.cgi?id=240884</a>)</li> | |||
<ul> | |||
<li>sicking: will filling only in IndexOf pay off (don't want to | |||
fill in ChildAt)?</li> | |||
<li>bz: yes, for sibling following use-case</li> | |||
<li>jst: get something in, instrument cache hits/misses<br> | |||
</li> | |||
<li>bz: fill for all kids (if above a threshold) on first IndexOf, | |||
keep "search rotor" to start from<br> | |||
</li> | |||
</ul> | |||
<li>bz: extensibility story with XBL and XTF</li> | |||
<ul> | |||
<li>security story for these extension mechanisms</li> | |||
<li>brendan: jst's patch to split content vs. chrome xpconnect | |||
scopes</li> | |||
<li>scripting language neutrality</li> | |||
<li>XTF API may be kept, but need common insertion point magic</li> | |||
<li>bz: when is binding attached, detached -- poorly spec'ed</li> | |||
<li>dbaron: avoiding CSS when expressing bindings will help that</li> | |||
<li>bz: trying to attach before node is in doc breaks chrome</li> | |||
<li>brendan: keep default for compat, convenience</li> | |||
<li>bz: cloning XUL elements is exception: cloneNode attaches | |||
before node is in doc</li> | |||
<li>migration to XBL2 will help us clean up, but compatibility is | |||
king for</li> | |||
<li>now we need to evaluate <a href="http://www.w3.org/TR/sXBL/">sXBL</a> | |||
and <a href="http://www.hixie.ch/specs/xbl/XBL2.html">XBL2</a> spec | |||
drafts</li> | |||
<li>bryner is gonna implement the sXBL/XBL2 extensions for binding | |||
attachment etc.</li> | |||
<li>bryner has a native-delegate interface for doing XBL impl. in | |||
C++ rather than JS</li> | |||
<li>bz: base tag and extends issue: namespace/tag assumes XUL | |||
common content data structure, doesn't work well with HTML, etc.</li> | |||
<li>bryner: should we really keep XTF if XBL2 fixes everything? | |||
probably not, but are there things <a | |||
href="http://www.croczilla.com/xtf">XTF</a> can do that <a | |||
href="http://www.hixie.ch/specs/xbl/XBL2.html">XBL2</a> can't?</li> | |||
<li>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</li> | |||
<li>bryner: another issue: binding to a namespaced attribute | |||
instead of an element</li> | |||
<li>bz: can't remove bindings because it breaks QI | |||
identity/round-tripping; attribute bindings make this even more fun</li> | |||
<li>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</li> | |||
<li>bz: maybe distinguish removable bindings by saying they can't | |||
add interfaces?</li> | |||
<li>bz: moving nodes from one doc to another issue: ownerDoc | |||
changes, what should happen?</li> | |||
<li>brendan: we should ask Hixie</li> | |||
<li>jst: if binding was attached by CSS, it should go away when | |||
node moves to other doc, else not necessarily</li> | |||
<li>bz: need a new bug filed on this <b>[file it]</b><br> | |||
</li> | |||
</ul> | |||
<li>dbaron: it's hard not to leak with our toolkit (see | |||
<a class="moz-txt-link-freetext" | |||
href="https://bugzilla.mozilla.org/show_bug.cgi?id=283129">https://bugzilla.mozilla.org/show_bug.cgi?id=283129</a>)</li> | |||
<ul> | |||
<li>brendan: maybe the ephemerality of XPConnect wrappers is the | |||
underlying bug?</li> | |||
<li>bz: IE allows "expando" properties on DOM objects to persist</li> | |||
<li>dbaron: can find strong component root by walking up parent | |||
chain</li> | |||
<li>bz: but not for anonymous content</li> | |||
<li>dbaron: script-reachable a.c. or not?</li> | |||
<li>bz: not yet, but maybe</li> | |||
<li>dbaron: sXBL and XBL2 fix this</li> | |||
</ul> | |||
<li>bz: native anonymous content:</li> | |||
<ul> | |||
<li>breaks some bindings, not scriptable</li> | |||
<li>what's the ordering w.r.t. regular anonymous content</li> | |||
<li>bz: I need a more complete list, and do we need a tracking bug?<br> | |||
</li> | |||
</ul> | |||
<li>better security model for XUL and XBL, broadly construed</li> | |||
<ul> | |||
<li>brendan: work at higher level (data tainting?) with Coverity et | |||
al.</li> | |||
<li>see Andrew Meyer's JIF?</li> | |||
</ul> | |||
<li>bz: display:none shouldn't tear down iframe content</li> | |||
<ul> | |||
<li>so we need to move docshell ownership into XBL</li> | |||
<li>sicking: or rewrite in C++</li> | |||
<li>brendan: don't rewrite in C++ if there's a better security | |||
model | |||
that's language-neutral and within our reach</li> | |||
<li>dbaron: could help dynamic theme switching if we change horses, | |||
approaches</li> | |||
<li>two issues, really: XUL and HTML. HTML iframe still loses | |||
content when removed from doc<br> | |||
</li> | |||
</ul> | |||
<li>jst: plugins should be owned by content nodes, not frames</li> | |||
<li>sicking: 4% Tp win if we improve the mutation event | |||
implementation (<a class="moz-txt-link-freetext" | |||
href="https://bugzilla.mozilla.org/show_bug.cgi?id=231676">https://bugzilla.mozilla.org/show_bug.cgi?id=231676</a>); | |||
more to do with mutation events, for code cleanup as well as perf.</li> | |||
<li>brendan: are there high-level design changes to improve perf, | |||
not seen by profilers?</li> | |||
<ul> | |||
<li>jst: batching of HTML content notifications is a mess, could be | |||
wins</li> | |||
<li>bz: refactor to share with XML sink? initially just making XML</li> | |||
<li>incremental clean up event loop scheduling hacks</li> | |||
<li>dbaron: content sink is batching stuff up, parser is breaking | |||
things up; if content sink is "taking too long" -> conflict</li> | |||
<li>brendan: timers (bz: resolution bug due to condvar notify impl) | |||
come up</li> | |||
<li>sicking: we're reflowing while loading too much, maybe to make | |||
offsetTop etc. valid? KTHML better?</li> | |||
<li>bz: reflows are flushed by offsetTop getter</li> | |||
<li>paint suppression is yet another hack to consider in global | |||
sense</li> | |||
</ul> | |||
<li>bz: document object setup and ownership (content viewer, | |||
docshell, etc.) | |||
are hard to diagram</li> | |||
<ul> | |||
<li>brendan: draw "anatomical sections" or partial overlays</li> | |||
<li>dbaron, everyone: too many objects, period</li> | |||
<li>bz: we have two separate ways to own docshells: embeddings vs. | |||
non-embedding XUL; we should unify toward embedding APIs (nsIWebBrowser)</li> | |||
<li>jst: eliminate internal methods that duplicate embedding API<br> | |||
</li> | |||
</ul> | |||
<li>bz: should we post wiki references to the m.dom etc. newsgroups? | |||
group: Yes</li> | |||
<li>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.</li> | |||
<ul> | |||
<li>this breaks if we synthesize events that should be trusted but | |||
are not marked "trusted", because some C++ uses the untrusted DOM event | |||
APIs.</li> | |||
<li>Need a use-case.</li> | |||
</ul> | |||
<li>bz: event dispatch issues: two different methods on pres-shell to | |||
dispatch, one to content, one to content and to frames.</li> | |||
<ul> | |||
<li>Latter used from widget and view manager event sources, but | |||
content events could have coordinates too.</li> | |||
</ul> | |||
<ul> | |||
<li>This means you can't change the selection from a DOM event, | |||
because it doesn't dispatch to frames.</li> | |||
<li>The method that does dispatch to frames fails to dispatch at | |||
all (to content) if there are no frames.</li> | |||
</ul> | |||
<li>bryner, bz: dangling pointer to on-stack nsEvent bug</li> | |||
<ul> | |||
<li>bryner, bz, hyatt: let's get rid of nsEvent stack allocation | |||
and all, and just move logic into DOM event classes.<br> | |||
</li> | |||
<li>bryner: some events have opaque pointers to native data not | |||
valid after unwinding; need a method to null them out before unwinding</li> | |||
<li>sicking, bryner: centralize the DOM event logic nested under | |||
HandleDOMEvent. Probably need pre-capture and other observation points</li> | |||
<li>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.<br> | |||
</li> | |||
</ul> | |||
<li>Wiki URL: <a class="moz-txt-link-freetext" href="http://wiki.mozilla.org/wiki/Gecko:Content_Team_Minutes">http://wiki.mozilla.org/wiki/Gecko:Content_Team_Minutes</a></li> | |||
</ol> | |||
/be<br> | |||
<br> | |||
</body> | |||
</html> |
Revision as of 01:07, 4 March 2005
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type"> <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Last week's actions:
- who else should be included? bryner, peterv, mrbkap
- how should we track our work? wiki.mozilla.org
- laundry list construction
Laundry list:
- 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.
- wyciwyg caching for javascript:
(<a class="moz-txt-link-freetext" href="https://bugzilla.mozilla.org/show_bug.cgi?id=206531">https://bugzilla.mozilla.org/show_bug.cgi?id=206531</a>)
- document.open/write-after-close blows away state
(<a class="moz-txt-link-freetext" href="https://bugzilla.mozilla.org/show_bug.cgi?id=114461">https://bugzilla.mozilla.org/show_bug.cgi?id=114461</a>)
- blazingly fast "Back" issues
(<a class="moz-txt-link-freetext" href="https://bugzilla.mozilla.org/show_bug.cgi?id=274784">https://bugzilla.mozilla.org/show_bug.cgi?id=274784</a>)
- can't just treat it like tab switching if onunload/onbeforeunload
- are missing, because of timers, blur handlers
- brendan, need help: E4X <-> DOM (<a class="moz-txt-link-freetext" href="https://bugzilla.mozilla.org/show_bug.cgi?id=270553">https://bugzilla.mozilla.org/show_bug.cgi?id=270553</a>)
- sicking: fix IndexOf quadratic growth (<a class="moz-txt-link-freetext" href="https://bugzilla.mozilla.org/show_bug.cgi?id=240884">https://bugzilla.mozilla.org/show_bug.cgi?id=240884</a>)
- 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
- bz: extensibility story with XBL and XTF
- security story for these extension mechanisms
- 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
- 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 <a href="http://www.w3.org/TR/sXBL/">sXBL</a> and <a href="http://www.hixie.ch/specs/xbl/XBL2.html">XBL2</a> 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 <a href="http://www.croczilla.com/xtf">XTF</a> can do that <a href="http://www.hixie.ch/specs/xbl/XBL2.html">XBL2</a> 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 [file it]
- dbaron: it's hard not to leak with our toolkit (see <a class="moz-txt-link-freetext" href="https://bugzilla.mozilla.org/show_bug.cgi?id=283129">https://bugzilla.mozilla.org/show_bug.cgi?id=283129</a>)
- 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
- 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?
- 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?
- 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
- jst: plugins should be owned by content nodes, not frames
- sicking: 4% Tp win if we improve the mutation event implementation (<a class="moz-txt-link-freetext" href="https://bugzilla.mozilla.org/show_bug.cgi?id=231676">https://bugzilla.mozilla.org/show_bug.cgi?id=231676</a>); more to do with mutation events, for code cleanup as well as perf.
- 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
- incremental 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
- 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
- bz: should we post wiki references to the m.dom etc. newsgroups? group: Yes
- 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.
- 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.
- 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.
- Wiki URL: <a class="moz-txt-link-freetext" href="http://wiki.mozilla.org/wiki/Gecko:Content_Team_Minutes">http://wiki.mozilla.org/wiki/Gecko:Content_Team_Minutes</a>
/be
</body>
</html>