Commit Graph

388 Commits

Author SHA1 Message Date
Robert O'Callahan
46c791393d Bug 880854. Part 1: Make nsIFrame::DumpFrameTree virtual and take no parameter, to be easier to call from buggy debuggers like gdb. r=mats
--HG--
extra : rebase_source : 0986652eb1d9710ceeba8cda4ac3d1273532929d
2013-06-18 23:39:58 +12:00
Timothy Nikkel
6f4a1b5f7f Bug 880508. Remove defer invalidations code because we don't invalidate during painting anymore. r=matt.woodrow 2013-06-06 23:12:10 -05:00
Daniel Holbert
50afd752be Bug 842065: Remove no-longer-necessary method nsIFrame::StyleDataExternal(). r=dbaron 2013-05-25 00:21:53 +08:00
Jonathan Watt
d1f5d8d8d3 Bug 874854 - Stop calling SchedulePaint for SVG transform attribute changes. r=longsonr 2013-05-23 08:04:21 +01:00
Mats Palmgren
cd2a9144a4 Bug 866785 - Move repeated nsIFrame::List implementations code to a new method, ListGeneric, for re-use. Cleanup and improve the code a bit. r=roc
Specifically:
* move all the frame dump methods to nsIFrame. Especially nsFrame::ListTag
  was annoying, often requiring a cast to nsFrame*.
* print common values in the same order for all types of frames
* print fluid continuations as "next-in-flow=%p" and non-fluid as
  "next-continuation=%p" (as before)
* print the style-context more compactly, e.g.
  "[sc=0x7faa6b60e0a0] pst=:first-line" becomes
  "[sc=0x7faa6b60e0a0:first-line]"
* suppress printing visual/scroll-overflow rects when they are identical
  to mRect and do the same for nsLineBox::List where it was especially
  hard to see which lines actually had real overflow
* fix a bug that printed the child list name at the far right when the
  principal list was empty (making it hard to see)
* print the address of child lists (other than the principal list) to
  help debug frame list property bugs
* s/NS_IMETHODIMP/void/
2013-04-30 20:38:52 +02:00
Mats Palmgren
c538e42a6e Bug 485149 - Using box-shadow on a <fieldset> with <legend> does not follow box shape. r=roc 2013-04-17 22:16:14 +02:00
Joshua Cranmer
c763b1352e Bug 856108 - Port static analyses to clang, part 2e: use MOZ_STACK_CLASS in layout. r=mats 2013-04-11 22:20:45 -05:00
Robert O'Callahan
04e9887192 Bug 841192. Part 14: Convert all usage of nsDisplayClip(RoundedRect) to use DisplayListClipState/DisplayItemClip. r=mattwoodrow
This patch does several things. Sorry.

In BuildDisplayList implementations, instead of wrapping display items in nsDisplayClip, we
push clip state onto the nsDisplayListBuilder and give the display items an
explicit clip when they're created.

In FrameLayerBuilder, we use the explicit clips we find on display items instead of
computing our own.

We remove nsDisplayClip and everything that depends on it.

We remove ExplodeAnonymousChildLists. With nsDisplayClip gone, and
nsDisplayOptionEventGrabber removed in a previous patch, there are no
anonymous child lists.

nsDisplayItem::TryMerge implementations need to make sure they have the same
clip before being merged.

I ripped out the part of PruneDisplayListForExtraPage that adjusts clip rects.
As far as I can tell, it isn't actually necessary.

--HG--
extra : rebase_source : 6f3988b385d0ac54ab26fad10b12173884441f48
2013-03-04 22:56:02 +13:00
Cameron McCormack
30b5ba2337 Bug 856879 - Remove constructor arguments argument from style struct macros. r=dbaron 2013-04-02 12:45:48 +11:00
Boris Zbarsky
462f47d89e Bug 852428 part 2. Make nsIFrame::Init infallible. r=dholbert 2013-03-19 21:47:48 -04:00
Matt Woodrow
981f3ba59b Bug 844750 - Don't use per-display-item invalidation for table frames. r=roc 2013-03-08 15:18:45 +13:00
Timothy Nikkel
acb34484d5 Bug 846888. Part 1. Update the in popup frame state bits when we swap docshells. r=mattwoodrow 2013-03-04 13:49:39 -06:00
Mats Palmgren
54ae45a9ab Bug 838642 - Introduce nsFrameList::StartRemoveFrame/ContinueRemoveFrame that can be used in concert to remove a frame in O(1) time from a set of frame lists when its exact frame list is unknown. Use them to make nsContainerFrame::StealFrame O(1). r=bzbarsky 2013-02-28 00:05:44 +01:00
L. David Baron
f75e32c2f2 Bug 781360 patch 4: Remove the Get from nsStyleContext::GetStyleData and nsIFrame::GetStyleDataExternal, which never return null. r=dholbert 2013-02-16 13:51:03 -08:00
L. David Baron
5ef4421fa5 Bug 781360 patch 3: Rename {nsIFrame,nsStyleContext,nsComputedDOMStyle}::GetStyle* to Style*, since they can never return null. r=dholbert
Except for the changes in:
  layout/generic/nsIFrame.h (part)
  layout/style/nsComputedDOMStyle.h (all)
  layout/style/nsRuleNode.cpp (part)
  layout/style/nsStyleContext.cpp (part)
  layout/style/nsStyleContext.h (part)
