Commit Graph

2555 Commits

Author SHA1 Message Date
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
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
Ting-Yu Lin
13f0d4632f Bug 1299753 Part 2 - Create block formatting context for DetailsFrame if needed. r=bz
nsCSSFrameConstructor::ConstructNonScrollableBlock() has logic to
determine whether to create a block formatting context for a block
frame. I refactor the function to make it reusable by
nsCSSFrameConstructor::ConstructDetailsFrame().

Also, make NS_NewBlockFrame() accept two arguments as other frame
factory functions so that it could be pointed by BlockFrameCreationFunc.
NS_NewBlockFormattingContext is changed accordingly.

The construction for a scrollable DetailsFrame will be further revised
in Part 3.

MozReview-Commit-ID: 8TwG9YMyGva

--HG--
extra : rebase_source : fffdd974df81a809a607491d2534aa8dd2d13ab1
2016-09-07 14:45:42 +08:00
Ting-Yu Lin
c719ccc151 Bug 1299753 Part 1 - Use NS_NewBlockFormattingContext() in ConstructFieldSetFrame(). r=bz
MozReview-Commit-ID: E6lvCRIDROY

--HG--
extra : rebase_source : 52f59f6db123e47c1230dc19c49d2dbf7c6cb0d6
2016-09-05 15:36:53 +08:00
Andi-Bogdan Postelnicu
52292ba57b Bug 1300518 - removed nullcheck for parentFrame in nsCSSFrameConstructor::IsValidSibling. r=xidorn
MozReview-Commit-ID: DVydlxB65wM

--HG--
extra : rebase_source : 8dbe5555a7ad60f09f960d806b7439d149cb1dcd
2016-09-05 18:16:21 +03:00
Cameron McCormack
524cf8e41b Bug 1297963 - Part 3: Use OMT-safe function for -moz-binding comparisons in CalcDifference. r=emilio
MozReview-Commit-ID: 6n7j2DrAVFv
2016-09-03 00:22:48 +10:00
Emilio Cobos Álvarez
619cb14d87 Bug 1299066: Make NS_STYLE_DISPLAY_* an enum class. Prefer indexing instead of linear search in the frame constructor r=heycam,bz
The main renaming was generated with the following python script:

```

import sys
import re

CAMEL_CASE_REGEX = re.compile(r"(^|_|-)([A-Z])([A-Z]+)")
DISPLAY_REGEX = re.compile(r"\bNS_STYLE_DISPLAY_([^M][A-Z_]+)\b")

def to_camel_case(ident):
  return re.sub(CAMEL_CASE_REGEX,
                lambda m: m.group(2) + m.group(3).lower(), ident)

def constant_to_enum(constant):
  return "StyleDisplay::" + to_camel_case(constant) + ("_" if constant == "NONE" else "")

def process_line(line):
  return re.sub(DISPLAY_REGEX,
                lambda m: constant_to_enum(m.group(1)), line)

lines = []
with open(sys.argv[1], "r") as f:
  for line in f:
    lines.append(process_line(line))

with open(sys.argv[1], "w") as f:
  for line in lines:
    f.write(line)
```

And the following shell commands:

```
find . -name '*.cpp' -exec python display.py {} \;
find . -name '*.h' -exec python display.py {} \;
```

MozReview-Commit-ID: 91xYCbLC2Vf
2016-09-01 20:41:17 -07:00
Ryan VanderMeulen
23932b1a58 Backed out 5 changesets (bug 1298768, bug 1297963) for causing widespread mochitest-bc failures.
Backed out changeset dedd56fa5c54 (bug 1297963)
Backed out changeset bc1ac59cfe8f (bug 1297963)
Backed out changeset a2e337d5aa02 (bug 1297963)
Backed out changeset e73da71408a3 (bug 1297963)
Backed out changeset 56f8bca8f8e8 (bug 1298768)

