Commit graph

1686 commits

Author SHA1 Message Date
Mats Palmgren
1c2b8c222e Bug 1414666 part 1 - Add nsIFrame::PresShell() for convenient access to the shell. r=emilio
MozReview-Commit-ID: 8FPTPKWyVtY
2017-11-09 03:00:48 +01:00
fantasai
009979653b Bug 1411765 - Part1:Convert an Incomplete reflow status to OverflowIncomplete also when our size is exactly the available size, not just less. r=mats
MozReview-Commit-ID: JikD7p70pJy

--HG--
extra : rebase_source : c7803976a9b42c6076acb233b68dcdbf3e8c93e8
2017-10-25 14:21:19 -07:00
Mats Palmgren
25cd0c37f7 Bug 1400618 part 1 - Collect NAC / generated content and call DestroyAnonymousContent / UnbindFromTree on those after the frames are destroyed. r=bz
MozReview-Commit-ID: 2trDgeJPw25
2017-11-07 01:20:33 +01:00
Daniel Holbert
680815cd6e Bug 1412346 part 5: (automated patch) Switch a bunch of C++ files in layout to use our standard mode lines. r=jfkthame
This patch was generated automatically by the "modeline.py" script, available
here: https://github.com/amccreight/moz-source-tools/blob/master/modeline.py

For every file that is modified in this patch, the changes are as follows:
 (1) The patch changes the file to use the exact C++ mode lines from the
     Mozilla coding style guide, available here:
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style#Mode_Line

 (2) The patch deletes any blank lines between the mode line & the MPL
     boilerplate comment.

 (3) If the file previously had the mode lines and MPL boilerplate in a
     single contiguous C++ comment, then the patch splits them into
     separate C++ comments, to match the boilerplate in the coding style.

MozReview-Commit-ID: EuRsDue63tK

--HG--
extra : rebase_source : 3356d4b80ff6213935192e87cdbc9103fec6084c
2017-10-27 10:33:53 -07:00
Matt Woodrow ext:(%2C%20Miko%20Mynttinen%20%3Cmikokm%40gmail.com%3E%2C%20Timothy%20Nikkel%20%3Ctnikkel%40gmail.com%3E)
31e9b3f8cd Bug 1404181 - Part 2: Track a 'visible' rect for display list building as well as the 'dirty' rect, so that we can do partial building by specifying a smaller 'dirty' rect. r=mstange
MozReview-Commit-ID: 7DUV9dl4zb1

--HG--
extra : rebase_source : e7bf5eacba44ce9cf77c55d623edef33a85f0492
2017-10-04 14:28:38 +13:00
Matt Woodrow
d8a662f0d2 Bug 1406727. r=mstange,froydnj a=abillings
--HG--
extra : rebase_source : a9932eb10d3ca451e1ce3a424cd48e957801f593
2017-10-17 15:19:44 +13:00
Brad Werth
e2ebeb47c1 Bug 1358299 Part 1: Stop collecting data for BOX_ALIGN_PROPS_IN_BLOCKS_FLAG probe. r=chutten
MozReview-Commit-ID: 5TLrGGtcdVD

--HG--
extra : rebase_source : 3e67868e1cb5a91ec80d21b1687ecc6cead74935
2017-10-13 12:43:40 -07:00
Nicholas Nethercote
d225f7151b Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro.
(Path is actually r=froydnj.)

Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than nsIAtom.

MozReview-Commit-ID: 91U22X2NydP

--HG--
rename : xpcom/ds/nsIAtom.h => xpcom/ds/nsAtom.h
extra : rebase_source : ac3e904a21b8b48e74534fff964f1623ee937c67
2017-10-03 09:05:19 +11:00
Emilio Cobos Álvarez
78eab7101d Bug 1404167: Properly update the styles of first-letter childs of anon boxes. r=bz
MozReview-Commit-ID: Cyxs4FxGj6B
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-09-29 13:14:37 +02:00
Sebastian Hengst
9aa7a73678 Backed out changeset 710b592482ee (bug 1404167) for asserting mOwner == ExpectedOwnerForChild(aFrame) at ServoRestyleManager.cpp:125. r=backout 2017-09-29 11:39:12 +02:00
Emilio Cobos Álvarez
6f5e0eacb8 Bug 1404167: Properly update the styles of first-letter childs of anon boxes. r=bz
MozReview-Commit-ID: Cyxs4FxGj6B
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-09-29 08:50:47 +02:00
Jonathan Watt
f28f0d2890 Bug 1342951, part 3 - Support recording of SVGTextFrame correspondence before reflow. r=heycam
MozReview-Commit-ID: IG2etgpZCHN
2017-09-01 18:07:40 +01:00
Jonathan Watt
9d21fb29ff Bug 1399824, part 1 - Always use nsIFrame::RemoveStateBits instead of manual bit twiddling. r=xidorn
MozReview-Commit-ID: KynEge1U4aS
2017-08-24 10:55:28 +01:00
Ting-Yu Lin
2e869d8f3d Bug 1341009 - Add nsReflowStatus::IsEmpty() assertions to all nsIFrame::Reflow() methods and some reflow helpers, and remove unneeded Reset(). r=dholbert
nsReflowStatus::IsEmpty() assertions are added after DISPLAY_REFLOW in the
beginning of the Reflow().

