Commit Graph

704 Commits

Author SHA1 Message Date
Tom Klein
c3e7c80101 Bug 1486952 - Update the overflow of the anonymous child when the viewBox changes. r=jwatt
Bug 828240 switched the children only transform from applying to each of the
anonymous child's children to applying directly to the anonymous child instead.
So now when the viewBox changes, we need to update (just) the overflow of the
anonymous child, where previously we were updating the overflows of each of the
children (which was having no effect I guess, since they no longer have the
child only transform applied to them).

Hit testing checks for hits using overflow, so was broken by the lack of
overflow update on the anonymous child (combined with the fact that the
anonymous child is now transformed by the children only transform).

Differential Revision: https://phabricator.services.mozilla.com/D5668
2018-11-21 00:08:11 +00:00
Hiroyuki Ikezoe
06b185d87b Bug 1507083 - Check aGeneration instead of generation. r=birtles
Differential Revision: https://phabricator.services.mozilla.com/D11855
2018-11-14 11:47:10 +00:00
Gerald Squelart
12bbfa6318 Bug 1499961 - Indicate position-change reflow hint when RecomputePosition() bails out - r=dbaron,heycam
If a frame cannot be repositioned, the reflow request should hint at the
position change, so that if that frame is a reflow root, the next reflow won't
just start from there and not set the new position.

Updated incorrect comment about nsChangeHint_ReflowChangesSizeOrPosition
always requiring nsChangeHint_ClearAncestorIntrinsics.

Differential Revision: https://phabricator.services.mozilla.com/D9065
2018-11-14 10:16:01 +00:00
Hiroyuki Ikezoe
619442eb0a Bug 1504929 - Further optimizations for RestyleManager::AddLayerChangesForAnimations.. r=birtles,sotaro
This change eliminates
 - nsLayoutUtils::LastContinuationOrIBSplitSibling calls for each CSS
   properties on WebRender
 - iterating over each display item for each compositor runnable CSS properties
 - a bunch of stuff in the case where the layer manager has not yet created,
   i.e. the compositor thread is not ready to receive animations

Depends on D11425

Differential Revision: https://phabricator.services.mozilla.com/D11426
2018-11-13 10:23:20 +00:00
Hiroyuki Ikezoe
5a8dbd74c7 Bug 1504929 - Introduce LayerAnimationInfo::sDisplayItemTypes and iterate it instead of LayerAnimationInfo::sRecords. r=birtles
Depends on D11425

Differential Revision: https://phabricator.services.mozilla.com/D11596
2018-11-13 10:22:24 +00:00
Hiroyuki Ikezoe
2ee4a8d976 Bug 1504929 - Stop iterating EffectSets and KeyframeEffect::mProperties for each CSS properties that can be animated on the compositor. r=birtles
This change gets all effective CSS properties on an nsIFrame just once.

Note that LayerAnimationInfo::GetCSSPropertiesFor intentionally returns
nsCSSPropertyIDSet instead of nsCSSPropertyID since when we support individual
transform properties for the compositor the mapping between display item types
and nsCSSProperty has to be 1:N. E.g. all scale/translate/rotate properties are
mapped to transform display item.

Depends on D11424

Differential Revision: https://phabricator.services.mozilla.com/D11425
2018-11-13 10:22:26 +00:00
Ting-Yu Lin
9f6fd81b9d Bug 1421105 Part 5 - Fix anonymous -moz-column-span-wrapper block's style is overridden after restyling. r=bzbarsky,emilio
The major change in this patch is ::-moz-column-span-wrapper blocks are no
longer linked into the continuation chains when they're created in
CreateColumnSpanSiblings(). We can do that because
::-moz-column-span-wrapper is an non-inheriting anon box, which doesn't need
to be restyled.

This prevents RestyleManager::ProcessPostTraversal or
nsIFrame::UpdateStyleOfOwnedChildFrame, which set the same style on all
continuations of the frame they are working with, from overriding the
::-moz-column-span-wrapper style.

GetNextContinuationWithSameStyle was deleted in bug 1447367. Delete the comment
in nsInlineFrame::UpdateStyleOfOwnedAnonBoxesForIBSplit() to avoid confusion.

