Commit Graph

782 Commits

Author SHA1 Message Date
Matt Woodrow
147cab5783 Bug 539356 - Part 9 - Implement DLBI. r=roc,bz,jwatt
* * *
Bug 539356 - Part 9a - Add new display list invalidation API to nsDisplayItem and implement it. r=roc
* * *
Bug 539356 - Part 9b - Add new frame invalidation API. r=roc
* * *
Bug 539356 - Part 9c - Remove old invalidation code. r=bz
* * *
Bug 539356 - Part 9d - Make SVG support the new invalidation model. r=jwatt
* * *
Bug 539356 - Part 9e - FrameLayerBuilder changes for display list invalidation. r=roc
* * *
Bug 539356 - Part 9f - Compute the invalid area of the layer tree and pass this to the widget. r=roc
* * *
Bug 539356 - Part 9g - Modify MozAfterPaint code to work with the new invalidation model. r=roc
2012-06-11 16:45:30 +12:00
Mounir Lamouri
8c421a5c03 Bug 760848 - Make select.size reflection follow the specifications. r=smaug 2012-06-07 01:27:53 +02:00
Ehsan Akhgari
c6218431ee Merge mozilla-central into mozilla-inbound 2012-06-06 12:46:50 -04:00
Ehsan Akhgari
5682d40581 Bug 157681 - Part 2: Optimize positioned frame offset changes by moving the frame as opposed to reflowing it in case we know that the size of the frame will not change; r=dbaron
This patch adds a change hint to signal that one of the offsets on a
frame has been changed.  When processing the hint, we do one of the
following things based on the position property of the frame.

* For static frames, we ignore the offset changes completely, as they
  will not change the layout.
* For relative positioned frames, this patch refactors the
  nsHTMLReflowState::ComputeRelativeOffsets function so that it can be
  used from other callers, and it uses that to compute the new relative
  offsets, and uses the offsets computed previously to compute the new
  position of the frame.
* For absolute positioned frames, we set up a fake parent reflow state
  object, and then we create a new reflow state object for the frame in
  question.  This setup is similar to what nsFrame::BoxReflow does.
  Once we have the new reflow state object, we use it to compute the
  absolute offsets, and then we use the computed offsets to set the new
  position of the frame.  The offset computation is similar to what
  nsAbsoluteContainingBlock::ReflowAbsoluteFrame does.  In some cases
  where it is possible for the dimensions of the frame to change based
  on the offset changes, we fall back to a full reflow.
2012-06-06 00:53:48 -04:00
Boris Zbarsky
6e136586b6 Bug 464758. Don't try to check for :before/:after pseudos for frames that can't have them. r=dbaron 2012-05-29 23:45:17 -04:00
Boris Zbarsky
89e50f89ed Bug 758885. Don't apply the dynamic :hover reresolution skipping optimization to selectors which can match on mutable state other than :hover. r=dbaron 2012-05-29 00:17:45 -04:00
Neil Deakin
b9d2d5f9e3 Bug 757485, remove nsIXBLService and use nsXBLService directly, r=bz 2012-05-23 14:46:04 -04:00
Gervase Markham
ca171eec44 Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Benjamin Smedberg
4f91700da9 Bug 734847 part 2 - treewide changes resulting from the default-infallibility of hashtables; either remove useless result checks, or use the fallible version of APIs, depending on context, r=jlebar
--HG--
extra : rebase_source : 844b008c5167e6ca39a7ba9eeec8b30672938704
2012-05-18 13:30:49 -04:00
Aryeh Gregor
81df634941 Bug 756045 - Turn "ASSERTION: anonymous nodes should not be in child lists" into an NS_WARNING; r=bz 2012-05-18 09:20:49 +03:00
Jonathan Watt
75835eecfc Bug 734082 - Compute and store bounds and visual overflow bounds for both SVG leaf and container frames. r=roc. 2012-05-17 05:05:09 +01:00
Vincent LAMOTTE
bcc3cf4e81 Bug 657953 (1/2) - Implement the layout part of the meter element. r=roc 2012-05-16 17:47:10 +02:00
Boris Zbarsky
2e3a0eefe3 Bug 751012. When saving frame state, make sure to walk through placeholders so we save the state of out-of-flow descendants properly. Also make sure to walk the continuations and special siblings of the root frame that we're saving state for. r=roc 2012-05-09 21:27:47 -04:00
Ehsan Akhgari
d50878a182 Bug 612128 - Prevent the editor from modifying nodes which are not under an editing host; r=roc,bzbarsky
This patch ensures that the NODE_IS_EDITABLE flag is only set on nodes living
under an editing host.  Things like text controls which used to have that flag
previously will not have it any more.  The flag would be set on their anonymous
div node instead.  Note that if text controls actually fall under an editing
host, they will get the NODE_IS_EDITABLE flag.

