Commit Graph

411 Commits

Author SHA1 Message Date
Benjamin Smedberg
0f95227641 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.
2009-01-12 14:20:59 -05:00
Benjamin Smedberg
7a084ac404 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
991a16d8bc 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
Mats Palmgren
eaf9d0afc1 Fix the parent pointer for ::first-letter child frame next-in-flows. b=401042 r+sr=roc 2008-12-07 19:21:40 +01:00
Robert O'Callahan
d97b45fb8e Bug 243519. Rework root element frame construction and the CanvasFrame so that the CanvasFrame is an abs-pos container and the root element frame can be positioned. r=fantasai,sr=dbaron 2008-09-08 20:13:17 +12:00
Robert O'Callahan
26dac5de7f Backing out changesets 75919d3eb3d0 and 14ce7619e9c1 due to test failures 2008-09-07 00:35:20 +12:00
Robert O'Callahan
296840fa17 Bug 243519. Rework root element frame construction and the CanvasFrame so that the CanvasFrame is an abs-pos container and the root element frame can be positioned. r=fantasai,sr=dbaron 2008-09-06 21:35:05 +12:00
Andrew Smith
925ffa073b Implement css3 border-image property. (Bug 378217) r=vlad,dbaron,robarnold 2008-07-16 23:30:25 -07:00
L. David Baron
f51a50d4ed Backed out changeset 9b0b2391485c due to linker errors related to nsStyleStructInlines.h not being included enough. 2008-07-16 22:59:14 -07:00
Andrew Smith
97a13b7ef1 Implement css3 border-image property. (Bug 378217) r=vlad,dbaron,robarnold 2008-07-16 22:18:38 -07:00
351323faba Bug 409331. Instead of QIing to nsBlockFrame in various places, call an nsLayoutUtils method to do it. r+sr=roc 2008-07-14 10:10:23 +12:00
516d9d37b4 Bug 417014 Need blacklist system for underline offset adjusting of CJK fonts which have wrong underline offset r=roc+stuart, sr=roc, b1.9=stuart 2008-03-12 19:36:58 -07:00
1d87302e3a Fix the weird Get* API on nsStyleSides in favor of returning structs by value, to avoid further occurrences of bug 420069. b=420069 r+sr=roc a=beltzner 2008-03-05 16:05:26 -08:00
3142e26930 Bug 392785 overflowed underline sometimes is not repainted at scrolling r+sr=roc b1.9=dbaron 2008-02-16 07:31:27 -08:00
a975e6bc93 Remove unused height output from nsLineLayout::EndSpan. b=407086 r+sr=roc a=dsicore 2007-12-12 13:51:18 -08:00
6250167cb2 Remove some code that handles unconstrained widths (and fix nsFirstLetterFrame not to pass them). b=407086 r+sr=roc a=dsicore 2007-12-12 13:51:00 -08:00
de75a021a6 Bug 405577. Allow available width to go negative for inlines/text, so we can tell whether zero-width content fits or not. Also allow textframes to honour a forced break at the end of the text. r+sr=dbaron 2007-12-05 17:24:03 -08:00
6aa9b580c3 Backing out fix for bug 392785 as per roc + mconnor. 2007-12-04 15:32:08 -08:00
dfe9790c0b Bug 392785 overflowed underline sometimes is not repainted at scrolling r+sr=roc, b1.9=dbaron 2007-12-02 22:51:57 -08:00
b6efadf476 Bug 397518. Wrap inline non-MathML children of MathML frames in anonymous blocks. r+sr=bzbarsky 2007-10-12 01:30:54 -07:00
ee1682f02e fix use of DEBUG-only data member, bug=154892 r+sr+a=roc 2007-10-02 01:29:23 -07:00
9011ed7502 paginate absolutely-positioned elements, b=154892 r+sr=roc a=roc 2007-10-01 22:57:45 -07:00
409d7404ef Bug 392252 need new APIs for converting AppUnits to gfx usable pixels r=sharparrow1, sr+a=roc 2007-08-22 04:13:46 -07:00
836e798b0f Bug 365414 overflowed decoration lines are not erased/painted r+sr=roc 2007-08-14 09:39:54 -07:00
094b31fdd0 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
e3742c090c Bug 379349. Add support for 'overflow containers' --- special frame continuations that do not map any content of their own, but serve only as containers for laying out children that overflowed their parents' content height. patch by fantasai, r+sr=eli,roc 2007-07-25 21:03:29 -07:00
974eeb109c 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
bbf253a51e Bug 346405. Handle reparenting of empty float lists. r+sr=dbaron 2007-07-18 21:32:08 -07:00
98de634631 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
79eeaa32d0 Cleanup implementations of QueryInterface. b=385750 r+sr=dbaron r+sr=jst 2007-07-03 19:15:31 -07:00
ced9959fcd Remove now-unneeded checks for eStyleUnit_Null. b=379741 r+sr=bzbarsky 2007-05-10 23:02:31 -07:00
69b4ef9888 Remove special handling of empty continuations, which should no longer be needed. b=238473 Based on patch by Hideo Saito <saito@densan.co.jp>. r=dbaron sr=roc 2007-05-05 10:06:04 -07:00
db2b900e58 Make computed style handle eStyleUnit_Chars. Bug 371043, r+sr=dbaron 2007-05-04 23:09:50 -07:00
2aa4681377 Bug 368863. Reparent floats properly when placeholders move between inline continuations. r+sr=dbaron 2007-04-20 17:42:58 -07:00
bzbarsky@mit.edu
9a6faa8c9e Make sure to handle creation of a new continuation of the first-letter frame
even if we pulled the first-letter frame from our next-in-flow.  Bug 372553,
r+sr=roc.
2007-03-05 00:15:46 +00:00
dbaron@dbaron.org
a4cc40910e 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
49c82b0ca8 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
e80f1dba4e 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
a7fc5bf5b3 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
dbaron@dbaron.org
8648581bf7 Change the bulk of ascent (baseline) computation to happen on a virtual method on nsIFrame, and remove the redundant descent member from nsHTMLReflowMetrics, primarily to support having both first-line and last-line baselines. b=367332 r+sr=roc 2007-01-23 04:06:56 +00:00
roc+@cs.cmu.edu
41a5176429 Bug 333659. Relanding nsLineLayout API changes for new text code. r+sr=dbaron 2007-01-18 01:20:09 +00:00
roc+@cs.cmu.edu
f610a4faf0 Backout of nsLineLayout changes; trying to fix luna orange 2007-01-17 06:27:01 +00:00
roc+@cs.cmu.edu
8ec6bf1a3e Bug 333659. Relanding new nsLineLayout API to make in-first-line-frame and current-nsLineBox available; should not affect anything. r+sr=dbaron 2007-01-17 03:59:32 +00:00
roc+@cs.cmu.edu
9d3ff4b973 Backing out text landing. 2007-01-16 22:25:20 +00:00
roc+@cs.cmu.edu
8b03653c52 Bug 333659. Landing new text interfaces, new gfxPangoTextRun (enabled), new textframe code (disabled). r+sr=dbaron for the part-of-the-build layout parts,r=stuart for the part-of-the-build gfx parts 2007-01-16 20:51:52 +00:00
timeless@mozdev.org
f4ef17d178 Bug 355300 There should be only one nsGkAtoms creature
r=dbaron
2006-12-26 17:47:52 +00:00
uriber@gmail.com
2dc8ebb844 Pull InsertFrames, AppendFrames, and RemoveFrames up from nsInlineFrame to nsContainerFrame. bug=198928 r+sr=dbaron 2006-12-25 18:53:52 +00:00
roc+@cs.cmu.edu
be6215e748 Bug 363813. Always reset parent pointers when pulling an inline frame's overflow back into its main child list. r+sr=dbaron 2006-12-21 19:59:30 +00:00
dbaron@dbaron.org
d21cb374bd 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
roc+@cs.cmu.edu
d9807fd270 Bug 343445. Change inline reflow strategy to avoid looking ahead through words while measuring text. r+sr=dbaron 2006-10-19 01:47:47 +00:00