Commit Graph

3009 Commits

Author SHA1 Message Date
Nathan Froyd
e3cc1897b1 Bug 1492894 - part 3 - eliminate already_AddRefed variables in layout/; r=emilio
We need to disallow these to fix our static analysis, which should have
already been disallowing them.
2018-09-21 16:45:49 -04:00
Jean-Luc Bonnafoux
3cddd11ff8 Bug 1491639 - rename function IS_TABLE_CELL r=dbaron
rename function IS_TABLE_CELL

Differential Revision: https://phabricator.services.mozilla.com/D5974
2018-09-18 01:29:19 +00:00
Emilio Cobos Álvarez
9bda9d152b Bug 1488817 - Remove the has-first-letter-child bit from the block when the first-letter is removed from a first-line. r=bzbarsky
Always new reasons to remove the first-line frame and this reparenting stuff...
I hope I can get to it.

Differential Revision: https://phabricator.services.mozilla.com/D5075
2018-09-17 17:36:06 +00:00
Ting-Yu Lin
2db09d4b3b Bug 1489015 - Make NS_NewPlaceholderFrame() return nsPlaceholderFrame* to avoid type casting r=bzbarsky
Depends on D5112

Differential Revision: https://phabricator.services.mozilla.com/D5113
2018-09-14 17:14:53 +00:00
Ting-Yu Lin
d686296f3f Bug 1489015 - Remove nsAbsoluteItems::AddChild() and add an assertion in nsFrameItems::AddChild() r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D5112
2018-09-14 17:14:51 +00:00
Cameron McCormack
8dcdbfc698 Bug 1489529 - Update comments to no longer point to nsRuleNode. r=emilio
There are a few mentions of nsRuleNode left but they are mostly
historical references so it makes sense to keep them.

Differential Revision: https://phabricator.services.mozilla.com/D5505
2018-09-12 17:37:37 +10:00
Ting-Yu Lin
956a67f2dc Bug 1346983 - Add ColumnSetWrapperFrame to wrap nsColumnSetFrames and column span frames. r=dbaron
ColumnSetWrapperFrame is needed to implement column-span. Patches in bug
1421105 will utilize this frame.

Co-authored-by: Neerja Pancholi <npancholi@mozilla.com>

Differential Revision: https://phabricator.services.mozilla.com/D5092
2018-09-06 17:58:24 +00:00
Ting-Yu Lin
4c8d4b5799 Bug 1485495 - Use AutoRestore to restore aState.mAdditionalStateBits. r=dholbert
Depends On D4020

Differential Revision: https://phabricator.services.mozilla.com/D4021
2018-08-27 18:38:58 +00:00
Ting-Yu Lin
0a520e7c33 Bug 1484360 - Remove UNSET_DISPLAY in nsCSSFrameConstructor. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D3686
2018-08-18 14:07:24 +00:00
Ting-Yu Lin
8f5482e772 Bug 1484306 Part 3 - Use nsFrameList::Split() to replace the usage of FindFirstBlock(). r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D3645
2018-08-17 22:14:26 -07:00
Ting-Yu Lin
8d3db5f24a Bug 1484306 Part 2 - Add nsFrameList::Split(), and use it to replace the usage of FindFirstNonBlock(). r=dholbert
This API is similar to Vec::Split() in Rust.
https://doc.rust-lang.org/std/vec/struct.Vec.html#method.split

Differential Revision: https://phabricator.services.mozilla.com/D3644
2018-08-17 22:14:25 -07:00
Ting-Yu Lin
16f802f127 Bug 1484306 Part 1 - Add nsFrameList::FrameLinkEnumerator::Find(). r=dholbert
Use it to implement FindFirstBlock() and FindFirstNonBlock(). This is a
demonstration on how Find() is used. The usage of them will be overhauled in
Part 2 and 3.

Differential Revision: https://phabricator.services.mozilla.com/D3642
2018-08-17 22:14:25 -07:00
Cameron McCormack
e84b70ae83 Bug 1482782 - Part 5: Move CSS anonymous box atoms to nsGkAtoms. r=njn,emilio
Summary: Depends On D3283