This patch also adds another condition to reframe the multi-column container
in MaybeRecreateContainerForFrameRemoval(). That condition is when an
element has a "column-span:all" descendant, i.e. the element's frame has
"column-span:all" siblings (which is created by CreateColumnSpanSiblings).
The added test multicol-span-all-dynamic-remove-006.html will fail without
this patch.

Depends on D5212

Differential Revision: https://phabricator.services.mozilla.com/D9988
2018-11-08 19:11:55 +00:00
Hiroyuki Ikezoe
2e138bbe64 Bug 1479173 - Rename LayerAnimationInto::mLayerType to LayerAnimationInfo::mDisplayitemType. r=birtles
In the case of WebRender there is no layers, but actually we'd been using it for
WebRender too, that's confusing.

Depends on D10689

Differential Revision: https://phabricator.services.mozilla.com/D10690
2018-11-06 21:01:15 +00:00
Margareta Eliza Balazs
669af84e56 Backed out 9 changesets (bug 1479173) for build failures in src/dom/animation/EffectCompositor.cpp CLOSED TREE
Backed out changeset 439ac5cfbced (bug 1479173)
Backed out changeset 73aba16a223f (bug 1479173)
Backed out changeset 89dbc6f7f959 (bug 1479173)
Backed out changeset ed1c344ccf0d (bug 1479173)
Backed out changeset c330e7e1eb1d (bug 1479173)
Backed out changeset efcbbb9daa39 (bug 1479173)
Backed out changeset 43c6a7863536 (bug 1479173)
Backed out changeset 94f0ae94a02c (bug 1479173)
Backed out changeset 7cf0ad1af067 (bug 1479173)
2018-11-06 12:13:31 +02:00
Hiroyuki Ikezoe
b82d4a50a3 Bug 1479173 - Rename LayerAnimationInto::mLayerType to LayerAnimationInfo::mDisplayitemType. r=birtles
In the case of WebRender there is no layers, but actually we'd been using it for
WebRender too, that's confusing.

Depends on D10689

Differential Revision: https://phabricator.services.mozilla.com/D10690
2018-11-06 06:21:06 +00:00
Cameron McCormack
f14c710f74 Bug 1498755 - Part 2c: Allow ServoBindings.h and GeckoBindings.h to be used separately r=emilio
Depends on D8643

Differential Revision: https://phabricator.services.mozilla.com/D8644
2018-10-14 00:05:48 +00:00
Jonathan Watt
87292551b7 Bug 1495246. Only call SVGObserverUtils::UpdateEffects on FirstContinuationOrIBSplitSibling frames. r=longsonr
Differential Revision: https://phabricator.services.mozilla.com/D7244
2018-09-19 11:30:03 +01:00
Ting-Yu Lin
9cd4af59b1 Bug 1493043 - Change function arguments in RestyleManager from nsIFrame& to nsIFrame* r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D6452
2018-09-21 17:45:49 +00:00
Emilio Cobos Álvarez
a597bf9a7b Bug 1488155 - Only no-op visited <-> unvisited changes. r=heycam
Other changes should really be (and are) indistinguishable.

Differential Revision: https://phabricator.services.mozilla.com/D4847
2018-09-05 12:52:16 +00:00
Xidorn Quan
27c14cf087 Bug 1475033 part 1 - Rename nsChangeHint_CSSOverflowChange to nsChangeHint_ScrollbarChange. r=heycam
Prepare for scrollbar-width which should trigger the same kind of change.

MozReview-Commit-ID: 1n9Y9bobBkJ
2018-08-03 16:42:33 +10:00
Emilio Cobos Álvarez
a1a56ee439 Bug 1477773: no-op visited changes earlier if visited links are disabled. r=xidorn
We force a repaint from ContentStateChangedInternal if visited links are
disabled, and that's observable. Let's cut it off as early as we can to avoid
timing attacks even when :visited is disabled.