(see patch 3b in the bug), this patch was written with the sed script:
s/\<GetStyle\(Font\|Color\|List\|Text\|Visibility\|Quotes\|UserInterface\|TableBorder\|SVG\|Background\|Position\|TextReset\|Display\|Content\|UIReset\|Table\|Margin\|Padding\|Border\|Outline\|XUL\|SVGReset\|Column\)\>/Style\1/g
2013-02-16 13:51:02 -08:00
L. David Baron
ed0e6eb8a7 Bug 781360 patch 2: Rename nsRuleNode::GetPresContext to PresContext, since it can never return null. r=dholbert 2013-02-16 13:04:54 -08:00
L. David Baron
8f3a364f1f Bug 781360 patch 1: Rename nsStyleContext::GetRuleNode to RuleNode, since it can never return null. r=dholbert
This makes it conform to our convention that getters returning pointers
that can never be null do not begin with "Get".

nsStyleContext's rule node is never null because we require a rule node
in order to construct a style context.
2013-02-16 13:04:53 -08:00
Daniel Holbert
35466de209 Bug 834107: Replace helper-function GetContainingBlockFor() with direct calls to nsIFrame::GetContainingBlock(), in nsComputedDOMStyle.cpp. r=dbaron 2013-02-16 10:34:34 -08:00
Robert O'Callahan
013943dc4f Bug 840902. Part 2: Remove nsresults from various display list methods. r=mattwoodrow
--HG--
extra : rebase_source : de498510bf8d85d9b0b2fab0137ef3be01c9adfa
2013-02-15 00:12:27 +13:00
L. David Baron
f3cff43ce7 Bug 841789, patch 3: Some removal of unneeded style context null-checks and comment cleanup. r=dholbert 2013-02-15 21:38:34 -08:00
L. David Baron
b387f0fbea Bug 841789, patch 1: Rename nsIFrame::GetStyleContext() to nsIFrame::StyleContext() since it can never return null. r=dholbert
This makes it conform to our convention that getters returning pointers
that can never be null do not begin with "Get".
2013-02-15 21:38:33 -08:00
Cameron McCormack
644d6627b1 Bug 655877 - Part 41b: Make SVG text selectable with the mouse. r=roc,jwatt 2013-02-11 17:22:18 +11:00
Mats Palmgren
2545d30642 Bug 606642 - Do not remove the [Excess]OverflowContainers properties before destroying its frames. Carefully check after destroying each frame that the property is still alive. r=roc 2013-02-11 03:28:50 +01:00
Jeff Walden
37fe466d6f Bug 835648 - Move typed enum support to a new header. r=Ms2ger 2013-01-28 16:33:17 -08:00
Ryan VanderMeulen
7e8ed87ae1 Backed out changeset 3eb633a97c1f (bug 835648) for suspected Windows orange on a CLOSED TREE. 2013-01-29 19:01:45 -05:00
Jeff Walden
dd0f69c43a Bug 835648 - Move typed enum support to a new header. r=Ms2ger
--HG--
extra : rebase_source : 8c912fba889c1c5435e3619714071502fbfb30a3
2013-01-28 16:33:17 -08:00
Mats Palmgren
d5826be6d7 Bug 786533 - Replace NS_MIN/NS_MAX with std::min/std::max and #include <algorithm> where needed. r=ehsan 2013-01-15 13:22:03 +01:00
Robert O'Callahan
106f5d95d1 Bug 825866. Part 8: Mass-rename of nsIView to nsView. r=tnikkel
This was autogenerated by basically replacing all occurrences of the word "nsIView" with nsView.