This patch also makes nsHTMLEditor::IsEditable return sane results (text nodes
are always considered to be editable).
2010-11-16 15:45:49 -05:00
Daniel Holbert
3643243851 Bug 745991: In nsCSSFrameConstructor::MaybeRecreateContainerForFrameRemoval, add explicit parenthesis around '&&' within '||' to silence GCC warning. r=smontagu 2012-04-17 09:56:15 -07:00
Mats Palmgren
d473f3d2f0 Bug 740743 - Implement CSS overflow for <legend>. r=bz 2012-04-13 17:52:13 +02:00
Phil Ringnalda
0abdfa04b8 Back out b00bf7f3869c (bug 737976) for apparently causing mochitest-1 leaks on a CLOSED TREE 2012-03-28 22:43:09 -07:00
Kyle Huey
c3096d813b Bug 737976: Remove nsINodeInfo. rs=bent 2012-03-28 19:07:37 -07:00
Daniel Holbert
032e66c4c1 Bug 740067: Make nsCSSFrameConstructor::CreateNeededTablePseudos return void. r=bz 2012-03-28 12:43:15 -07:00
Alexander Surkov
ed99cf3a8a Bug 656225 - XUL listbox accessible tree doens't get updated, r=tbsaunde, bz 2012-03-27 16:29:51 +09:00
Daniel Holbert
eabfa26b3f Bug 739439: Make nsFrameConstructorState::GetGeometricParent() a const method. r=bz 2012-03-26 15:36:13 -07:00
Daniel Holbert
97f4b320f3 Bug 738007: Minor code cleanup in nsCSSFrameConstructor::FlushAccumulatedBlock. r=bz 2012-03-22 10:31:19 -07:00
Jim Mathies
3ba9aa7eeb Bug 737983 - win8 fixup for generic keyword collision, r=smaug. 2012-03-22 09:18:41 -05:00
Daniel Holbert
d3edf08d29 Bug 737313: Make nsCSSFrameConstructor::ConstructInline more robust when one of its child frames fails to construct. r=bz 2012-03-20 10:23:03 -07:00
Jonathan Watt
cfd1f311f8 Bug 734079, part 2 - Use a mark and asynchronously sweep scheme (similar to HTML reflow) to invalidate and update SVG frame bounds. r=longsonr. 2012-03-20 12:15:53 +00:00
Boris Zbarsky
32ebb0eedf Bug 537624. Don't set up undisplayed entries until we're sure we're creating frames from the relevant FrameConstructionItemList. r=roc 2012-03-19 18:22:02 -04:00
Boris Zbarsky
c90ce3bdca Bug 732667. Only do checks for :hover selectors when hover state changes on nodes which have relevant hover rules. r=dbaron 2012-03-12 22:54:15 -05:00
Boris Zbarsky
d6d9350d3d Bug 705877 part 6. Make frame construction use ancestor filters when resolving style. r=dbaron 2012-03-12 22:54:15 -05:00
Phil Ringnalda
b1d1a41987 Back out 83a33626d965:6e9330f5a9bd (bug 732667 and bug 705877) for Windows build bustage 2012-03-12 22:12:41 -07:00
Boris Zbarsky
77f35024de Bug 732667. Only do checks for :hover selectors when hover state changes on nodes which have relevant hover rules. r=dbaron 2012-03-12 22:54:15 -05:00
Boris Zbarsky
06a9dc2781 Bug 705877 part 6. Make frame construction use ancestor filters when resolving style. r=dbaron 2012-03-12 22:54:15 -05:00
Daniel Holbert
204ed71c30 Bug 640443: Allow positioned display:-moz-box elements to be containers for absolutely-positioned content. r=bz 2012-03-10 14:49:10 -08:00
Boris Zbarsky
563434a254 Bug 734406. Fix printing and print preview for <canvas> by checking for script-enabled on the original document, not on the printing document. r=tnikkel 2012-03-09 22:32:51 -06:00
Jonathan Watt
cd715e1ba0 Bug 734218 - nsChangeHint_RepaintFrame should only invalidate the bounds of SVG frames, not update them. r=dholbert. 2012-03-09 08:55:28 +00:00
Nathan Froyd
72e8d1d540 Bug 731615 - Eliminate duplicate headers in layout. rs=smontagu 2012-02-29 10:57:47 -05:00
Mats Palmgren
c3f6b14775 Bug 727601 - "ASSERTION: Only transformed frames should have UpdateTransformLayer hint" with display:table. r=roc 2012-03-01 13:34:19 +01:00
David Bolter
818e8285ce Bug 495912 - Expose content in HTML canvas elements. r=bz,roc r=surkov(tests)
layout-mentor: bz (mucho thanks!)