Reviewers: njn!, emilio!

Tags: #secure-revision

Bug #: 1482782

Differential Revision: https://phabricator.services.mozilla.com/D3284
2018-08-15 15:46:39 +10:00
Cameron McCormack
eb1c77b263 Bug 1482782 - Part 4: Move CSS pseudo-element atoms to nsGkAtoms. r=njn,emilio
Summary: Depends On D3282

Reviewers: njn!, emilio!

Tags: #secure-revision

Bug #: 1482782

Differential Revision: https://phabricator.services.mozilla.com/D3283
2018-08-15 15:46:00 +10:00
Narcis Beleuzu
ace8b010f2 Backed out 8 changesets (bug 1483121, bug 1482782) for build bustages on nsDirectoryService.cpp. CLOSED TREE
Backed out changeset 0a8334bbcf45 (bug 1483121)
Backed out changeset cb2dcb859071 (bug 1482782)
Backed out changeset c834d4ca2eef (bug 1482782)
Backed out changeset 887de0efbb67 (bug 1482782)
Backed out changeset 018fdb50a6be (bug 1482782)
Backed out changeset 33a8aa8096c9 (bug 1482782)
Backed out changeset e3632354f16e (bug 1482782)
Backed out changeset 46f8319bee82 (bug 1482782)
2018-08-15 09:14:41 +03:00
Cameron McCormack
f242832b4e Bug 1482782 - Part 5: Move CSS anonymous box atoms to nsGkAtoms. r=njn,emilio
Summary: Depends On D3283

Reviewers: njn!, emilio!

Tags: #secure-revision

Bug #: 1482782

Differential Revision: https://phabricator.services.mozilla.com/D3284
2018-08-15 15:46:39 +10:00
Cameron McCormack
a3c0cd4850 Bug 1482782 - Part 4: Move CSS pseudo-element atoms to nsGkAtoms. r=njn,emilio
Summary: Depends On D3282

Reviewers: njn!, emilio!

Tags: #secure-revision

Bug #: 1482782

Differential Revision: https://phabricator.services.mozilla.com/D3283
2018-08-15 15:46:00 +10:00
L. David Baron
f019ed6581 Bug 1479859 patch 1 - Make inline frames be abs-pos containing blocks for reasons other than being relatively positioned. r=emilio
The basic change here is making nsCSSFrameConstructor::ConstructInline
use the function nsIFrame::IsAbsPosContainingBlock rather than testing
for only one of the conditions in it (being relatively or absolutely
positioned).  The rest of the code changes follow from that change.

I tested locally that the added test fails without the patch and passes
with it (either with or without the next patch).

Note that this causes a regression of three web-platform-test reftests:
  testing/web-platform/tests/css/css-contain/contain-paint-002.html
  testing/web-platform/tests/css/css-contain/contain-paint-011.html
  testing/web-platform/tests/css/css-contain/contain-paint-012.html
which will be fixed in patch 4, since that fix is easier to write after
patch 2.

Differential Revision: https://phabricator.services.mozilla.com/D2813
2018-08-07 15:02:07 -07:00
Emilio Cobos Álvarez
56069dc7d1 Bug 1479528: Remove FrameConstructionItem::mHasInlineEnds. r=bz
It's write-only.

Looks like this became unused in bug 501847 when we changed how ib splits work
and no longer needed this information.

Differential Revision: https://phabricator.services.mozilla.com/D2521

MozReview-Commit-ID: GDwcheP3bV4
2018-08-03 09:12:31 +02:00
Emilio Cobos Álvarez
ddc0c5aed2 Bug 1479528: Remove FrameConstructionItem::mIsForSVGAElement. r=bz
It was needed presumably because XBL could override the tag name and what not.
But I removed that capability for elements other than XUL elements, so we can
just poke at the content directly.

Differential Revision: https://phabricator.services.mozilla.com/D2520

MozReview-Commit-ID: B5Ihu0gaNd8
2018-08-03 09:12:07 +02:00
Emilio Cobos Álvarez
00bc1c3a67 Bug 1479528: Move all the data-finding related stuff into a single function. r=dholbert
To make it hopefully a bit easier to follow.