Differential Revision: https://phabricator.services.mozilla.com/D3304
2018-08-15 12:54:26 +02: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
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
Emilio Cobos Álvarez
4dd841d302 Bug 1481155 - Use more references in the snapshot code. r=xidorn
Differential Revision: https://phabricator.services.mozilla.com/D2766
2018-08-06 23:44:56 +00: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
Xidorn Quan
ffceaf7bb9 Bug 1478225 - Always propagate repaint change hint from html/body element to viewport frame. r=heycam
Generally there isn't really much difference for painting on html/body
element vs. viewport, so it's probably not worth finer grained control
over when we should propagate and when not.

MozReview-Commit-ID: HK7DsQdz41D
2018-07-26 15:37:10 +10:00
Hiroyuki Ikezoe
5b38a681f0 Bug 1479133 - Use AnimationInfo::GetGenerationFromFrame to get the animation generation for WebRender. r=birtles
WebRender has no layers at all.

MozReview-Commit-ID: 7qYE8vONfU9
2018-07-30 11:20:53 +09:00
Hiroyuki Ikezoe
f8a66c8356 Bug 1478643 - Apply change hints for transform animation in the case where the current transform style is 'none' and no change hint produced in AddLayerChangesForAnimation. r=birtles
The applying change hints are the same as what we apply for transform style
changed from something to 'none'.

All test cases pass with this fix fail without the fix.

MozReview-Commit-ID: 7HStU26lRPq
2018-07-30 11:13:54 +09: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
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
Emilio Cobos Álvarez
86f2d1bd5d Bug 1469354: Use the first continuation to get the layout parent style. r=mats
Continuations do not have placeholders. There's a bunch of code that already
deals with that in other places in the tree.

MozReview-Commit-ID: Htizql7692e
2018-06-25 02:50:44 +02:00
Emilio Cobos Álvarez
30d08bce8b Bug 1458556: Release wallpaper for bug 1462401. r=xidorn
Just avoid crashing if the element has no data, treat is as display: none.

TakeChangeHint already returns wasRestyled = false, so we won't end up trying to
reconstruct anything, and we don't set frame construction flags in
nsCSSFrameConstructor so we won't traverse children either.

MozReview-Commit-ID: 2gXmHSlj3Jw
2018-06-12 17:21:29 -07:00
Doug Thayer
c9e49a0515 Bug 1467619 - Track and adjust layerization on repaint triggers r=mattwoodrow
To avoid creating a bunch of layers when we don't need to, this
tracks when a frame needs to be repainted, and invalidates the
IsStyleAnimated logic around mRestyleCounts if the frame is also
being invalidated.

MozReview-Commit-ID: 5Q96Cx6f3V0
2018-06-07 11:44:03 -07:00
Emilio Cobos Álvarez
992cfbfe13 No bug - Fix some comment and indentation typos in RestyleManager. r=me
MozReview-Commit-ID: Bnsl8vhpr28
2018-06-05 17:18:06 +02:00
Markus Stange
6cea21352a Bug 1462784 - Rename the CSS category to LAYOUT. r=njn
The next changeset is going to move over more annotations that Gecko developers
would count as "layout" into the LAYOUT category, and which is currently marked
as GRAPHICS.
We can add a subcategory for style resolution once we have subcategories, but
for now I think it makes more sense to put style resolution into the same bucket
as reflow and display list building.