We make html canvas frame a container and render frames for its content which makes a lot of what we need for accessibility "just work".
2012-02-17 23:26:37 -05:00
Ed Morley
345eafc0b0 Backout 547de632a3e2 (bug 495912) for mochitest-a11y orange 2012-02-29 18:42:58 +00:00
David Bolter
01c1492892 Bug 495912 - Expose content in HTML canvas elements. r=bz,roc r=surkov(tests)
layout-mentor: bz (mucho thanks!)

We make html canvas frame a container and render frames for its content which makes a lot of what we need for accessibility "just work".
2012-02-17 23:26:37 -05:00
Boris Zbarsky
11c8d77a1c Bug 728516. Refactor frame construction for things that want to wrap kids in a block. r=roc 2012-02-21 18:01:40 -05:00
Boris Zbarsky
519881edb7 Bug 728111. Fix the block inside foreignObject to really be the absolute containing block for its kids. r=roc 2012-02-21 18:01:40 -05:00
Mats Palmgren
2155a76fec Bug 725535 - "ASSERTION: Only transformed frames should have UpdateTransformLayer hint". r=roc 2012-02-12 22:21:50 +01:00
Phil Ringnalda
fe5618201e Back out 1cd8c9b40035 (bug 725376), df43cc1f72e1 (bug 725535), and 8a820e4ee7f6 (bug 726364) for reftest orange 2012-02-12 14:01:58 -08:00
Mats Palmgren
d28a42b8c2 Bug 725535 - "ASSERTION: Only transformed frames should have UpdateTransformLayer hint". r=roc 2012-02-12 22:21:50 +01:00
Chris Lord
e86dad71db Bug 722325 - Revert bug 720987 for transformed frames. r=roc
The fix checked in for bug 720987 caused a major rendering regression with
native fennec. Revert it for transformed frames until the correct fix is found.
2012-02-09 16:42:14 +01:00
Robert O'Callahan
e1d954ff3b Bug 722923. Part 1: Strip opacity/transform update hints when we recursively invalidate over our children. r=mats 2012-02-08 11:52:59 +13:00
Mats Palmgren
78c681b88a Bug 724432 - Skip UpdateOverflow if we did Reflow. Don't propagate UpdateOverflow in ReResolveStyleContext. r=roc 2012-02-07 12:31:47 +01:00
Mats Palmgren
8d93bc8689 merge backout 2012-02-07 12:31:08 +01:00
Mats Palmgren
1404cfac3b Backout bug 722325 (a8b8c4489e4e). r=roc 2012-02-07 12:31:03 +01:00
Chris Lord
35e729853f Bug 722325 - Revert bug 720987 for transformed frames. r=roc
The fix checked in for bug 720987 caused a major rendering regression with
native fennec. Revert it for transformed frames until the correct fix is found.
2012-02-01 08:50:24 +00:00
Mats Palmgren
37be13d7c9 Bug 720987 - Don't use the existing overflow areas when calculating the new overflow areas after a style change. r=roc 2012-01-28 04:35:58 +01:00
Simon Montagu
acc1d8de29 Recreate content when a deleted frame is the only child of a bidi continuation frame. Bug 718236, r=roc 2012-01-26 00:04:22 -08:00
Mats Palmgren
a1873efda5 Bug 524925 - Update the overflow for all the affected frames, not just the primary frame. And the ancestors of those. part=2/6 r=roc 2012-01-18 21:04:51 +01:00
Benjamin Stover
0a52de4032 Bug 524925 - Recompute overflow without reflowing for transforms. part=1/6 r=dbaron
Add an extra change hint, UpdateOverflow, that can be used to specify that
a frame's overflow areas may have changed and that they need to be recalculated.
When a transform on a frame changes, instead of marking it for reflow, set this
hint instead.