A few Reflow() implementations have Reset() calls at the end which are left
in place by this patch (with an explanatory comment added to each). These
ending Reset()s are only needed for cases where a non-splittable frame
passes its own nsReflowStatus to a child's reflow method. Just in case the
child leaves a "not fully complete" value in the nsReflowStatus, the
non-splittable parent frame must clear out the nsReflowStatus before
returning, so that its own parent doesn't then try to split it.

MozReview-Commit-ID: 6Jj3jfMAqj4

--HG--
extra : rebase_source : e1fe6a775ad97e16a6d7cc224634ff962ccb0fbf
2017-09-13 18:00:25 +08:00
Ting-Yu Lin
35273fdc6c Bug 1341009 - Pass const reference instead of value for nsReflowStatus. r=dholbert
It's good to save a copy constructor call.

Also, make nsBlockFrame::SplitFloat() return void because the only
caller (BlockReflowInput::FlowAndPlaceFloat()) doesn't check its return
value, and (more importantly) because it only ever returns NS_OK.

MozReview-Commit-ID: 9LmDCXd7xGS

--HG--
extra : rebase_source : ea5fb41890c4ca58cd1d7f400a7c1becd66c3fdd
2017-09-13 15:47:51 +08:00
Matt Woodrow
1c528ae1ab Bug 1397059 - Make sure we generate unique display item keys for nsDisplayTextOverflowMarker. r=mats 2017-09-13 15:28:24 -04:00
Matt Woodrow
40f5b92e3b Bug 1388161 - Store the dirty rect on the display list builder rather than passing it as a parameter to BuildDisplayList. r=mstange 2017-08-07 14:23:35 +12:00
Sebastian Hengst
8257b2d113 Backed out changeset 8f2dd8f13b53 (bug 1388161) for failing chrome's test_animation_performance_warning.html | preserve-3d transform. r=backout 2017-08-10 14:40:21 +02:00
Matt Woodrow
a3a130b6ff Bug 1388161 - Store the dirty rect on the display list builder rather than passing it as a parameter to BuildDisplayList. r=mstange 2017-08-07 14:23:35 +12:00
Jonathan Watt
bcaeb4d9e8 Bug 1379474 - Update various ReflowInput variable names to match the new type name. r=xidorn
MozReview-Commit-ID: 1pMLInpeMGY
2017-07-25 12:02:35 +01:00
Emilio Cobos Álvarez
049aad7027 Bug 1384542: Get rid of GetParentAllowServo in implementation of CSS 'justify-items' property. r=dholbert,heycam
MozReview-Commit-ID: 4qydjqSoVXs
2017-07-31 14:32:51 +02:00
Boris Zbarsky
ada6e6cf35 Bug 1324619 part 6. Handle dynamic restyles of ::first-line in stylo. r=emilio
MozReview-Commit-ID: 3jQhIqPuL1g

--HG--
extra : rebase_source : 094829b3cecf0549462cbe107d293a7e56ea2e5b
2017-07-28 21:20:47 -04:00
Boris Zbarsky
6c4a600617 Bug 1324619 part 5. Implement FrameForPseudoElement for ::first-line. r=emilio
MozReview-Commit-ID: JXcV58peI7T

--HG--
extra : rebase_source : 013bde490d40f409af15752f15abe04df004aad6
2017-07-28 21:20:46 -04:00
Daniel Holbert
fc581a5454 Bug 1284888 part 2: Make TextOverflow::WillProcessLines() return a UniquePtr, for stronger lifetime guarantees. r=jfkthame
MozReview-Commit-ID: 7KVsFlxuL9p

--HG--
extra : rebase_source : 13ee634d9a310236f70c30afa0d3c5a798a00194
2017-07-18 22:42:42 -07:00
Wes Kocher
33e10acd83 Backed out 2 changesets (bug 1284888) for windows build failures in TextOverflow.h a=backout
Backed out changeset 520df8c2a0ac (bug 1284888)
Backed out changeset 39e9b0e7ae04 (bug 1284888)