CLOSED TREE
2016-09-01 08:05:43 -04:00
Cameron McCormack
04fb0dfd24 Bug 1297963 - Part 3: Use OMT-safe function for -moz-binding comparisons in CalcDifference. r=emilio
MozReview-Commit-ID: 2PkR5tUMMy0
2016-08-29 18:17:26 +08:00
Bobby Holley
7681e4498e Bug 1292662 - Add an API for the Servo style system to traverse anonymous children. r=heycam 2016-08-25 21:36:43 -07:00
Bobby Holley
263669837b Bug 1292279 - Clear up the semantics of our Servo traversal APIs. r=heycam 2016-08-25 21:34:31 -07:00
Boris Zbarsky
adcdc0aaed Bug 1297835. Don't suppress the scroll bits of a non-open <details> that has the appropriate overflow styles. r=TYLin 2016-08-25 14:35:33 -04:00
Jinank Jain
f2776091ea Bug 712936 - Convert users of PR_STATIC_ASSERT to C++11 static_assert(). r=Ms2ger
--HG--
extra : rebase_source : b3e4c3e7c81799f2b1f3ec62ba3ff3b5d3adba27
2016-08-23 11:24:54 -04:00
Xidorn Quan
928683d762 Bug 1291707 part 4 - Not recalc quotes and counters in EndUpdate. r=bz
It will be called in the next flush, so no need to do it eagerly.

MozReview-Commit-ID: 1B8pzn0dqBO

--HG--
extra : rebase_source : 79a4203d13a2b9d48cd9c9d6fa5c5e08974d4765
extra : source : 162b17483adb18d3d05d866853fb8f841dee846d
2016-08-23 10:31:26 +10:00
Mats Palmgren
26299042fc Bug 1288946 - Propagate the mParentFrame from the nested GetInsertionPrevSibling call -- it may be a continuation. r=heycam 2016-08-18 18:21:26 +02:00
Jessica Jong
5a9b39d967 Bug 1278738 - Add 'week' to the list of valid types attributes for <input>. r=smaug 2016-08-15 23:15:00 -04:00
L. David Baron
d8d459481c Bug 1294918 - Use helper method nsIFrame::IsFixedPosContainingBlock. r=dholbert
MozReview-Commit-ID: 5fdGqLSOjvs

--HG--
extra : rebase_source : c06406f5022b45e9bc995af8e867fe3f44441d23
2016-08-12 18:39:45 -07:00
L. David Baron
6660436867 Bug 1294918 - Fix spelling of method name nsIFrame::IsAbsPosContainingBlock. r=dholbert
This misspelling was introduced in bug 1125767, changeset b9951cca6d1f.

MozReview-Commit-ID: KQNlLelY2Kn

--HG--
extra : rebase_source : 7b2b8379da23b06737b462dd4c316b5758d807a9
2016-08-12 18:39:45 -07:00
Emilio Cobos Álvarez
789c630dba Bug 1290335: Reuse the OverflowChangedTracker between both restyle managers. r=heycam
MozReview-Commit-ID: objnqfecZD
2016-08-03 15:11:15 -07:00
Bobby Holley
ff7b93c2e8 Bug 1290214 - Remove NS_ERROR for XBL stylesheet management. r=emilio 2016-07-28 17:25:49 -07:00
Bobby Holley
46c7fed6d0 Bug 1289624 - Switch to UniquePtr for managing ServoNodeData. r=heycam 2016-07-27 13:34:55 -07:00
Bobby Holley
64639661c1 Bug 1289620 - Hook up initial styling. r=heycam
Aside from the parser-side hacks, this should subsume all the current scattered
logic in the stylo tree to handle initial styling.
2016-07-27 09:44:25 -07:00
Emilio Cobos Álvarez
1a49c35a07 Bug 1286445: stylo: Support restyles of non-pseudo content on state change. r=heycam
This includes, for example :hover.

Also removes the call to IsStyledByServo() in the document constructor, it's not
only unnecessary, but also we call UpdateStyleBackendType() too early.