There is an added virtual function on nsIFrame, UpdateOverflow, which is called
recursively on a frame when the corresponding hint is set, to allow it to
update its overflow areas.
2011-06-15 14:03:49 -07:00
Cameron McCormack
6a67c59c2d Bug 724706 - Use NS_NewBlockFormattingContext instead of NS_NewBlockFrame with the bfc flags. r=roc 2012-02-07 10:49:08 +11:00
Robert Longson
dc84569d62 Bug 616892 - Make more updates honour suspendRedraw. r=roc 2012-02-04 13:58:46 +00:00
Jonathan Watt
baa7ef5264 Bug 714839 - Make nsCSSFrameConstructor inherit nsFrameManager. r=bz.
--HG--
extra : rebase_source : 23c36617c5088884b7e1ecea48e6c09aa8757690
2012-02-02 10:06:46 +00:00
Markus Stange
a953a374e7 Bug 598482 part 19 - Remove unused aViewManager argument. r=roc 2011-12-23 22:52:24 -05:00
Markus Stange
28a839403a Bug 598482 part 15 - Rename view update batches to refresh disable batches and only use them in the two places that can enter reflow (where synchronous painting is permitted). r=roc 2011-12-23 22:52:23 -05:00
Markus Stange
cb70f28632 Bug 598482 part 7 - Remove NS_VMREFRESH_* flags. NS_VMREFRESH_NO_SYNC is now the unchangable default. r=roc 2011-12-23 22:52:22 -05:00
Robert Longson
d9086c4d00 Bug 607854 - implement SVGTests interface. r=jwatt 2011-12-31 09:44:03 +00:00
Mats Palmgren
9cc6cc3865 Bug 515530 - Remove nsHTMLContainerFrame. r=roc 2011-12-27 21:18:48 +01:00
Phil Ringnalda
3f8c5b26b0 Back out 1ac4cb2e7c32 to c631f9c3e9a9 (bug 598482) for Android reftest failures 2011-12-23 22:21:58 -08:00
Markus Stange
890c153e71 Bug 598482 part 19 - Remove unused aViewManager argument. r=roc 2011-12-23 22:52:24 -05:00
Markus Stange
34f17128b7 Bug 598482 part 15 - Rename view update batches to refresh disable batches and only use them in the two places that can enter reflow (where synchronous painting is permitted). r=roc 2011-12-23 22:52:23 -05:00
Markus Stange
4ef3f032b5 Bug 598482 part 7 - Remove NS_VMREFRESH_* flags. NS_VMREFRESH_NO_SYNC is now the unchangable default. r=roc 2011-12-23 22:52:22 -05:00
Boris Zbarsky
6c2ea9adf4 Bug 302566. Show canvas fallback content when script is disabled. r=tnikkel 2011-12-21 16:50:39 -05:00
Jonathan Watt
86253e7604 Bug 704706 - Fix crash @ nsSVGPathGeometryFrame::UpdateCoveredRegion. r=longsonr. 2011-12-13 17:50:30 +00:00
Brian O'Keefe
1513850d8f Bug 708846 - Clean up the SVG namespace checks to use nsIContent::IsSVG() instead; r=longsonr 2011-12-15 14:47:03 +00:00
Masatoshi Kimura
ef45bcacdc Bug 704820 - Simplify nsContentUtils::ReportToConsole. r=smaug 2011-12-15 14:47:03 +00:00
Boris Zbarsky
d3f867aa67 Bug 709256 part 3. Skip calling PresShell::FlushPendingNotifications altogether if there might not be anything to flush. r=roc 2011-12-14 23:42:15 -05:00
Robert Longson
581866451b Bug 696078 - Move filter attribute processing to frame classes. r=jwatt
--HG--
rename : layout/svg/base/src/nsSVGLeafFrame.cpp => layout/svg/base/src/SVGFELeafFrame.cpp
extra : rebase_source : 74ac4d84da2f0a99272e83590a9adc1dc8511fce
2011-11-19 17:53:52 +00:00
David Zbarsky
4a23b35179 Bug 660959 - Update link state less lazily r=bz 2011-11-14 16:24:41 +13:00
Ehsan Akhgari
74d9b6f1fb Backout changeset be42bc18185a (bug 612128) because of bug 688423 2011-10-25 22:32:55 -04:00
Ehsan Akhgari
8cfbed187e Bug 612128 - Prevent the editor from modifying nodes which are not under an editing host; r=roc,bzbarsky
This patch ensures that the NODE_IS_EDITABLE flag is only set on nodes living
under an editing host.  Things like text controls which used to have that flag
previously will not have it any more.  The flag would be set on their anonymous
div node instead.  Note that if text controls actually fall under an editing
host, they will get the NODE_IS_EDITABLE flag.

