Gecko:Content Team Minutes: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
test<b>ing</b>
<!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>&nbsp;how should we track our work? wiki.mozilla.org</li>
  <li>&nbsp;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.&nbsp; 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 &lt;-&gt; 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?&nbsp;
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.&nbsp;
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.&nbsp; 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" -&gt; 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?&nbsp; 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?&nbsp;
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.&nbsp; 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).&nbsp;
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:

  1. who else should be included? bryner, peterv, mrbkap
  2.  how should we track our work? wiki.mozilla.org
  3.  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: (<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>)
  3. 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>)
  4. 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
  5. 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>)
  6. 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
  7. 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]
  8. 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
  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 (<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.
  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
    • 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
  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: <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>