Commit Graph

2990 Commits

Author SHA1 Message Date
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
Boris Zbarsky
35cb898b59 Bug 1471095. Don't do extra work we don't need to in ReparentWrappersInSubtree. r=smaug 2018-06-28 23:36:46 -04:00
Chris Peterson
f7ceeaf5cf Bug 1469769 - Part 6: Replace non-failing NS_NOTREACHED with MOZ_ASSERT_UNREACHABLE. r=froydnj
This patch is an automatic replacement of s/NS_NOTREACHED/MOZ_ASSERT_UNREACHABLE/. Reindenting long lines and whitespace fixups follow in patch 6b.

MozReview-Commit-ID: 5UQVHElSpCr
2018-06-17 22:43:11 -07:00
Emilio Cobos Álvarez
ead850b753 Bug 1470836: Remove the code to create placeholder continuations. r=mats
Try seems happy with this.

MozReview-Commit-ID: 6XWVYrZxpFy
2018-06-25 10:37:56 +02:00
Emilio Cobos Álvarez
58045500b8 Bug 1465572: Ensure <slot> disables whitespace optimizations. r=bz
The whitespace optimization code only knows about the light tree.

It's not a great idea to try to put flattened tree children of a slot through
there, since the children may not be assigned to the same slot, or to any slot
(in which case we crash).

We should probably rename XBLInvolved to ShadowDOMOrXBLInvolved too, I guess.
Note that the ShadowRoot case already sets the bit on Init().

MozReview-Commit-ID: 91lmE7OxlnA
2018-06-02 09:35:19 +02:00
Emilio Cobos Álvarez
35f49f2b80 Bug 1288572: Don't hide -moz-box / -moz-inline-box yet. r=mats
I'd really prefer to not land this patch, but...

MozReview-Commit-ID: HzmvhTd32gz
2018-06-04 15:55:59 +02:00
Paolo Amadini
c2b5ceb5ec Bug 1457719 - Part 4 - Remove the "autorepeatbutton" element. r=bz
The DoMouseClick helper is also removed because no other caller can now pass a null aEvent. Other MouseClicked implementations are also updated since aEvent cannot be null, which was already the case.

MozReview-Commit-ID: 3bTJ6cZW9ZA
2018-06-01 11:15:56 +01:00
Emilio Cobos Álvarez
4b8b5e1717 Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
arthur.iakab
436c7d6051 Merge mozilla inbound to central a=merge 2018-05-31 01:05:10 +03:00
Emilio Cobos Álvarez
40038f321c Bug 1465502: Remove write-only NS_FRAME_MAY_HAVE_GENERATED_CONTENT. r=mats
It's write-only, and I'd love to use it for other purposes :)

MozReview-Commit-ID: KpXNp72TcDb
2018-05-30 17:09:28 +02:00
Emilio Cobos Álvarez
86de05ee90 Bug 1461749: Fix slow path for finding the next sibling frame for appending in presence of Shadow DOM. r=mats
In this case we have a shadow hoot with display: contents, with no children.
Those children wouldn't be flattened tree children of the shadow host.

Instead of using the last light dom child and seek to it, use
FlattenedChildIterator's reverse iteration.

MozReview-Commit-ID: 18XL5Ong7ww
2018-05-23 18:20:33 +02:00
Emilio Cobos Álvarez
f553b5e6f9 Bug 1460382: Make element-backed pseudos inherit from NAC subtree roots and other NAC inherit from their parents. r=heycam
Currently, NAC always inherits from the closest non-NAC ancestor element,
regardless of whether it is for an element-backed pseudo or not.

This patch changes the inheritance so that for element-backed pseudos, we
inherit from the closest native anonymous root's parent, and for other NAC we
inherit from the parent.

This prevents the following two issues and allows us to remove the
NODE_IS_NATIVE_ANONYMOUS flag:

 * Avoiding inheriting from the non-NAC ancestor in XBL bindings bound to NAC.

   - This is no longer a problem since we apply the rule only if we're a
     pseudo-element, and all pseudo-elements are in native anonymous subtrees.

   - This also allows to remove the hack that propagates the
     NODE_IS_NATIVE_ANONYMOUS flag from the ::cue pseudo-element from
     BindToTree.

 * Inheriting from the wrong thing if we're a nested NAC subtree.

   - We no longer look past our NAC subtree, with the exception of
     ::-moz-number-text's pseudo-elements, for which we do want to propagate
     ::placeholder to.

A few rules from forms.css have been modified because they're useless or needed
to propagate stuff to the anonymous form control in input[type="number"] which
previously inherited from the input itself.

MozReview-Commit-ID: IDKYt3EJtSH
2018-05-30 10:14:46 +02:00
Emilio Cobos Álvarez
d0f3f81f1b Bug 1451256: Make toolbarpaletteitem always use box layout. r=dholbert
It doesn't really need the button magic.

MozReview-Commit-ID: 390aozlyYZa
2018-05-22 21:55:01 +02:00
Chris Peterson
5d6b16ea3b Bug 1457813 - Part 2: Replace non-asserting NS_PRECONDITIONs with MOZ_ASSERTs. r=froydnj
s/NS_PRECONDITION/MOZ_ASSERT/ and reindent

MozReview-Commit-ID: KuUsnVe2h8L
2018-04-28 12:50:58 -07:00
Emilio Cobos Álvarez
20f40e21d3 Bug 1453196: Fix MathML reframing code when the root is a MathML element. r=bz
MozReview-Commit-ID: CPd40oHIT5w
2018-04-14 22:58:13 +02:00
Emilio Cobos Álvarez
e4e79e5152 Bug 1457026: Teach nsDocumentEncoder about display: contents. r=mats
MozReview-Commit-ID: 5F3qurRHMNM
2018-04-26 18:06:37 +02:00
Emilio Cobos Álvarez
4dd73b9789 Bug 1421807: Wallpaper SVG text code which makes too many assumptions about the DOM. r=heycam
Second test-case is because I initially made this code work with
display: contents. But then realised that display: contents meant allowing
Shadow DOM in there, which I don't really want to deal with right now.

MozReview-Commit-ID: HSjFbWEbPAb
2018-04-23 21:23:50 +02:00
Emilio Cobos Álvarez
2593d2e5d0 Bug 1454747: Assert more tightly about StyleNewChildRange. r=bz
After bug 1303605 we can assert this, since we make sure all children have the
same flattened tree parent, and thus insertion point.

MozReview-Commit-ID: 7AHuGGw2uJI
2018-04-23 11:38:38 +02:00
Emilio Cobos Álvarez
7084675183 Bug 1454251: Remove nsINode::ePROCESSING_INSTRUCTION. r=bz
MozReview-Commit-ID: Xz5UiIgRpz
2018-04-20 09:52:09 +02:00
Emilio Cobos Álvarez
cde47f0f7b Bug 1454251: Remove nsINode::eCOMMENT. r=bz
MozReview-Commit-ID: AbSPU25fFbM
2018-04-20 09:51:57 +02:00