2599 Commits

Author SHA1 Message Date
Bobby Holley
283c85132a Bug 1334358 - Stop using CreateAnonymousFrames for scroll frame construction and remove the now-unused helper. r=bz 2017-01-27 16:13:35 -08:00
Bobby Holley
fd04f8fa75 Bug 1334358 - Stop using CreateAnonymousFrames for combo box creation. r=bz 2017-01-27 16:13:33 -08:00
Bobby Holley
0d6e9dc9ff Bug 1334247 - Add an explicit hook for the nsComboboxControlFrame case, and eliminate nsIAnonymousContentCreator::CreateFrameFor. r=bz 2017-01-26 15:33:06 -08:00
Bobby Holley
6a150c778b Bug 1329854 - Check IsInStyleRefresh for all the servo-related handling in nsCSSFrameConstructor::Content{Appended,RangeInserted}. r=heycam 2017-01-12 17:33:07 -08:00
Bobby Holley
0574db6b6e Bug 1329854 - Call NoteDirtyDescendants when frame construction bails out due to lack of a container frame. r=heycam 2017-01-12 17:33:01 -08:00
Bobby Holley
004deddec2 Bug 1330401 - Don't render explicit children of bound elements with no insertion points. r=bz 2017-01-11 21:08:03 -08:00
Bobby Holley
09ce7e77ed Bug 1325734 - Simplify ElementData and eliminate the concept of consuming styles. r=emilio 2017-01-09 11:50:16 -08:00
Ryan VanderMeulen
1e6f972917 Merge inbound to m-c. a=merge 2017-01-07 11:22:47 -05:00
Emilio Cobos Álvarez
d449269afd Bug 1329200: Remove unused FrameManager global generation counter. r=xidorn
MozReview-Commit-ID: AXkaZYxpK2y

--HG--
extra : rebase_source : a02753e044fb89d4ea6a476e4b8f3e9fc0e4eb0c
2017-01-06 16:03:41 +01:00
Daniel Holbert
2bdeb3ab01 Bug 1320484 part 2: Wrap abspos placeholders in anonymous flex items, in flex containers that are really emulating legacy -webkit-box containers. r=mats
This changeset is intended to revert the logic from "Bug 1269045 part 3" [1],
*specifically* for legacy "-webkit-box"/"-webkit-inline-box" flex containers.

[1]  https://hg.mozilla.org/mozilla-central/rev/707b2ab5879d

MozReview-Commit-ID: vc4TuAoLai

--HG--
extra : rebase_source : 3cc143055fc46851e882d48df2bd913ca1487793
2017-01-04 20:31:17 -08:00
Daniel Holbert
3ee9d5690d Bug 1320484 part 1: Improve documentation for debug-only function FrameWantsToBeInAnonymousItem(), & change its arg from nsIAtom* to nsIFrame*. r=mats
This patch doesn't affect behavior at all -- it just refactors the
sanity-checking function "FrameWantsToBeInAnonymousItem()", so that the next
patch in this series can give it a new special case that checks a state bit on
the container frame.

This patch renames "parent" to "container" in this function's variable-names,
for clarity, because when this function returns true, the flex/grid container
is actually NOT expected to be the parent of aFrame.  Rather, it's expected to
be the grandparent, and the anonymous flex/grid item would be the parent.  So,
"aContainerFrame"/"containerType" is a bit more accurate (representing the
flex/grid container for aFrame).

Also worth mentioning: this patch makes FrameWantsToBeInAnonymousItem() perform
its own local GetType() call, instead of accepting an already-queried GetType()
result from the caller (as it previously did).  Technically this could cause a
slight perf hit, but it doesn't really matter since this is in "#ifdef DEBUG"
sanity-checking code anyway.  We could keep the nsIAtom* as an additional arg
to avoid this new call, but it seems better to fall on the side of simplicity &
just look up GetType() independently, rather than complicating the function
signature with an extra arg.

MozReview-Commit-ID: 4oJFkQMuH9c