Differential Revision: https://phabricator.services.mozilla.com/D2564

MozReview-Commit-ID: 2LMf7IXM1kr
2018-08-03 09:11:40 +02:00
Emilio Cobos Álvarez
207b87ae5f Bug 1479528: Move the XBL binding loads a bit more away. r=dholbert
They're pretty ugly...

Differential Revision: https://phabricator.services.mozilla.com/D2563

MozReview-Commit-ID: CUDUyfe9Bgp
2018-08-03 09:11:13 +02:00
Emilio Cobos Álvarez
3929396966 Bug 1479528: Make the ShouldSuppressFrameIn* functions take references. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D2562

MozReview-Commit-ID: 8lcn1XW4aik
2018-08-03 09:10:46 +02:00
Xidorn Quan
f21ef958b7 Bug 1479995 - Rename ScrollbarStyles to ScrollStyles. r=mstange
This change also renames several related functions, as well as fields,
and the header is moved into EXPORTS.mozilla given it is defined under
mozilla namespace.

MozReview-Commit-ID: LqCdcW8fmUN
2018-08-01 16:14:26 +10:00
Emilio Cobos Álvarez
bc847c0eef Bug 1479860: Remove unused aCompileEventHandlers argument from BindToTree. r=bz
Mostly automatic via sed. Only parts which I touched manually (apart from a
couple ones where I fixed indentation or which had mispelled arguments) are the
callers. I may have removed a couple redundant `virtual` keywords as well when
I started to do it manually, I can revert those if wanted.

Most of them are just removing the argument, but in Element.cpp I also added an
assertion for GetBindingParent when binding the ShadowRoot's kids (the binding
parent is set from the ShadowRoot constructor, and I don't think we bind a
shadow tree during unlink or what not which could cause a behavior difference).

Differential Revision: https://phabricator.services.mozilla.com/D2574

MozReview-Commit-ID: 2oIgatty2HU
2018-08-01 10:42:54 +02:00
Bogdan Tara
e428767209 Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-07-31 21:33:21 +03:00
Emilio Cobos Álvarez
b6d012a9a8 No bug - Fix two typos. r=me
MozReview-Commit-ID: F8vq8l4HwCQ
2018-07-31 19:24:23 +02:00
Nazım Can Altınova
78ddd2032e Bug 1414345 - Part 2: Add AutoProfilerLabels for all Frame Construction paths r=mstange
MozReview-Commit-ID: 4n65jAonwmA
2018-07-26 16:31:54 +02:00
Nazım Can Altınova
825d1c05f6 Bug 1414345 - Part 1: Add 'Frame Construction' markers to all frame construction paths r=mstange
MozReview-Commit-ID: 4s9MGljBqPp
2018-07-26 16:17:17 +02:00
Emilio Cobos Álvarez
b6d2dbb4fa Bug 1478391: Autogenerate StyleAppearance. r=jwatt
This builds on bug 1428676 and introduces StyleAppearance, which replaces the
NS_THEME_* constants.

Really sorry for the size of the patch.

There's a non-trivial change in the gtk theme, which I submitted separately as
bug 1478385.

Differential Revision: https://phabricator.services.mozilla.com/D2361

MozReview-Commit-ID: DiSmMWK7Krp
2018-07-26 17:06:17 +02:00
Ting-Yu Lin
30ab922fe9 Bug 1477871 - Extract the construction of nsColumnSetFrame into a helper function. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D2312
2018-07-25 17:40:50 +00:00
Emilio Cobos Álvarez
efa385c3a5 Bug 1478069: Remove ContentInfo::mChildren. r=bz
It's not needed anymore, since we tag the pseudo-elements at creation time for
styling.

Differential Revision: https://phabricator.services.mozilla.com/D2330

MozReview-Commit-ID: 7j4DVEHXYIC
2018-07-25 11:31:23 +02:00
Emilio Cobos Álvarez
7be7cf41df Bug 1478069: Use AddFrameConstructionItems for display: contents. r=TYLin
It's the same, and avoids a bit of duplication.