MozReview-Commit-ID: 4YfCdmLoSxu
2016-07-16 16:22:12 -07:00
Emilio Cobos Álvarez
474ff66ca4 Bug 1285474: stylo: Add dirtiness-tracking hooks for Servo and convenient methods. r=bholley
Also, guard with asserts the access to the new shared flags.

MozReview-Commit-ID: H9UFFHRPmiu
2016-07-12 00:33:57 -07:00
Jessica Jong
ba75f42662 Bug 1278737 - Add 'month' to the list of valid types attributes for <input>. r=smaug
--HG--
rename : dom/html/test/forms/test_experimental_forms_pref.html => dom/html/test/forms/test_input_types_pref.html
2016-07-03 23:19:00 +02:00
Sebastian Hengst
f74056ca75 Backed out changeset 444a4a7233f7 (bug 1278737) for frequent web platform test 2 failure on OSX in form-validation-reportValidity.html. r=backout
--HG--
rename : dom/html/test/forms/test_input_types_pref.html => dom/html/test/forms/test_experimental_forms_pref.html
2016-07-01 20:04:58 +02:00
Jessica Jong
7db8d433f6 Bug 1278737 - Add 'month' to the list of valid types attributes for <input>. r=smaug
--HG--
rename : dom/html/test/forms/test_experimental_forms_pref.html => dom/html/test/forms/test_input_types_pref.html
2016-06-29 23:16:00 +02:00
Timothy Nikkel
9fb446699f Bug 1278455. If the root element is grid or flex, allow it to be an absolute containing block. r=dholbert
If the root element is block or table then the PushAbsoluteContainingBlock call happens in ConstructBlock and ConstructTable respectively.
2016-06-26 12:25:11 -05:00
Astley Chen
5bcbb06586 Bug 1277131 : Part 3 - rename nsGkAtoms::tableOuterFrame and nsCSSAnonBoxes::tableOuter. r=heycam
MozReview-Commit-ID: 7GIjtUH9hdZ

--HG--
extra : rebase_source : 818cead88e560effa402e183b4a642fd1a7b9191
2016-06-16 13:35:43 +01:00
Astley Chen
1fcb0ee95d Bug 1277131 : Part 1 - rename nsTableOuterFrame to nsTableWrapperFrame. r=heycam
MozReview-Commit-ID: KrSHLbmovTM

--HG--
rename : layout/tables/nsTableOuterFrame.cpp => layout/tables/nsTableWrapperFrame.cpp
rename : layout/tables/nsTableOuterFrame.h => layout/tables/nsTableWrapperFrame.h
extra : rebase_source : 730a73b8439f1f5c5ccdb32b241deda5224c321c
2016-06-16 13:14:08 +01:00
Cameron McCormack
9f068966f6 Bug 1275452 - Part 2: Eagerly restyle native anonymous content in stylo. r=bholley
--HG--
extra : rebase_source : d0e728b4edcd32482743e98f5aecd22c669354f1
2016-05-25 16:55:49 +10:00
Robert Longson
4236a89dfc Bug 1260032 - drop support for altGlyph as a tspan. r=cam r=peterv (DOM Peer) 2016-05-10 10:02:20 +01:00
Cameron McCormack
3aadcf811c Bug 1268404 - Part 1: Split out ResolveStyleForText from ResolveStyleForNonElement and pass in the text node. r=bholley 2016-04-29 14:01:44 +10:00
Xidorn Quan
d5599a3104 Bug 1097499 part 3 - Add a separate anonbox for text nodes. r=heycam
MozReview-Commit-ID: 1GfoFEGhyka

--HG--
extra : source : 38b806fd0fa54934439db0de75600def43142272
2016-04-22 09:18:41 +10:00
L. David Baron
376413eeb5 Bug 1053986 - Rename nsIFrame::IsBoxFrame to IsXULBoxFrame. r=dholbert
Written purely with sed, over .h and .cpp files in layout/.

