Benjamin Smedberg
3498a5f86e
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
73a6fab34b
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
802d1a10c7
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
dholbert@cs.stanford.edu
a22620ca41
Bug 408656: Make nsPositionedInlineFrame::NeedsView return true (to ensure that abs-positioned frames inside of it will get their views positioned) r+sr=bz a=blocking1.9
2008-01-04 18:11:20 -08:00
roc+@cs.cmu.edu
036806699a
Bug 397518. Wrap inline non-MathML children of MathML frames in anonymous blocks. r+sr=bzbarsky
2007-10-12 01:30:54 -07:00
tglek@mozilla.com
8cf3fb1c90
Clean up prbool misuse in layout. bug 398312, r+sr+a=dbaron
2007-10-09 17:00:05 -07:00
jwalden@mit.edu
bf1a450729
Bug 386801 - nsAbsoluteContainingBlock doesn't need to store a child list name; this shaves four bytes off nsViewportFrame, nsBlockFrame, and nsPositionedInlineFrame. r+sr+a=dbaron
2007-08-02 15:44:36 -07:00
asqueella@gmail.com
2604465594
fix bug 388709 - "ASSERTION: Please remove this from the document properly: '!IsInDoc()'" with :after, floating :first-letter
...
Store the generated content as a nsCOMArray<nsIContent>* property on frames to make its clean-up on frame destruction less fragile.
r+sr=roc
2007-07-23 16:31:11 -07:00
dbaron@dbaron.org
3cfbaf7cc5
Don't propagate line layout in reflow state when we're not in the line. b=320502 r+sr=roc
2007-05-17 23:04:04 -07:00
benjamin@smedbergs.us
baab01ada6
Bug 376636 - Building with gcc 4.3 and -pendatic fails due to extra semicolons, patch by Art Haas <ahaas@airmail.net>, rs=me
2007-04-23 07:21:53 -07:00
roc+@cs.cmu.edu
31b42ee9c8
Bug 368863. Reparent floats properly when placeholders move between inline continuations. r+sr=dbaron
2007-04-20 17:42:58 -07:00
dbaron%dbaron.org
9d7f938b99
Clean up IsFrameOfType methods to call their base class IsFrameOfType methods reliably. b=341326 r+sr=roc
2007-02-24 18:33:33 +00:00
asqueella%gmail.com
284a5ea424
bug 257868 - remove the nsIPresShell::SetAnonymousContentFor() API, make the frames store strong refs to the anonymous content instead. Decomtaminate nsIAnonymousContentCreator.
...
r+sr=roc
2007-02-18 17:34:09 +00:00
cvshook%sicking.cc
a39ff30284
Kill remainders of ns(XBL|HTML|XUL|Layout)Atoms. r/sr=jst b=368128
2007-01-30 00:06:41 +00:00
dbaron%dbaron.org
0e9e52586a
Combine the code that tests inlines for dependence on the containing block width in order to disable resize reflow optimizations, and add to that code things that shrink wrap (inline-block, inline-table, buttons, fieldsets). Also move the percentage-height tests out, and into InitResizeFlags. b=163504 r+sr=bzbarsky
2007-01-27 18:40:26 +00:00
uriber%gmail.com
eb9a23855e
Pull InsertFrames, AppendFrames, and RemoveFrames up from nsInlineFrame to nsContainerFrame. bug=198928 r+sr=dbaron
2006-12-25 18:53:52 +00:00
dbaron%dbaron.org
31f1898810
Bug 300030: Move intrinsic width computation out of nsIFrame::Reflow and into its own methods on nsIFrame. Replace reflow reasons, types, and commands with dirty bits/notifications. Thanks to bzbarsky for almost all of the HTML form controls (mozilla/layout/forms) changes, and many others for help testing and patching. For detailed commit logs, see REFLOW_YYYYMMDD_BRANCH, where YYYYMMDD is one of 20061031, 20060830, 20060603, 20060302, 20060119, 20051011, 20050804, 20050429, 20050315, 20050111, and 20041213.
2006-12-08 05:38:33 +00:00
uriber%gmail.com
38c1e056e9
Refactor nsIFrame::PeekOfset to use iteration instead of recursion, plus some more related refactoring. bug=300131 r+sr=roc
2006-09-11 20:43:01 +00:00
uriber%gmail.com
0fa608ce5e
Backing out bug 300131 until I figure out how to deal with the bustage.
2006-09-11 08:03:28 +00:00
uriber%gmail.com
95b377fc13
Refactor nsIFrame::PeekOfset to use iteration instead of recursion, and some related refactoring. bug=300131 r+sr=roc
2006-09-11 06:39:56 +00:00
uriber%gmail.com
e1041f44ef
Create bidi embedding only around inline containers (with a specified direction), not around inline replaced elements. bug=169139 r+sr=bzbarsky
2006-08-07 07:40:28 +00:00
uriber%gmail.com
ab53025882
Bug 328168: Horizontal paddings, borders and margins on multi-frame bidi inlines appear in the wrong places. Patch by Haamed Gheibi <gheibi@gmail.com>. r=roc+uriber, sr=roc.
2006-06-15 08:16:23 +00:00
roc+%cs.cmu.edu
a7f03736a9
Bug 328926. Remove aPresContext parameter from nsIFrame::Destroy, nsIFrame::SetInitialChildList and nsIFrame::RemovedAsPrimaryFrame. patch by Marc Liddell, r+sr=roc
2006-04-10 00:16:29 +00:00
dbaron%dbaron.org
0e88f73bc6
Single line comments to describe files (helpful in LXR)
2006-03-29 18:29:03 +00:00
roc+%cs.cmu.edu
0a10a79f62
Bug 330934. Set a nsIFrame's stylecontext in its constructor, to ensure that there's always one available for GetPresContext() to use even if Init hasn't been called. Patch by Marc Liddell, r+sr=roc
2006-03-26 21:30:36 +00:00
pavlov%pavlov.net
131e8794e2
backing out roc's patch for bug 328926 due to crash running tests on vc8 machines.
2006-03-15 06:43:36 +00:00
roc+%cs.cmu.edu
557b089a47
Bug 328926. Remove aPresContext parameter from Destroy and SetInitialChildList. patch by Marc Liddell, r+sr=roc
2006-03-15 03:14:02 +00:00
roc+%cs.cmu.edu
77bca74243
Bug 317375. Reorganize frame painting and mouse event targeting around frame display lists. Some review from dbaron, lots of testing help from Martijn, Julien and others
2006-01-26 02:29:17 +00:00
cvshook%sicking.cc
7db01c8d27
Bug 321294: Remove unused ReplaceFrame codepaths.
...
r/sr=roc
2006-01-10 22:58:37 +00:00
roc+%cs.cmu.edu
520b30a7f7
Bug 313817. DeCOMtaminate more NS_New*Frame functions. r+sr=roc, patch by Marc Liddell
2005-11-04 02:38:33 +00:00
bzbarsky%mit.edu
54d585f2af
Remove prescontext args for some nsIFrame methods
...
(Append/Insert/Remove/ReplaceFrames) and for some methods in table land. Patch
by Vidar Braut Haarr <bugmail@q1n.org>, r+sr=bzbarsky
2005-02-07 01:58:25 +00:00
roc+%cs.cmu.edu
b7dfbedd1f
Changing IsFrameEmpty to IsSelfEmpty as dbaron requested and I forgot to do before checking in.
2004-11-15 05:01:11 +00:00
roc+%cs.cmu.edu
fbb67978a5
Bug 261064. Compute static absolute positions more accurately. Also, ensure that static absolutely positioned frames are moved when their placeholders move. Also, ensure that absolutely positioned frames positioned relative to the left or bottom edge of their container move when the container size changes. r+sr=dbaron (rubberstamp)
2004-11-14 20:22:58 +00:00
bryner%brianryner.com
5c02a6978c
Change nsIPresContext to nsPresContext globally, follow-up to bug 253470. rs=roc
2004-07-31 23:15:21 +00:00
gerv%gerv.net
708b56cff4
Bug 236613: change to MPL/LGPL/GPL tri-license.
2004-04-18 14:30:37 +00:00
roc+%cs.cmu.edu
e7f165c614
Bug 190735. deCOMtaminate nsIFrame::FirstChild and nsIFrame::GetAdditionalChildListName. r+sr=bz
2004-01-09 14:20:53 +00:00
dbaron%dbaron.org
8856db0238
Clean up nsIFrame::IsEmpty signature and move towards making 'white-space' work on inlines. b=191699 r+sr=roc
2003-11-10 23:36:06 +00:00
uid502
d81619b4fa
Bug 190735. DeCOMtaminate nsIFrame::GetFrameType. r+sr=bzbarsky
2003-10-31 20:19:18 +00:00
sfraser%netscape.com
defd631ba0
Remove non-const kInlineFrameCID. r/sr=alecf. Bug 74803
2003-02-26 01:16:40 +00:00
dbaron%dbaron.org
6dd68f3c64
Remove nsISizeOfHandler and associated SizeOf methods. b=106792 r=bzbarsky sr=jst
2003-02-22 15:34:38 +00:00
karnaze%netscape.com
452b8a6153
bug 179683 - implement printing of fixed positioned elemements, clean up ViewportFrame. sr=roc, r=bzbarsky.
2003-01-20 18:04:34 +00:00
dbaron%fas.harvard.edu
34a1e37f7e
Correctly implement text-decoration in standards mode by drawing the underline on the element with the text-decoration property set. Refactor painting code a bit to avoid code duplication. Patch by Esben Mose Hansen <esben@oek.dk>, with paint refactoring and some other changes by dbaron. r=dbaron sr=bzbarsky b=1777
2002-12-11 04:00:18 +00:00
bzbarsky%mit.edu
92d1146ffc
Fix ReplaceChild() on positioned inlines to delegate to
...
nsAbsoluteContainingBlock.h. Bug 176915, r=dbaron, sr=rbs
2002-11-12 03:30:13 +00:00
aaronl%netscape.com
c8215a38ee
Bug 160793. Active Accessibility: support broken images. r=kyle, sr=hewitt
2002-08-10 07:59:44 +00:00
dbaron%fas.harvard.edu
e63a11c0e8
Split strict mode into almost-standards and full-standards mode, where the only quirk in almost standards mode is the quirky inline box model. Remove previous fix for bug 151620. Tweak mode detection to use almost-standards for XHTML Transitional, HTML 4.01 transitional with system ID, and for IBM system DOCTYPE. b=153032 r=karnaze, bzbarsky, harishd sr=waterson
2002-06-25 21:16:17 +00:00
waterson%netscape.com
e3554c37cc
Bug 129115. Change the reflow path from a list structure to a tree structure to amortize state recovery and damage propagation costs. Eliminate table timeout reflows. r=kin,karnaze,rods,rbs; sr=attinasi
2002-05-10 18:22:41 +00:00
bzbarsky%mit.edu
f2ee8260a0
Use NS_LITERAL_STRING instead of NS_ConvertASCIItoUCS2 where possible
...
(i.e. where the string is a literal). Bug 104159, r=jag, sr=alecf
2001-11-14 01:33:42 +00:00
dbaron%fas.harvard.edu
157c017816
Bug 86947:
...
Make the line list doubly linked and access it through a list class and iterators.
Stop recomputing margins on all of the children of each block in the reflow chain (which causes O(N^2) state recovery during incremental reflow). Instead, add a second dirty bit to the lines and walk backwards through the line list to recompute vertical margins only when either dirty bit is set and the previous line was not reflowed. Add nsIFrame::IsEmpty to identify frames through which margins collapse.
Fix O(N^2) propagation of float damage by maintaining a set of intervals damaged by floats (bug 61962) and be sure to damage the correct areas (bug 48138).
Introduce nsCollapsingMargin to do correct collapsing of combinations of positive and negative margins (bug 50142).
Clean up some odds and ends and fix another smaller O(N^2) problem in nsBlockFrame::AddFrames.
r=attinasi, rbs sr=waterson
2001-10-25 01:08:40 +00:00
gerv%gerv.net
4e12e44b2f
Relicensing Round 1, Take 2. Most C-like NPL files -> NPL/GPL/LGPL. Bug 98089.
2001-09-28 20:14:13 +00:00
rbs%maths.uq.edu.au
2b65370bf6
Shift frame-state bits in implementations to the 12 higher bits - bug 68411 r=karnaze sr=waterson
2001-02-23 12:42:12 +00:00