MozReview-Commit-ID: CIzl29LVfFM
2017-07-18 20:59:51 -07:00
Daniel Holbert
93add5506b Bug 1284888 part 2: Make TextOverflow::WillProcessLines() return a UniquePtr, for stronger lifetime guarantees. r=jfkthame
MozReview-Commit-ID: 7KVsFlxuL9p

--HG--
extra : rebase_source : e0ee604800f456d1a0b24f7933d722fe51d15122
2017-07-18 10:48:07 -07:00
Manish Goregaokar
d909c5cea0 Bug 1367904 - Part 11: stylo: Use ServoStyleContext in ServoStyleSet/ServoRestyleManager; r=bholley
MozReview-Commit-ID: JJOBixTSCZq
2017-07-17 21:00:54 -07:00
L. David Baron
57af4c8b58 Bug 1308876 - Remove assertion that starts firing more when we mark frames dirty less and thus call PrepareResizeReflow more. r=mats
This fires, for example, in layout/base/crashtests/265973-1.html (and a
number of other tests, I believe) with the primary patch in this bug.
This is because the primary patch causes frames to be dirty less often,
which sends us into the PrepareResizeReflow codepath, which only happens
when frames are not dirty.

I don't think NS_CoordSaturatingAdd is needed here, since newAvailISize
is used only when deciding whether or not lines need reflow; wraparound
should only cause us to do a little extra work.

Note: This patch passes try on its own, on Linux64 debug.

MozReview-Commit-ID: K6Z5MvG7awp
2017-07-12 19:37:12 -07:00
L. David Baron
e094153c1e Bug 1308876 - Don't continue reflow after deciding we need to try again due to page-break-inside:avoid. r=mats
The primary patch in this bug causes fewer dirty reflows, which leads to lines
being out-of-date for the reason described in the comment.  This causes
incorrect layout of some references sections on wikipedia, for which a
simplified testcase is included.

This bug was not caught by anything in our test suite, but I noticed it
while browsing wikipedia (since I use a build that has my patches in it
for my regular browsing).

MozReview-Commit-ID: 4hTQpGS2pZH
2017-07-12 19:37:12 -07:00
L. David Baron
8487157732 Bug 1308876 - Mark lines dirty when we abort their reflow due to page-break-inside:avoid. r=mats
Both of the changes are needed to fix
layout/reftests/w3c-css/submitted/css21/pagination/moz-css21-float-page-break-inside-avoid-4.html
with the primary patch in bug 1308876.

That patch changes the transfer of NS_FRAME_IS_DIRTY from parent to
child so that it happens at the start of the parent's reflow rather than
later at the start of the child's reflow, which means that frames that
are pulled into a dirty frame during reflow are not marked dirty (and
thus forced to reflow all of their lines).  This means that the primary
patch in bug 1308876 introduces the possibility of non-dirty reflows
during printing, which means we exercise non-dirty relayout code in a
number of tests where we did not do so previously.

Note: This patch passes try on its own, on Linux64 debug.