Differential Revision: https://phabricator.services.mozilla.com/D2329

MozReview-Commit-ID: LN5LjM4XFO4
2018-07-25 11:31:21 +02:00
Emilio Cobos Álvarez
1b1d889db5 Bug 1478069: Remove useless ping-pong between flattened and light child. r=TYLin
We verify the flattened tree is correct in VerifyFlatTree (in RestyleManager),
plus the post-condition still holds of course.

Differential Revision: https://phabricator.services.mozilla.com/D2331

MozReview-Commit-ID: 7ayEC2gSvYS
2018-07-25 11:31:20 +02:00
Emilio Cobos Álvarez
ef46e516eb Bug 1478069: Trivial frame constructor cleanup. r=TYLin
Using references helps to see when stuff can and cannot be null.

I removed useless aTag / aNamespaceId arguments which are useless now that XBL
can't override them (bug 1450617), so FindXULData is the only one that keeps
them alive.

Also, I took the liberty of renaming a few fooComputedStyle variables to just
fooStyle, and clarify naming in some pseudo-element-related functions to say
originating element (the spec term) and avoid confusing it with the generated
_moz_generated_content_before / _moz_generated_content_after element.

Note that this is a partial state, more stuff will come in the future.

Differential Revision: https://phabricator.services.mozilla.com/D2326

MozReview-Commit-ID: 39B30doREUH
2018-07-25 11:31:18 +02:00
Ting-Yu Lin
97574b3cb6 Bug 1477533 - Use static const class variable to represent column-count: auto. r=heycam
NS_STYLE_COLUMN_COUNT_UNLIMITED is unused, so I remove it.

MozReview-Commit-ID: HLHLn9ZbkUY
2018-07-20 17:09:31 -07:00
Emilio Cobos Álvarez
c97bcecad8 Bug 1450250: Make svg:use use an actual shadow tree. r=heycam
Summary:
This fixes a couple fuzz bugs and prevents special-casing <svg:use> even more in
bug 1431255.

Unfortunately not as many hacks went away as I'd have hoped, since we still need
to match document rules, see the linked SVGWG issues.

But blocks_ancestor_combinators goes away, which is nice since it's on a very
hot path.

Test Plan: WPT for style invalidation, covered by existing tests otherwise.

Reviewers: heycam

Tags: #secure-revision

Bug #: 1450250

Differential Revision: https://phabricator.services.mozilla.com/D2154

MozReview-Commit-ID: C4mthjoSNFh
2018-07-20 14:44:51 +02:00
Paolo Amadini
7853146e98 Bug 1472555 - Part 5 - Remove the listbox layout. r=bz,surkov
MozReview-Commit-ID: Bx1p1nTurCz
2018-07-18 11:23:32 +01:00
Ting-Yu Lin
0e32aa4630 Bug 1476358 - Replace while-loop with FindFirstBlock() in WrapFramesInFirstLineFrame(). r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D2193
2018-07-17 18:17:42 +00:00
Emilio Cobos Álvarez
40b062eb51 Bug 1473813: Don't make pseudo-elements replaced by content: url(..). r=bz
Differential Revision: https://phabricator.services.mozilla.com/D1996
2018-07-16 18:06:39 +02:00
Emilio Cobos Álvarez
675c4d2509 Bug 1472403: Simplify generated image content. r=bz,dholbert
This way we reuse the same machinery everywhere for the content property.

The only difference is that we need to look at the parent style for content
instead of just our style, and at a given index.

Again, this is fine because changing content reframes, so no chance to mess up.

This allows the generated content stuff to not implement nsImageLoadingContent
and all that stuff, nor deal with events, which makes it much simpler IMO.

Now it just tracks an index. We may not even need for it to be an HTML element,
but I've kept that for now.

I added a crashtest that used to crash because of the bogus
nsCSSFrameConstructor code which trusted the node name without checking it was
native anonymous.

Differential Revision: https://phabricator.services.mozilla.com/D1897