--HG--
extra : rebase_source : 3b5d60d8c15e69470f450168698b855e353486d3
2017-01-04 20:29:19 -08:00
Timothy Nikkel
24281c4a15 Bug 1328202. Remove unused variable mGfxScrollFrame in nsCSSFrameConstructor. r=mats 2017-01-02 22:07:51 -06:00
Cameron McCormack
e50e656e7d Bug 1315155 - Part 1: Encapsulate nsStyleContentData. r=xidorn
MozReview-Commit-ID: LfEMxyM5meF
2016-10-20 10:22:46 +08:00
Mats Palmgren
6aead680d1 Bug 1322191 part 2b - Replace "NS_BLOCK_FLOAT_MGR | NS_BLOCK_MARGIN_ROOT" with NS_BLOCK_FORMATTING_CONTEXT_STATE_BITS. r=dholbert 2016-12-23 19:11:04 +01:00
Mats Palmgren
46f54ec32b Bug 1322191 part 2 - [css-display] Implement layout for display:flow-root. r=dholbert 2016-12-23 19:11:03 +01:00
Boris Zbarsky
02a4004751 Bug 1321803 part 3. Don't claim that we forced a non-scrollable block for <body> elements in a print presentation that would have propagated their scrollbars to the viewport. We do still want to create a non-scrollable block for them, though. r=dbaron
--HG--
rename : layout/reftests/printing/129941-1a.html => layout/reftests/printing/129941-1c.html
rename : layout/reftests/printing/129941-1b.html => layout/reftests/printing/129941-1d.html
rename : layout/reftests/printing/129941-1b.html => layout/reftests/printing/129941-1e.html
rename : layout/reftests/printing/129941-1-ref.html => layout/reftests/printing/1321803-1-ref.html
rename : layout/reftests/printing/129941-1a.html => layout/reftests/printing/1321803-1a.html
2016-12-22 17:42:22 -08:00
Jessica Jong
556aae19f0 Bug 1286182 - Implement the layout for <input type=date>. r=mconley,smaug
--HG--
rename : dom/html/test/forms/test_input_time_focus_blur_events.html => dom/html/test/forms/test_input_datetime_focus_blur_events.html
2016-12-19 00:50:00 +08:00
Robert Longson
1bae76206e Bug 1239100 - Implement SVGGeometryElement interface. r=cam r=peterv
--HG--
rename : dom/svg/nsSVGPathGeometryElement.cpp => dom/svg/SVGGeometryElement.cpp
rename : dom/svg/nsSVGPathGeometryElement.h => dom/svg/SVGGeometryElement.h
rename : dom/svg/nsSVGPolyElement.cpp => dom/svg/SVGPolyElement.cpp
rename : dom/svg/nsSVGPolyElement.h => dom/svg/SVGPolyElement.h
rename : layout/svg/nsSVGPathGeometryFrame.cpp => layout/svg/SVGGeometryFrame.cpp
rename : layout/svg/nsSVGPathGeometryFrame.h => layout/svg/SVGGeometryFrame.h
2016-12-18 11:11:47 +00:00
Sebastian Hengst
cdeb642a1b Backed out changeset 0b44e8715bf5 (bug 1239100) for build bustage (SVGGeometryElement.webidl missing). r=backout
--HG--
rename : dom/svg/SVGGeometryElement.cpp => dom/svg/nsSVGPathGeometryElement.cpp
rename : dom/svg/SVGGeometryElement.h => dom/svg/nsSVGPathGeometryElement.h
rename : dom/svg/SVGPolyElement.cpp => dom/svg/nsSVGPolyElement.cpp
rename : dom/svg/SVGPolyElement.h => dom/svg/nsSVGPolyElement.h
rename : layout/svg/SVGGeometryFrame.cpp => layout/svg/nsSVGPathGeometryFrame.cpp
rename : layout/svg/SVGGeometryFrame.h => layout/svg/nsSVGPathGeometryFrame.h
2016-12-18 11:42:51 +01:00
Robert Longson
783bfbb1e4 Bug 1239100 - Implement SVGGeometryElement interface. r=cam r=peterv
--HG--
rename : dom/svg/nsSVGPathGeometryElement.cpp => dom/svg/SVGGeometryElement.cpp
rename : dom/svg/nsSVGPathGeometryElement.h => dom/svg/SVGGeometryElement.h
rename : dom/svg/nsSVGPolyElement.cpp => dom/svg/SVGPolyElement.cpp
rename : dom/svg/nsSVGPolyElement.h => dom/svg/SVGPolyElement.h
rename : layout/svg/nsSVGPathGeometryFrame.cpp => layout/svg/SVGGeometryFrame.cpp
rename : layout/svg/nsSVGPathGeometryFrame.h => layout/svg/SVGGeometryFrame.h
2016-12-18 09:54:02 +00:00
Bobby Holley
2207c01808 Bug 1322945 - Change skip_root to unstyled_children_only and use StyleNewChildren in more places. r=heycam
I noticed that our current behavior in ContentRangeInserted is incorrect. Unlike
ContentInserted (where this code lived originally), ContentRangeInserted takes a
start and end element. I'm not sure if we ever take that path for new content that
needs style, but it seemed sketchy. And generally, it seems nice to just always
style new content the same way (though we still need to style NAC by the subtree
root, since it hasn't been attached to the parent yet).

For situations where there is indeed only one unstyled child, the traversal
overhead should be neglible, since we special-case the single-element in
parallel.rs to avoid calling into rayon.

Being more explicit about what we want here also makes us more robust against
the other handful of callpaths that can take us into
nsCSSFrameConstructor::{ContentRangeInserted,ContentAppended}. Currently we
can call StyleNewSubtree on an already-styled element via RecreateFramesForContent,
which triggers an assertion in the servo traversal.

MozReview-Commit-ID: DqCGh90deHH
2016-12-12 18:39:33 -08:00
Cameron McCormack
f5bb6f2dfd Bug 1322185 - Rename some StyleDisplay enum values for consistency. r=xidorn
MozReview-Commit-ID: K27LmXKWNdk
2016-12-05 21:36:28 -10:00
Phil Ringnalda
2edc2d42db Merge m-i to m-c, a=merge
MozReview-Commit-ID: ByPMe4s1FrG
2016-12-02 22:17:31 -08:00
Tomislav Jurin
348bfffc19 Bug 1296189 - Replace NS_RUNTIMEABORT("some string literal message") with MOZ_CRASH(). r=froydnj 2016-12-02 13:46:53 -08:00
Daniel Holbert
a720a44ada Bug 1321698 part 2: Use the new frame state bit to check for -webkit-box containers. r=mats
Note that at the callsites in nsCSSFrameConstructor.cpp, we have to also check
the frame type (since the frame state bit is in a range of bits whose meaning
differs depending on frame type).  The first change in this patch is the
addition of a convenience fucntion that checks both the frame type as well as
the frame state bit.

MozReview-Commit-ID: DEOThTX5NAO

--HG--
extra : rebase_source : 95e86eec663b3ef2e7bb86214871fcd3ea86057c
2016-12-02 10:32:31 -08:00
Ting-Yu Lin
4174a3a87e Bug 1304598 Part 3 - Rename nsPresShell.h/cpp to PresShell.h/cpp, and move exported header to mozilla/ subdir. r=dholbert
The class PresShell doesn't have ns-prefix, so it's better to drop ns-prefix
in the file names to avoid confusion.

MozReview-Commit-ID: IljxsF5CVjh

--HG--
rename : layout/base/nsPresShell.cpp => layout/base/PresShell.cpp
rename : layout/base/nsPresShell.h => layout/base/PresShell.h
extra : rebase_source : e73a6873f360a7223d87bd22d9854fc9603c499f
2016-11-30 11:14:28 +08:00
Mats Palmgren
7c01c6afca Bug 1279354 part 1 - Always call SetPrimaryFrame for NS_FRAME_ANONYMOUSCONTENTCREATOR_CONTENT frames (unless there is one already), including when mCreatingExtraFrames is true. r=dholbert 2016-11-28 23:00:20 +01:00
Bobby Holley
f8c9d884fc Bug 1317016 - Basic infrastructure for RestyleHint-driven traversal. r=emilio
MozReview-Commit-ID: 7wH5XcILVmX
2016-11-25 10:06:39 -08:00
Xidorn Quan
5c2af0823d Bug 1308848 - Not request style of comment node when checking valid sibling. r=bz
MozReview-Commit-ID: 6Sq8C2LUkpT

--HG--
extra : rebase_source : 2db641f09e66b7e5f1e6d48deb5bfb5fa9026948
2016-10-17 17:29:38 +11:00
Ting-Yu Lin
55e3c801ba Bug 1271549 - Remove details and summary preference. r=bz
Bug 1259889 Part 2 [1] cannot be reverted cleanly, so I manually undo those
changes in this patch. That is, remove the ability for html.css to
invalidate dynamically since it was added specifically for details element.

Although reftest-stylo.list explicit mentions "DO NOT EDIT!", but I still
remove details pref from the file, since it doesn't harm to edit it anyway.

[1] https://hg.mozilla.org/mozilla-central/rev/30aaf3805b56

MozReview-Commit-ID: FsyTGQTxujh

--HG--
extra : rebase_source : 25e5a05a8a5a47642772da69f427631fa07e232d
2016-11-16 14:02:58 +08:00
Daniel Holbert
d7a39cb724 Bug 1269045 part 4: Drop now-obsolete parameter from anonymous flex/grid-item wrapping functions. r=mats
MozReview-Commit-ID: 5rGemcMMOhl
2016-10-31 08:58:18 -07:00
Daniel Holbert
3903256ea3 Bug 1269045 part 3: Stop wrapping placeholder frames in anonymous flex items. r=mats
This patch also:
 * Removes some now-unnecessary code from nsFlexContainerFrame, which was for jumping from wrapped-placeholders to their out-of-flow frames (for DOM comparisons). This code is now unnecessary because placeholders won't be wrapped anymore.
 * Updates some reftests with abspos content to match the updated spec's expectations, with one marked as "fails" for the time being (until bug 1269046 implements css box alignment, which we need to render that test correctly).

MozReview-Commit-ID: 8canWfXk6Kf
2016-10-31 08:58:17 -07:00
Carsten "Tomcat" Book
9031c83f32 Merge mozilla-central to autoland 2016-10-26 17:14:27 +02:00
Mantaroh Yoshinaga
ed9cb5c860 Bug 1287983 part 5 - Clarify the function name of creating transition. r=hiro
MozReview-Commit-ID: AW5qD8uBQxf

--HG--
extra : rebase_source : 5cc8b81bec1db0b40b420bc539f03f6307879cb0
2016-10-19 15:16:52 +09:00
Jessica Jong
e732e68921 Bug 1310076 - Add 'datetime-local' to the list of valid types attributes for <input>. r=smaug 2016-10-24 03:35:00 +02:00
Ryan VanderMeulen
75888fe1aa Merge autoland to m-c on a CLOSED TREE. a=merge 2016-10-21 17:12:27 -04:00
Ryan VanderMeulen
5c4d7020f2 Merge m-c to inbound. a=merge 2016-10-21 11:08:45 -04:00
Ting-Yu Lin
7c761e8be7 Bug 1309445 - Convert FrameConstructionItemList::mItems to use mozilla::LinkedList. r=dholbert
The major change to the Iterator is due to the fact that the end of a
LinkedList is represented by nullptr.

Also delete the type conversion functions which are no longer needed.

MozReview-Commit-ID: 2lYtFW9pSon

--HG--
extra : rebase_source : c822e937679e57a9f2d3ab034e5147fc3aea9e8e
2016-10-18 15:50:27 +08:00
Ting-Yu Lin
a8da0f6a97 Bug 1311277 Part 3 - Use LinkedList's move assignment in FCItemIterator::AppendItemsToList. r=froydnj
MozReview-Commit-ID: LLF519q9gcG

--HG--
extra : rebase_source : 161f0583f6b3e9d61532f29bc68d9c78daa5d6cb
2016-10-19 13:56:12 +08:00
Bobby Holley
062d98f178 Bug 1292729 - Style text nodes on the main thread. r=heycam
MozReview-Commit-ID: CroFtWpuIrO
2016-10-25 20:10:04 -07:00
Mats Palmgren
4ee6a90bbb Bug 1308793 - Crash when setting display:[inline-]{flex,grid} or columnset properties on a SVG <text> element. r=tn 2016-10-09 22:34:07 -05:00
Jessica Jong
b3014cc00b Bug 1288591 - Implement the layout for <input type=time>. r=mconley, r=dholbert, r=smaug 2016-10-06 00:17:00 -04:00
Mats Palmgren
d7f4c1f451 Bug 984869 - Add support for display:flex/grid and columnset layout to <button>. r=tn 2016-10-06 22:43:22 +02:00
Ting-Yu Lin
570d1f0e83 Bug 1304441 Part 3 - Insert main summary's frame construction item at front of the list. r=bz
Change the logic that moves the main summary to the front from operating
on generated frames in DetailsFrame::SetInitialChildList() to operating
on frame construction item list in AddFrameConstructionItemsInternal()
so that it will be correct when cooperating with ::first-line.

The root cause of the bug reported is because when specifying
::first-line on details element, the first frame of summary element,
which is generated due to ib-split, will be wrapped in nsFirstLineFrame.
The original code fails to find the summary frame in the wrapper frame
and triggers assertion because of the second ib-split summary frame. To
fix that, we need to descend into the child list of wrapper frames when
checking the main summary.

Add original test case as a crashtest as well as reftests to clearly
reproduce the issue.

Note that in the reftest, the blue color in ::first-line is applied
incorrectly to the second line in the summary due to bug 520605.

MozReview-Commit-ID: Bv4Vcvxp6pY
2016-10-05 14:43:32 +08:00
Ting-Yu Lin
8ccd148e08 Bug 1304441 Part 1 - Remove unneeded check when constructing frame for summary. r=bz
SummaryFrame had been removed in bug 1258657, so now HTMLSummaryElement
is always rendered as an ordinary inline or block frame. Therefore, the
check in FindHTMLData is not needed anymore.

MozReview-Commit-ID: Ikxla6QoNLT
2016-10-05 14:43:31 +08:00
Daniel Holbert
0b7b1fc98b Bug 1309119 part 3: Change nsCSSFrameConstructor to use nsFlexContainerFrame::IsLegacyBox instead of its own less-complete version. r=mats
MozReview-Commit-ID: 5sElULdTkOT
2016-10-20 13:23:51 -07:00
Bobby Holley
6351b3ffb8 Bug 1304913 - Have Servo manage node data directly without FFI calls. r=Manishearth
MozReview-Commit-ID: H8f8VP18TbM
2016-09-23 15:58:48 -07:00
Ting-Yu Lin
2884834832 Bug 1301630 - Remove nsBlockFrame::SetFlags(). r=bz
Per bug 1299753 comment 20, SetFlags() is designed for flag propagation
to continuations during block reflow. To avoid misuse, I expand
SetFlags() directly in the only reasonable caller nsBlackFrame::Init(),
and replace other usages by AddStateBits().

MozReview-Commit-ID: GsbE2Z0Rps1

--HG--
extra : rebase_source : 72a64e9218870d638f67d1b586f533cd7d16c491
2016-09-09 15:26:57 +08:00
Manish Goregaokar
aad318e17a Bug 1300337 - Replace None_ variants from nsStyleConsts.h with None; r=heycam,TYLin
MozReview-Commit-ID: CxHzbEzjLxT

--HG--
extra : rebase_source : 232f90b8b107f7fb49f47a29a4e493660b8a7d87
2016-09-04 00:16:58 +05:30
Ting-Yu Lin
2f177a0a73 Bug 1299753 Part 3 - Reuse ConstructScrollableBlock to build scrollable DetailsFrame. r=bz
MozReview-Commit-ID: 1yAhuKqurHf

--HG--
extra : rebase_source : 2a77db937d09f98b81dd73e61419ebde82a3ad48
2016-09-08 15:38:06 +08:00