But with additional manual changes in accessible/.

MozReview-Commit-ID: W0wUPoQsVH
2016-04-20 21:28:30 -07:00
Ting-Yu Lin
727557d79f Bug 1258657 Part 2 - Remove SummaryFrame. r=bz
We can use nsBlockFrame to render summary elements.

This change undoes "Bug 591737 - Add SummaryFrame" and remove
summaryFrame usage in DetailsFrame and nsCSSFrameConstructor.

MozReview-Commit-ID: 4aJvHVPfsBb

--HG--
extra : rebase_source : 8e197fa61cfcbaf066a8a510aef7c92adddd30f2
2016-04-13 13:34:14 +08:00
Jonathan Watt
de4c3d11fe Bug 1263787 - Kill off the deprecated nsINode::GetCrossShadowCurrentDoc. r=baku 2016-03-31 13:20:14 +01:00
Jonathan Watt
9480920b04 Bug 1263785 - Kill off the deprecated nsINode::GetCurrentDoc. r=baku 2016-03-31 12:46:32 +01:00
Xidorn Quan
15be78d195 Bug 1236828 part 2 - Make frame constructor support absolutely-positioned top layer frame. r=bz
MozReview-Commit-ID: 4imCeroEaVi

--HG--
extra : rebase_source : fcdfc7b4a3b2a7536a980d6fa3318fdb4e3d1778
2016-04-11 15:30:48 +10:00
Bobby Holley
5790b832fa Bug 1261452 - do_AddRef shouldn't require an rvalue-reference. r=froydnj 2016-04-01 19:14:42 -07:00
Nicholas Nethercote
d376f9f82e Bug 1260871 - Remove do_GetAtom() and rename NS_NewAtom() as NS_Atomize(). r=erahm.
do_GetAtom() is currently just a synonym for NS_NewAtom().

--HG--
extra : rebase_source : f4409784f931616cbc300591e6b843d30805c273
2016-03-29 10:09:43 +11:00
Daniel Holbert
8b9d86b0ef Bug 1236400 part 2: Extend NeedsAnonFlexOrGridItem() & related code to wrap all inline-level -webkit-box children in an anonymous flex item. r=mats
MozReview-Commit-ID: LK4VW0xSI5m
2016-03-24 09:55:11 -07:00
Daniel Holbert
37e8c9d5cc Bug 1236400 part 1: Add internal enum values to represent "display: -webkit-box" & "display: -webkit-inline-box". r=mats
These new enum values are added with same behavior as their modern flexbox
equivalents -- they're hooked up to NS_NewFlexContainerFrame, and they're
listed alongside the modern flexbox enums in 'switch' & 'if' statements.

There's one exception, which I call out with a comment at the end of the patch:
we don't treat -webkit-box the same as flexbox in IsFlexOrGridDisplayType(),
because that method is used to determine whether we should blockify
inline-level children of a flex/grid container, and we don't want to blockify
any children of a -webkit-box. (Instead, we want to wrap them in an anonymous
flex item. That happens in the next patch.)

MozReview-Commit-ID: 9BB4Ib2KpvE
2016-03-24 09:55:11 -07:00
Mats Palmgren
62b5045e23 Bug 1233191 part 1 - Implement sanity checks on the flex/grid container child frame list. Remove the anon grid item sanity checks that the frame constructor now does instead. r=dholbert 2016-03-18 19:52:08 +01:00
Mats Palmgren
dab9dc1beb Bug 1144096 part 7 - [css-grid] Don't create PageBreakFrames inside a Grid container. The container will handle forced breaks on its items. r=dholbert 2016-03-11 17:39:26 +01:00
Mats Palmgren
9ea79df69f Bug 1144096 part 6 - [css-grid] Add support for creating Grid container continuations and deal with overflow containers. r=dholbert 2016-03-11 17:39:26 +01:00