MozReview-Commit-ID: 1pAzIvRRVnL
2018-07-16 18:06:38 +02:00
shindli
6f3e5d99a3 Backed out 2 changesets (bug 1473813, bug 1472403) for bustages in /builds/worker/workspace/build/src/dom/base/MessageSender.cpp:24:19 on a CLOSED TREE
Backed out changeset 93e4dff7e346 (bug 1473813)
Backed out changeset 365a0841117a (bug 1472403)
2018-07-16 18:45:33 +03:00
Emilio Cobos Álvarez
7c273a32b2 Bug 1473813: Don't make pseudo-elements replaced by content: url(..). r=bz
Differential Revision: https://phabricator.services.mozilla.com/D1996
2018-07-16 17:30:15 +02:00
Emilio Cobos Álvarez
974cc4af8b Bug 1472403: Simplify generated image content. r=bz,dholbert
This way we reuse the same machinery everywhere for the content property.

The only difference is that we need to look at the parent style for content
instead of just our style, and at a given index.

Again, this is fine because changing content reframes, so no chance to mess up.

This allows the generated content stuff to not implement nsImageLoadingContent
and all that stuff, nor deal with events, which makes it much simpler IMO.

Now it just tracks an index. We may not even need for it to be an HTML element,
but I've kept that for now.

I added a crashtest that used to crash because of the bogus
nsCSSFrameConstructor code which trusted the node name without checking it was
native anonymous.

Differential Revision: https://phabricator.services.mozilla.com/D1897

MozReview-Commit-ID: 1pAzIvRRVnL
2018-07-16 17:30:14 +02:00
Brendan Dahl
e953e22cbd Bug 1466897 - Rename nsIRootBox to nsIPopupContainer. r=mats
MozReview-Commit-ID: D4GgReAEelG
2018-06-26 17:29:55 -07:00
Ciure Andrei
54bc7df58e Backed out 3 changesets (bug 1466897) for xpcshell failures test_ext_schemas_interactive.js and test_ext_contentscript_create_iframe.js CLOSED TREE
Backed out changeset 87bb8b686a7e (bug 1466897)
Backed out changeset 4443f1f6e8f3 (bug 1466897)
Backed out changeset 067ee6342782 (bug 1466897)
2018-07-03 06:03:15 +03:00
Brendan Dahl
ba413bdc00 Bug 1466897 - Rename nsIRootBox to nsIPopupContainer. r=mats
MozReview-Commit-ID: D4GgReAEelG
2018-06-26 17:29:55 -07:00
Emilio Cobos Álvarez
8d181f4ca3 Bug 1472443: Make StyleContentType an enum class. r=xidorn
Most of it is automated by:

  %s/eStyleContentType_/StyleContentType::/g
  %s/nsStyleContentType/StyleContentType/g

But I removed some parentheses by hand.

Differential Revision: https://phabricator.services.mozilla.com/D1900

MozReview-Commit-ID: 3IcirjIYX5p
2018-06-30 17:13:07 +02:00
Emilio Cobos Álvarez
9c9d38083e Bug 215083: Fix CreateContinuingFrame to account for non-nsImageLoadingContent image frames. r=heycam
MozReview-Commit-ID: CLx3siPe4Cx
2018-06-30 03:45:12 +02:00
Emilio Cobos Álvarez
69f701da87 Bug 215083: Implement content: url(..) for elements. r=tnikkel,dholbert
Dynamic changes are handled correctly because content property changes already
cause a reframe.

This implements the same bits as Blink / WebKit do (single content item which is
an image, otherwise gets ignored), except for the edge cases where you use this
on an image.

In order to handle the edge cases right, we completely isolate the
nsImageLoadingContent usage based on `mKind`.

Blink's and WebKit's behavior there makes no sense and it's erratic, what I
implemented is consistent (we apply to images as long as they don't generate a
box, and we don't look at alt text or broken icons), though I'll update to
whatever the WG decides in https://github.com/w3c/csswg-drafts/issues/2831 /
https://github.com/w3c/csswg-drafts/issues/2832.

I don't think it matters in terms of web compat in any case.

MozReview-Commit-ID: JUurhC60hWr
2018-06-30 03:45:13 +02:00