This patch also makes nsHTMLEditor::IsEditable return sane results (text nodes
are always considered to be editable).

--HG--
extra : rebase_source : 37317b4d95c2ea957be81420583a98a24f0864ac
2010-11-16 15:45:49 -05:00
Kang-Hao (Kenny) Lu
5d17969b84 Bug695538 - Make sure that trailing spaces don't get dropped by nsCSSFrameConstructor::CreateNeededTablePseudos in certain cases. r=bz 2011-10-20 10:09:33 +02:00
Olli Pettay
a86b1a4d43 Bug 682420 - Rename nsINode::GetOwnerDoc to nsINode::OwnerDoc, part 1, r=jst
--HG--
extra : rebase_source : baf1a25cdea68d499a7673fdf96e27b5a12dc83c
2011-10-18 13:53:36 +03:00
Ehsan Akhgari
2a602a5685 Bug 690892 - Replace PR_TRUE/PR_FALSE with true/false on mozilla-central; rs=dbaron
Landing on a CLOSED TREE
2011-10-17 10:59:28 -04:00
Jeff Walden
b7753477cf Bug 693469 - Implement mozilla::ArrayLength and mozilla::ArrayEnd, and replace uses of NS_ARRAY_LENGTH whenever possible. (Exceptions: assigning to static initializers, use in static assertions, as template parameters, etc. These will go away when the relevant compilers have C++11 constexpr support.) r=cjones
--HG--
extra : rebase_source : b4bae9a0f85abf2feb828609b50e756916b99a6f
2011-10-10 22:50:08 -07:00
Jeff Walden
eb2cb918a4 Back out everything since 5435ee09cf7b. Tinderbox compilers hate me. r=epic-fail 2011-10-12 12:21:53 -07:00
Jeff Walden
77ebbde4ab Bug 639469 - Implement mozilla::ArrayLength and mozilla::ArrayEnd, and replace uses of NS_ARRAY_LENGTH whenever possible. r=cjones
--HG--
extra : rebase_source : 860a8271bf7e51cde358f2a4185c410de1fc2960
2011-10-10 22:50:08 -07:00
Daniel Holbert
682ed444b5 Bug 691959: Remove unused variable 'bool done' from nsCSSFrameConstructor.cpp. r=dbaron 2011-10-08 14:44:26 -07:00
Ehsan Akhgari
82c43f09d4 Bug 656130 - Part 1: Make sure that the absolute containing frame to be returned is actually marked as such in the frame tree; r=bzbarsky 2011-05-11 19:53:34 -04:00
Ehsan Akhgari
ef73506d4d Bug 10209 - Part 5: Allow table elements to act as absolute positioning containers; r=roc 2011-05-09 20:36:10 -04:00
Ehsan Akhgari
b273fc68d8 Bug 10209 - Part 2: Implement the absolute positioning support for all frames; r=roc 2011-04-29 19:02:33 -04:00
Ehsan Akhgari
47d44b9dc3 Bug 10209 - Part 1: Add an API for absolute container support for all frame types; r=roc 2011-04-27 19:41:43 -04:00
Michael Wu
d8e503c38b Bug 675553 - Switch from PRBool to bool on a CLOSED TREE , r=bsmedberg,khuey,bz,cjones
--HG--
rename : tools/trace-malloc/bloatblame.c => tools/trace-malloc/bloatblame.cpp
2011-09-28 23:19:26 -07:00
Ehsan Akhgari
85e673bce7 Backout changeset a72195ce0eaa (bug 612128) becasue of Fennec regressions 2011-09-22 18:09:44 -04:00
Boris Zbarsky
e88e132dc5 Bug 686656. Make sure to skip animation rules as well as transition rules when we're reparenting a style context when not processing an animation restyle. r=dbaron 2011-09-20 23:52:44 -04:00
Ehsan Akhgari
ec2d83e852 Bug 612128 - Prevent the editor from modifying nodes which are not under an editing host; r=roc,bzbarsky
This patch ensures that the NODE_IS_EDITABLE flag is only set on nodes living
under an editing host.  Things like text controls which used to have that flag
previously will not have it any more.  The flag would be set on their anonymous
div node instead.  Note that if text controls actually fall under an editing
host, they will get the NODE_IS_EDITABLE flag.