MozReview-Commit-ID: 7r9eICVBA1Z
2018-05-18 17:40:52 -04:00
Csoregi Natalia
27ccec9c4c Backed out 18 changesets (bug 1462784) for ESlint failure on FlameGraph.js:1297. CLOSED TREE
Backed out changeset 79556798ff9f (bug 1462784)
Backed out changeset 88321efb673b (bug 1462784)
Backed out changeset 7880f9dc7023 (bug 1462784)
Backed out changeset 71fe35fd1f7e (bug 1462784)
Backed out changeset a543b94b049a (bug 1462784)
Backed out changeset d1ca8b0f2221 (bug 1462784)
Backed out changeset 68eabfbf3c16 (bug 1462784)
Backed out changeset 34e71c789903 (bug 1462784)
Backed out changeset 6fe79d1ca1bd (bug 1462784)
Backed out changeset e5ad2e525ea9 (bug 1462784)
Backed out changeset 329645ff1e23 (bug 1462784)
Backed out changeset e09c38853172 (bug 1462784)
Backed out changeset 0663d1a6d2da (bug 1462784)
Backed out changeset 106967fc29d2 (bug 1462784)
Backed out changeset 99b4a433a8e5 (bug 1462784)
Backed out changeset 1d38a4cf5a4a (bug 1462784)
Backed out changeset 692017229de6 (bug 1462784)
Backed out changeset c2911a626671 (bug 1462784)
2018-06-01 23:42:00 +03:00
Markus Stange
443165b8e7 Bug 1462784 - Rename the CSS category to LAYOUT. r=njn
The next changeset is going to move over more annotations that Gecko developers
would count as "layout" into the LAYOUT category, and which is currently marked
as GRAPHICS.
We can add a subcategory for style resolution once we have subcategories, but
for now I think it makes more sense to put style resolution into the same bucket
as reflow and display list building.

MozReview-Commit-ID: 7r9eICVBA1Z
2018-05-18 17:40:52 -04:00
Noemi Erli
3946d17555 Backed out 18 changesets (bug 1462784) for failures in devtools/client/performance/test/unit/test_tree-model-08.js on a CLOSED TREE
Backed out changeset a74d36598442 (bug 1462784)
Backed out changeset c8192175f360 (bug 1462784)
Backed out changeset cde492240e99 (bug 1462784)
Backed out changeset 8c8d30fa406c (bug 1462784)
Backed out changeset ad3802ffb780 (bug 1462784)
Backed out changeset 2fe10732076c (bug 1462784)
Backed out changeset 268a72b7c3c4 (bug 1462784)
Backed out changeset 4055eb6c3bc6 (bug 1462784)
Backed out changeset 3901070e2e60 (bug 1462784)
Backed out changeset 2faf787fbbdf (bug 1462784)
Backed out changeset 8f06963c7c6f (bug 1462784)
Backed out changeset 036e6f64e224 (bug 1462784)
Backed out changeset e670f156a603 (bug 1462784)
Backed out changeset cd39588aece4 (bug 1462784)
Backed out changeset 2ac65d100fa2 (bug 1462784)
Backed out changeset ea05ff70a51d (bug 1462784)
Backed out changeset 8a06c0ba42f7 (bug 1462784)
Backed out changeset 52ed9a039ad2 (bug 1462784)
2018-06-01 01:06:29 +03:00
Markus Stange
fd9bda3120 Bug 1462784 - Rename the CSS category to LAYOUT. r=njn
The next changeset is going to move over more annotations that Gecko developers
would count as "layout" into the LAYOUT category, and which is currently marked
as GRAPHICS.
We can add a subcategory for style resolution once we have subcategories, but
for now I think it makes more sense to put style resolution into the same bucket
as reflow and display list building.

MozReview-Commit-ID: 7r9eICVBA1Z
2018-05-18 17:40:52 -04:00
Noemi Erli
3359bf9bae Backed out changeset 07344dd47432 (bug 1217748) for increasing the frequency of https://bugzilla.mozilla.org/show_bug.cgi?id=1439979 a=backout 2018-05-24 18:44:44 +03:00
Markus Stange
04a3edbb8a Bug 1217748 - Don't consider opacity as animated if it's changed between discrete values. r=mattwoodrow
CSS animations / transitions and element.animate animations of opacity will
still be treated as animations.

JS-implemented opacity animations will no longer be detected as animations.
I hope that's fine. The current heuristic makes us detect opacity 'animations'
in lots of cases where there isn't an actual animation, and the resulting
layerization changes from those detected animations cause expensive repaints.

MozReview-Commit-ID: KJlc6c8OWSP
2017-08-10 15:00:50 -04:00
Emilio Cobos Álvarez
2eb6c582d6 Bug 1459529: Remove UPDATE_STYLE. r=heycam
Now that BeginUpdate is useless for the UPDATE_STYLE case, we don't need the
update mechanism at all. Just ensure that ApplicableStylesChanged is called on
the pres shell via the relevant RuleChanged, etc. notifications.

