Commit Graph

10 Commits

Author SHA1 Message Date
Benjamin Smedberg
24e7cb1f78 Bug 396185 - Make nsIFrame derivatives and helper abstract classes use a different dynamic-cast system than nsISupports:
* we know all types frames may be cast to at compile time, so instead of extensible GUID IIDs, use a big enum (see nsQueryFrame::FrameIID)
* eliminate all vestiges of refcounting, since frames aren't refcounted

Some frames (SVG frames in particular) still implement nsISupports-derived interfaces, for example nsISVGValue. There is a FrameIID for nsISVGValue that lets you go from a frame to the XPCOM interface, but you can't query back.

r+sr=roc

nsITextControlFrame didn't have an IID the first time around, but this wasn't a compile error because nsITextControlFrame::kFrameIID inherited from nsIFormControlFrame::kFrameIID. I've added a static analysis pass to verify the correct behavior, since I can't figure out a way to make the compiler do it.

--HG--
extra : rebase_source : 4894a2ca0278e2ab92f27459db77165f8348cf41
2009-01-12 14:20:59 -05:00
Benjamin Smedberg
50621e4f9f Backed out changeset 4c4df6ed1b41 - Bug 396185 - Make nsIFrame not inherit from nsISupports due to mochitest failures... these appear to be crashes in nsGenericHTMLElement::GetEditorInternal. 2009-01-09 11:35:24 -05:00
Benjamin Smedberg
d0b948876f Bug 396185 - Make nsIFrame derivatives and helper abstract classes use a different dynamic-cast system than nsISupports:
* we know all types frames may be cast to at compile time, so instead of extensible GUID IIDs, use a big enum (see nsQueryFrame::FrameIID)
* eliminate all vestiges of refcounting, since frames aren't refcounted

Some frames (SVG frames in particular) still implement nsISupports-derived interfaces, for example nsISVGValue. There is a FrameIID for nsISVGValue that lets you go from a frame to the XPCOM interface, but you can't query back.

r+sr=roc

This patch locally causes two REFTEST-UNEXPECTED-PASS for Bidi stuff. It's possible that I accidentally fixed a bug, but I'm not sure, so I'm going to wait for the tinderboxes to confirm my local results.
2008-11-05 14:25:30 -05:00
Joe Drew
a29562512b Bug 393936 - nsIRequest::cancel() must not notify anything sync. Make removal from the loadgroup async, and add another call cancelAndForgetObserver() that removes the listener immediately (since some callsites expect that). Note, however, that this new method shouldn't be used in any new code; it exists only to support code that relied on the broken behaviour prior to this checkin. r=bzbarsky sr=vlad 2008-12-19 17:35:50 -05:00
Robert Sayre
58f4455a2a Backout JOEDREW! patches for bug 89419 and bug 393936. Looks like they make mochitest leak. 2008-12-11 01:27:58 -08:00
Joe Drew
294499eab5 Bug 393936 - nsIRequest::cancel() must not notify anything sync. Make removal from the loadgroup async, and add another call cancelAndForgetObserver() that removes the listener immediately (since some callsites expect that). Note, however, that this new method shouldn't be used in any new code; it exists only to support code that relied on the broken behaviour prior to this checkin. r=bzbarsky sr=vlad 2008-12-10 16:25:34 -08:00
reed@reedloden.com
2676ba7d90 Bug 368554 - "[quirks] Image inside table inside table-cell with small width is wrapped" [p=chris@pearce.org.nz (Chris Pearce [cpearce]) r+sr=roc a=blocking1.9+] 2007-12-03 01:24:49 -08:00
peterv@propagandism.org
2fb0fc711a Fix for bug 386496 (Clicking on link in designMode document does follow that link now). r/sr=bz. 2007-07-11 06:05:05 -07:00
dbaron@dbaron.org
9e2fef4c30 Implement correct intrinsic width calculation (for container) for elements with specified height properties and an intrinsic ratio. b=364066 r+sr=bzbarsky 2007-06-12 11:27:09 -07:00
hg@mozilla.com
465265d0d4 Free the (distributed) Lizard! Automatic merge from CVS: Module mozilla: tag HG_REPO_INITIAL_IMPORT at 22 Mar 2007 10:30 PDT, 2007-03-22 10:30:00 -07:00