This patch also makes nsHTMLEditor::IsEditable return sane results (text nodes
are always considered to be editable).
2010-11-16 15:45:49 -05:00
Mats Palmgren
ba8355dd94 Bug 685154 - Cleanup nsIFrame::GetParentStyleContextFrame and related code. r=roc
Make nsCSSFrameConstructor::ConstructTable return a null frame if
creating the inner table frame fails.  Simplify some code since we can
now depend on the invariant that a properly created outer table frame
always has a non-null inner table frame.
2011-09-12 09:08:07 -07:00
Mats Palmgren
4a82c200c1 Bug 685154 - Cleanup nsIFrame::GetParentStyleContextFrame and related code. r=roc
Make nsIFrame::GetParentStyleContextFrame return the frame directly
instead of indirectly through an out parameter.  Remove the unused
nsPresContext parameter.
2011-09-12 09:08:07 -07:00
L. David Baron
fe83f8c9e2 Add comment pointing out reason for distinguishing anonymous blocks for positioned inlines. No bug. 2011-09-09 12:50:20 -07:00
Mats Palmgren
2a1e806d9f Bug 653649 - New way of getting child lists from frames. (part 5/5) r=roc
Add a kPrincipalList alias in nsCSSFrameConstructor.cpp to avoid
the nsIFrame:: prefix in numerous places.
2011-08-24 22:54:30 +02:00
Mats Palmgren
6894179e71 Bug 653649 - New way of getting child lists from frames. (part 4/5) r=roc
Remove the nsIAtom* child list names and use child list ID enum instead.
2011-08-24 22:54:30 +02:00
Mats Palmgren
f06792a6ef Bug 653649 - New way of getting child lists from frames. (part 3/5) r=roc
Update GetAdditionalChildListName consumers to use the new
child list iterator instead.
2011-08-24 22:54:29 +02:00
Jonathan Hage
822cfb4c1d Bug 668204 - Merge nsMathMLmunderFrame and nsMathMLmoverFrame into nsMathMLmunderoverFrame. r=karlt 2011-08-13 17:22:12 +02:00
Ms2ger
7c8d83cd86 Bug 677101 - Move nsAutoLayoutPhase to its own header; r=tn 2011-08-08 17:14:34 +02:00
Boris Zbarsky
5b8493a932 Bug 675246. Make sure generated content that's being replicated doesn't end up with no primary frame. r=roc 2011-08-01 13:43:23 -04:00
Jonas Sicking
d4380b0d71 Bug 664061: Remove isindex code from layout. r=dbaron 2011-07-19 17:22:01 -07:00