Writing a simple test for this that fails without the primary patch in
bug 1308876 seems difficult.  ColumnSetFrame responds to
nsReflowStatus::NextInFlowNeedsReflow by marking the next-in-flow
*dirty* (which page frames don't), which makes it hard to test in
columns, at least without nesting.  (Colums probably shouldn't do that,
though, but that's a performance fix for another time.)

MozReview-Commit-ID: JZ3qWTSO2lX
2017-07-12 19:37:11 -07:00
Carsten "Tomcat" Book
6121e5b902 Backed out changeset 31c43a9ffa8b (bug 1379474) for bustage 2017-07-10 08:06:30 +02:00
Jonathan Watt
b4ab3914e7 Bug 1379474 - Update various ReflowInput variable names to match the new type name. r=xidorn
MozReview-Commit-ID: 1pMLInpeMGY
2017-06-13 11:45:17 +01:00
Boris Zbarsky
5bd9b06ca0 Bug 1376640. Fix dynamic updates when an inline that sits between a first-letter and its block changes style. r=heycam
MozReview-Commit-ID: 8osMUpYVRvR
2017-06-28 22:19:35 -07:00
Carsten "Tomcat" Book
f32372e861 Backed out changeset 2992d5af6251 (bug 1376640) for assertion failures like Assertion failure: mOwner == ExpectedOwnerForChild(aFrame) (Missed some frame in the hierarchy?) 2017-06-29 08:22:08 +02:00
Boris Zbarsky
991d1134d8 Bug 1376640. Fix dynamic updates when an inline that sits between a first-letter and its block changes style. r=heycam
MozReview-Commit-ID: 8osMUpYVRvR
2017-06-28 22:19:35 -07:00
Boris Zbarsky
3966a1a2ea Bug 1324618 part 8. Implement restyling for first-letter frames. r=emilio
MozReview-Commit-ID: IPUDD1Q6AFq
2017-06-26 23:35:08 -07:00
Boris Zbarsky
955487f7ab Bug 1324618 part 4. Implement a way to get the first-letter frame, if any, for a block. r=heycam
MozReview-Commit-ID: 1o0d5ugJ1hj
2017-06-26 23:35:07 -07:00
Carsten "Tomcat" Book
bb1fe1fc10 Backed out changeset 049b20a12429 (bug 1324618) for bustage 2017-06-27 10:39:58 +02:00
Carsten "Tomcat" Book
d4cd7abe0a Backed out changeset 169cafc2d5f9 (bug 1324618) 2017-06-27 10:39:39 +02:00
Boris Zbarsky
f9aed5db67 Bug 1324618 part 8. Implement restyling for first-letter frames. r=emilio
MozReview-Commit-ID: IPUDD1Q6AFq

--HG--
extra : rebase_source : e7f1b97fc43825de4617195edb4d9ed6bfbb12f2
2017-06-26 23:35:08 -07:00
Boris Zbarsky
af8c5f3819 Bug 1324618 part 4. Implement a way to get the first-letter frame, if any, for a block. r=heycam
MozReview-Commit-ID: 1o0d5ugJ1hj

--HG--
extra : rebase_source : 6b6900ab2c6fdb3ae07af6e7915b1ecce8cf051d
2017-06-26 23:35:07 -07:00
Boris Zbarsky
6fd06e372d Bug 1375315. Make sure to update block pseudo-element styles on various anonymous blocks. r=emilio
MozReview-Commit-ID: HBabvfWYgdP

--HG--
extra : rebase_source : 6fb94a3494873d63bc49fd44e9951a9c7c5a8d8b
2017-06-22 11:24:11 -04:00
Alexis Beingessner
adb013669b Bug 1088760 - Remove nsRenderingContext, replacing all of its uses with gfxContext. r=jwatt,jrmuizel
MozReview-Commit-ID: K1WUIOnvazF
2017-06-13 11:00:10 -04:00
Sebastian Hengst
f3bf820bfd Backed out changeset 3d1ce85e6348 (bug 1088760) for bustage, at least on Android at layout/generic/nsPluginFrame.cpp:1612. r=backout 2017-06-13 00:30:03 +02:00
Alexis Beingessner
c75211cb95 Bug 1088760 - Remove nsRenderingContext, replacing all of its uses with gfxContext. r=jwatt,jrmuizel
MozReview-Commit-ID: K1WUIOnvazF
2017-06-12 17:32:48 -04:00
Mats Palmgren
357e4b9560 bug 1368547 part 2 - Remove nsFrameManager/PresShell methods dealing with placeholders and introduce a nsIFrame::GetPlaceholderFrame() convenience method. r=jfkthame
MozReview-Commit-ID: GBUiUBqJxhQ
2017-05-31 21:29:49 +02:00
Jonathan Kew
a8f81efd8e Bug 1365982 - Attach frame properties to each frame instead of looking them up in a hashtable on the prescontext. r=mats
--HG--
rename : layout/base/FramePropertyTable.cpp => layout/base/FrameProperties.cpp
rename : layout/base/FramePropertyTable.h => layout/base/FrameProperties.h
2017-05-27 12:36:00 +01:00
Mats Palmgren
badec5efb7 Bug 1359341 part 4 - Optimize initializing a nsBlockInFlowLineIterator for single-line blocks by skipping the search for aFindFrame. r=jfkthame
MozReview-Commit-ID: GpiNAzFhZeJ
2017-05-23 19:09:27 +02:00
Mats Palmgren
f9096282d3 Bug 1359341 part 3 - Propagate AreAllEarlierInFlowFramesEmpty() state on placeholders down the line. We can stop iterating siblings if we find a placeholder with a stored state. r=jfkthame
MozReview-Commit-ID: DNtcNIEwA5P
2017-05-23 19:09:27 +02:00
Jonathan Kew
6d345e8ee2 Bug 1365356 - patch 2 - Allow callers to pass an nsStyleDisplay in to FinishAndStoreOverflow, to avoid internal StyleDisplay() calls. r=mats 2017-05-17 15:47:31 +01:00