There's a big hidden gotcha here. nsIDocument::BeginUpdate does put a script
blocker on the stack for these updates. However it's not needed, since no script
can run during these notifications (only the stylesheet events we post for
devtools, but those use AsyncEventDispatcher and PostDOMEvents, so they don't
try to run immediately).

nsIDocument::BeginUpdate also does XBL binding attached queue stuff, but we
can't change bindings during these notifications anyway, so it also doesn't
matter.

MozReview-Commit-ID: HJvK6zQfloh
2018-05-15 18:44:29 +02:00
Brian Birtles
b48a10996d Bug 1456394 - Merge KeyframeEffectReadOnly and KeyframeEffect; r=bz,hiro
MozReview-Commit-ID: FvTMGjxfRXk
2018-05-07 11:08:59 +09: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
63f00a46d1 Bug 1458556: Upgrade an assertion to try get a crash earlier and (hopefully) a reproducible test-case. r=xidorn
MozReview-Commit-ID: 2UT7M2KhHRf
2018-05-05 12:58:43 +02:00
Emilio Cobos Álvarez
557bf9ffad Bug 1421807: Add an assertion that should help with catching more instances of this bug. r=me
MozReview-Commit-ID: KSLF6GbKHRQ
2018-04-24 01:29:20 +02:00
Emilio Cobos Álvarez
c8d104fcc7 Bug 1455108: Don't reparent first-line stuff in display: none subtrees. r=heycam
We may no longer know what the right parent style is, and it's not like it
matters anyway, the frame tree under us is dead, including placeholders and such
holding from us.

MozReview-Commit-ID: 1RHTwvKy0zQ
2018-04-19 18:18:35 +02:00
Emilio Cobos Álvarez
f654e10648 Bug 1453206: Fix IsInAnonymousSubtree to account for XBL in Shadow DOM. r=smaug
MozReview-Commit-ID: B2aYury8K7i
2018-04-14 11:59:06 +02:00
Andrew McCreight
7a07e0c48b Bug 1449670, part 1 - Convert IsNodeOfType(nsINode::eTEXT) to IsText(). r=bz
This method is not a virtual call, and also looks nicer.

This patch was mostly generated by a Python script, but I manually
cleaned up the code in a few places where statements didn't need to be
split across multiple lines any more.

MozReview-Commit-ID: 8JExxqSRc59
2018-04-12 15:41:00 -07:00
Andreea Pavel
3c8dab74ff Backed out 2 changesets (bug 1453206) for crashtest failures on muliple files e.g. tests/reftest/tests/layout/base/crashtests/416107.xhtml on a CLOSED TREE
Backed out changeset 1844a120acda (bug 1453206)
Backed out changeset b12b7c5b8178 (bug 1453206)
2018-04-13 23:06:55 +03:00
Emilio Cobos Álvarez
f2979ee963 Bug 1453206: Fix IsInAnonymousSubtree to account for XBL in Shadow DOM. r=smaug
MozReview-Commit-ID: B2aYury8K7i
2018-04-13 21:05:48 +02:00
Emilio Cobos Álvarez
7e1d5887e6 Bug 1447827: Rename the reparenting stuff. r=xidorn
MozReview-Commit-ID: H7tl6O8Ju32
2018-04-07 15:51:19 +02:00
Emilio Cobos Álvarez
6bf97b9921 Bug 1447827: Remove unused hover generation. r=xidorn
Not worth to keep the dead code, even if we may end up having to do something
about it in bug 1376082.

MozReview-Commit-ID: 8GG7O9ujtk0
2018-04-07 15:50:59 +02:00
Emilio Cobos Álvarez
1d9369b5fb Bug 1447827: Move ServoRestyleManager.cpp into RestyleManager.cpp. r=xidorn
Only moving implementation files, and s/ServoRestyleManager/RestyleManager/,
plus some indentation fixes.

MozReview-Commit-ID: 2WZ7KJfTrPS
2018-04-07 15:49:03 +02:00