--HG--
rename : view/public/nsIView.h => view/public/nsView.h
2013-01-04 02:23:11 +13:00
Robert O'Callahan
dbadcb07b6 Bug 818643. Issue an NotifyRenderingChanged callback on nsDisplayItems when we invalidate anything to do with the display item. Make nsDisplayCanvasBackground override NotifyRenderingChanged to invalidate the cached background image. r=mattwoodrow
--HG--
extra : rebase_source : c28b2804d647a991f7d2cb8167fcf039c1835d75
2012-12-10 18:34:31 +13:00
Matt Woodrow
62137a7adb Bug 815666 - Use OverflowUpdateTracker to avoid calling UpdateOverflow on the same frame multiple times. r=roc 2012-12-10 15:33:04 +13:00
Matt Woodrow
55db5511ed Bug 815666 - Add a helper class to coalesce frames that need their overflow updated. r=roc 2012-12-10 15:32:55 +13:00
Robert O'Callahan
faea2c746e Bug 816458. Instead of removing the MAY_BE_TRANSFORMED bit in certain frame classes, add an nsIFrame::SupportsCSSTransforms method and call it when necessary. r=mats 2012-12-04 17:50:05 +13:00
Daniel Holbert
b72aec83e1 Bug 813358 part 1: Remove unnecessary nsBoxLayoutState argument from various XUL frame-sorting-related methods. r=dbaron 2012-11-30 15:25:32 -08:00
Robert O'Callahan
05743fdf57 Bug 815030. Invalidate cached background images in when a frame gets a visual style change. r=mattwoodrow
--HG--
extra : rebase_source : eef4784ea2d4ef0f88d6dfdbf3258d1b8416f443
2012-11-27 22:05:10 +13:00
Robert O'Callahan
5387b9f845 Bug 810470. Part 2: Change nsDisplayBackground invalidation to store and compare the background positioning rect. r=mattwoodrow
--HG--
extra : rebase_source : c9141ba46d034fc496a3e9e33efce5b022bec41c
2012-11-08 10:05:32 -05:00
Ehsan Akhgari
27d839024f Bug 810355 - Convert nsDidReflowStatus into an enum class; r=dholbert 2012-11-13 22:47:33 -08:00
Daniel Holbert
2d1bac67b4 Bug 806002: Convert nsDidReflowStatus into an enum. r=dbaron 2012-11-08 17:27:48 -08:00
Matt Woodrow
1e525216af Bug 807563 - Update the overflow areas of all preserve-3d children when the transform changes. r=roc 2012-11-05 12:12:05 +13:00
Mats Palmgren
ee2b02a432 Bug 806056 - Add a frame bit that says if a frame is allowed to have abs/fixed pos. children when the style so indicates (position/transform usually). Copy the bit to next-in-flows. Don't call MarkAsAbsoluteContainingBlock for style changes on an existing frame unless that bit is set (style changes that recreates the frame resets it of course). Assert in MarkAs[Not]AbsoluteContainingBlock() that the bit is set. r=bz 2012-11-02 01:52:59 +01:00
Matt Woodrow
991b83669e Bug 806256 - Only recompute preserve-3d/perspective children overflow areas if the frame size changed. r=roc 2012-11-01 14:25:45 +13:00
Matt Woodrow
9087b06246 Bug 806256 - Don't invalidate frames when the overflow area changes, DLBI will handle it. r=roc 2012-11-01 14:25:44 +13:00
Robert O'Callahan
39e909adb2 Bug 804323. Mark newly-transformed frames as abs-pos containers (or not). r=bzbarsky 2012-10-26 22:11:24 +13:00
Ryan VanderMeulen
0a11a998a5 Backout 1ebc3b1b8feb, 205c1c846d70 (bug 801488), and e4367fd2043f (bug 804323) due to b-c crashes. 2012-10-25 07:53:36 -04:00
Robert O'Callahan
c83b18cd3f Bug 804323. Mark newly-transformed frames as abs-pos containers (or not). r=bzbarsky 2012-10-25 00:35:29 +13:00
Robert O'Callahan
7027f42f5d Bug 703241. PresShell::DoScrollContentIntoView and PresShell::ScrollFrameRectIntoView should take transforms into account. r=matspal
--HG--
extra : rebase_source : e1a16f9a19e78ea71044ee78af9fdbf00ec48c0b
2012-06-22 17:06:49 +12:00
Trevor Saunders
31db47e358 bug 542039 - accessible object types r=surkov, roc 2012-09-28 17:53:44 -04:00
Matt Woodrow
02c9d9c3ae Bug 797295 - Add support for the layer attribute to nsImageBoxFrame. r=roc 2012-10-11 18:44:59 +13:00
Chris Jones
a734561c9e Bug 790505, part 4: If we're just updating the transform of a prerendered layer, then schedule an empty transaction to skip unnecessary display-list overhead. r=mattwoodrow,roc 2012-10-02 22:55:52 -07:00
Chris Jones
6a8aa4b23b Bug 790505, part 2: Add a GetLayerTransformForFrame() helper for computing a frame's layer transform outside a proper transaction, and mark frames that have been fully prerendered. r=roc 2012-10-02 22:55:50 -07:00
Chris Jones
263dc7d01e Back out bug 790505 for leaking 2012-10-03 00:21:08 -07:00