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
L. David Baron
f6824a9fa5
Replace space manager with a more limited float manager. (Bug 191448) r+sr=roc
...
--HG--
rename : layout/generic/nsSpaceManager.cpp => layout/generic/nsFloatManager.cpp
rename : layout/generic/nsSpaceManager.h => layout/generic/nsFloatManager.h
2009-01-04 19:39:54 -05:00
Benjamin Smedberg
ae14b3d6aa
Relanding bug 461410 - nsILineIterator is never used outside of layout - set nsresults to replicate the existing code more correctly, which fixes the mochitest failures, r+sr=roc with nits noted by Mats Palmgren
2008-10-30 12:17:59 -07:00
Benjamin Smedberg
292d44b1a8
Backed out changeset d4c9a0776667 (deCOM nsILineEnumerator) due to regression from it or bug 461212
2008-10-28 02:49:14 -04:00
Benjamin Smedberg
87c2e7ef23
Bug 461410 - nsILineIterator is never used outside of layout, and doesn't need to be refcounted: the callers can just destroy it when they're done with it. We can't do this with a virtual destructor, however, because nsTableRowGroupFrame implements the interface directly, while nsLineIterator is a separately-allocated class. So clients are expected to call DisposeLineIterator when they're done with it.
...
Instead of accessing nsILineIterator using QueryInterface, we add a nsIFrame::GetLineIterator API, which is cleaner and more efficient all at the same time!
r+sr=roc
2008-10-28 00:47:19 -04:00
roc+@cs.cmu.edu
5338360abe
Bug 411870. nsBidiPresUtils needs to track the current line across block continuation boundaries. r=smontagu
2008-01-29 15:39:39 -08:00
roc+@cs.cmu.edu
72c72d1d33
Bug 411870 backout again
2008-01-28 11:10:26 -08:00
roc+@cs.cmu.edu
ef12785f4c
Bug 411870. Bidi resolution needs to scan through block continuations when tracking the current line for frames. r=smontagu
2008-01-28 10:16:22 -08:00
roc+@cs.cmu.edu
cc8a28fdd6
backing out 411870
2008-01-27 22:28:31 -08:00
roc+@cs.cmu.edu
fbf20e6e5d
Bug 411870. Make bidi resolution track lines across block continuation boundaries. r=smontagu
2008-01-27 21:07:14 -08:00
mats.palmgren@bredband.net
a2e1cce21c
[DEBUG-only] Print a warning if we find a null float in the float cache. b=387651 r+sr=roc
2007-07-22 06:37:36 -07:00
mrbkap@gmail.com
fdc82745ab
Fix printf format-specifier and args mismatch to prevent potential DEBUG-only crashes. bug 388358, r+sr=roc
2007-07-16 15:26:53 -07:00
jwalden@mit.edu
6d7584839a
Bug 348748 - Replace all instances of NS_STATIC_CAST and friends with C++ casts (and simultaneously bitrot nearly every patch in existence). r=bsmedberg on the script that did this. Tune in next time for Macro Wars: Episode II: Attack on the LL_* Macros.
2007-07-08 00:08:04 -07:00
roc+@cs.cmu.edu
5fe6149b7e
Bug 383551. Clean up IsInlineFrame, nsStyleDisplay::IsBlockLevel and related methods. r+sr=dbaron
2007-06-26 19:31:35 -07:00
sharparrow1@yahoo.com
2c2399e327
Bug 381385: get rid of unneeded members of nsFloatCache (saves about 50 bytes footprint per float). r+sr=roc.
2007-06-16 13:27:46 -07:00
bzbarsky@mit.edu
eeaa1a101b
Rename nsIFrame::GetPresContext to nsIFrame::PresContext. Bug 376042, patch byTaras Glek <tglek@mozilla.com>, rs=roc.
2007-03-30 14:11:41 -07: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
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
mats.palmgren%bredband.net
ed6210be3f
Leave the placeholder's pointer to the out-of-flow intact because the float cache depends on it later on. b=348688 r=bzbarsky sr=roc
2006-08-17 13:15:26 +00:00
uriber%gmail.com
8c0e3dd5b7
Handle returning nulls from CheckLineOrder correctly. bug=345616 r=smotagu sr=roc
2006-08-04 05:40:57 +00:00
gavin%gavinsharp.com
c19fb04fdf
Bug 342479: fix compiler warning @ nsFloatCacheList::RemoveAndReturnPrev in nsLineBox.cpp, patch by Ryan VanderMeulen <ryanvm@gmail.com>, r+sr=roc
2006-07-24 18:57:42 +00:00
cvshook%sicking.cc
3a9a287253
Bug 344050: Kill nsITextContent and move the methods to nsIContent. r/sr=jst
2006-07-19 04:36:36 +00:00
roc+%cs.cmu.edu
672343880e
Bug 342322. It's OK for mNext to be non-null when we remove an element. r+sr=dbaron
2006-07-13 08:15:31 +00:00
uriber%gmail.com
6f21109f82
Always use the visual iterator when moving visually in a bidi page, even if the current line or adjacent lines are LTR. bug=309432 r=smontagu sr=roc
2006-07-12 11:22:18 +00:00
roc+%cs.cmu.edu
a42c58298b
relanding fix for bug 317278 :-(
2006-06-29 01:19:48 +00:00
roc+%cs.cmu.edu
1621ac24bd
Bug 237085. Move string subdivision code to gfx so we can efficiently make it metrics-dependent. r=smontagu,sr=rbs
2006-06-26 22:18:23 +00:00
roc+%cs.cmu.edu
ab87d3edb5
Bug 317278. Reland patch that reflows lines again if we detect some already-placed floats need to move to the next line. This time, with changes to nsSpaceManager's PushState/PopState infrastructure so that dynamic allocations are never required; the saved state is always stack-allocated by callers. r+sr=dbaron
2006-06-19 23:06:59 +00:00
roc+%cs.cmu.edu
ed0bc93ff0
Backing out patch for 317278 due to Tp regression
2006-06-19 01:29:07 +00:00
roc+%cs.cmu.edu
cc52ece1a1
Bug 317278. In some cases we push float placeholders from one line to the next after we have already placed their floats on the line. In such situations, reset the space manager and force the line to reflow again so those floats don't get placed. r+sr=dbaron
2006-06-19 00:02:49 +00:00
uriber%gmail.com
6e1f1e3dfc
Allow searching a line for a frame starting from a given point, to improve performance of forward-moving searches. Used in bidi resolution. bug=339935, r+sr=roc
2006-06-08 08:41:51 +00:00
mats.palmgren%bredband.net
678511471c
Bustage fix (bug 337883)
2006-05-25 01:48:00 +00:00
mats.palmgren%bredband.net
a5a64a9fb9
Clear the float cache from placeholders that are descendants of the frame we remove. b=337883 r+sr=roc
2006-05-25 01:30:34 +00:00
bzbarsky%mit.edu
44d201a532
Don't mess with empty float cache lists. Bug 334105, r+sr+branch181=dbaron
2006-04-17 01:47:11 +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
04b8c33eda
Remove uses of MOZ_DECL_CTOR_COUNTER, which is always defined to nothing. b=332745 rs=roc,bzbarsky
2006-04-05 00:00:44 +00:00
dbaron%dbaron.org
0e88f73bc6
Single line comments to describe files (helpful in LXR)
2006-03-29 18:29:03 +00:00
uriber%gmail.com
a52c79e7ad
Bug 330881: Crash when double-clicking in empty area inside isindex with position:absolute;direction:rtl;. r+sr=roc
2006-03-20 09:20:49 +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
uriber%gmail.com
1003ca6dd4
Do away with geometry in nsFrameList::GetPrev[Next]VisualFor() and nsLineIterator::CheckLineOrder(). Instead use new helper methods in nsBidiPresUtils for determining visual order of the top level of frames in a line. bug=303884 r=smontagu sr=roc
2006-03-12 09:49:48 +00:00
roc+%cs.cmu.edu
f132edee94
Bug 256311. Improve block reflow performance in the presence of many empty lines, by being more aggressive about caching block and line emptiness state, and by stashing a reference to a line that we know has nothing but empty lines above it. Relanding because I accidentally backed it out. r+sr=dbaron
2006-02-27 04:15:05 +00:00
roc+%cs.cmu.edu
bde356f1f5
Backing out changes for bug 326944.
2006-02-27 03:22:03 +00:00
roc+%cs.cmu.edu
e344f390f8
Bug 256311. Improve block reflow performance in the presence of many empty lines, by being more aggressive about caching block and line emptiness state, and by stashing a reference to a line that we know has nothing but empty lines above it. r+sr=dbaron
2006-02-27 02:51:57 +00:00
cbiesinger%web.de
c2d981f764
bug 183156 remove *UCS2* functions, replacing them with *UTF16* ones
...
r+sr=darin
2006-02-03 14:18:39 +00:00
smontagu%smontagu.org
41432ddbee
Caret skips blank line using down-arrow key in preformatted text (e.g. View Source). Bug 298690, patch by Uri Bernstein <uriber@gmail.com>, r+sr=roc
2005-10-30 13:05:45 +00:00
bzbarsky%mit.edu
04153159a6
Fix some nsFloatCache leaks. Bug 302438, r+sr=dbaron
2005-10-21 22:23:28 +00:00
roc+%cs.cmu.edu
f246fa2bbd
Bug 280987. Remove aPresContext from nsIFrameDebug::List. r+sr=roc, patch by Vidar Braut Harr.
2005-09-06 21:34:50 +00:00
timeless%mozdev.org
b4d01d069d
Bug 277553 clicking on Textarea with a RTL direction doesnt work
...
patch by uriber@gmail.com r=bz sr=bz a=bsmedberg
2005-08-02 21:55:55 +00:00