Commit Graph

704 Commits

Author SHA1 Message Date
Brian Birtles
c93135a644 Bug 1532568 - Look up the animation generation on the primary frame for transform display items; r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D22443
2019-03-07 05:40:51 +00:00
Brian Birtles
fe19f5a50f Bug 1527210 - Drop KeyframeEffect::MaybeUpdateFrameForCompositor; r=hiro
Since bug 1524480 we set the NS_FRAME_MAY_BE_TRANSFORMED frame bit when needed
in RestyleManager::ProcessRestyledFrames so that it is now redundant to also set
it from KeyframeEffect.

Furthermore, setting frame bits from KeyframeEffect is a little fragile since it
depends on the life cycle of the KeyframeEffect which is independent of the
nsFrame. If we can avoid doing that, we probably should.

Differential Revision: https://phabricator.services.mozilla.com/D21885
2019-03-05 03:09:48 +00:00
Brian Birtles
be5b5e8b23 Bug 1527210 - Be more consistent about only applying transforms to primary frames; r=hiro
For display:table content we generate two frames: a table wrapper frame and an
inner table frame. The styles are applied to the inner frame (referred to as the
style frame), whilst the wrapper frame is the primary frame for the content.

However, in order to make tables with transforms behave as a container for
abspos/fixed-pos content as required by the spec, we apply the transform to the
wrapper frame (bug 722777) by inheriting the transform from inner to wrapper and
then ignoring the transform on the inner frame (bug 722777 and bug 816458).

When handling animations on table elements we need to be careful of this
distinction. in particular, css animations[1] and web animations[2] require that
when we have an unfinished transform animation targetting an element, the
element acts as if it had `will-change: transform` applied and therefore
generates a stacking context. As a result we need to accurately detect when
a frame should be considered as having transform animations applied to it or not
for the purpose of creating a stacking context.

Previously our handling of display:table content was quite inconsistent and
contradictory. For example, `nsIFrame::HasAnimationOfTransform` would check for
a primary frame AND for animations on that frame, despite the fact that we only
ever store animations on the style frame. As a result it could never return true
for either a table wrapper or inner table frame.

This patch attempts to make this handling at least a little more consistent,
producing the following result:

Outer table frame (primary frame):

    nsIFrame::IsTransformed → true
    nsIFrame::IsCSSTransformed → true
    nsIFrame::HasAnimationOfTransform → true
    nsLayoutUtils::HasAnimationOfProperty(frame, eCSSProperty_transform) → false

Inner table frame (style frame):

    nsIFrame::IsTransformed → false
    nsIFrame::IsCSSTransformed → false
    nsIFrame::HasAnimationOfTransform → false
    nsLayoutUtils::HasAnimationOfProperty(frame, eCSSProperty_transform) → true

We maintain that the NS_FRAME_MAY_BE_TRANSFORMED bit is only set on the primary
frame whilst the mMayHaveTransformAnimation flag is only set on the style frame.

Note that we don't simply always put everything on the primary frame because for
other property types (e.g. opacity) the default setup of putting all styles and
animations on the style frame is simpler and correct. So far it is only
transforms that require special handling to apply the effect to the wrapper
frame.

This patch adds a reftest that fails without the code changes included in this
patch.


[1] https://drafts.csswg.org/css-animations/#animations
[2] https://drafts.csswg.org/web-animations-1/#side-effects-section

Differential Revision: https://phabricator.services.mozilla.com/D21883
2019-03-05 03:09:19 +00:00
Boris Chiou
aac7a0513b Bug 1526850 - Part 3: Use DisplayItemType as the input of AddTransitionsAndAnimationsToLayer. r=hiro
Transform display item may have multiple properties, so it's better to
use display item type as the input.

Also, factor some code out of AddAnimationsForProperty, so we can easier
to extend this for multiple properties.

We will pass a list of layers::Animation to the compositor thread. In
this list, the animations belonging to the same property are grouped together,
so we can easily separate the animations by property and sample the animations
for each property on the compositor thread. (Will do this in Bug 1425837.)

Depends on D19628

Differential Revision: https://phabricator.services.mozilla.com/D19629
2019-03-01 21:13:05 +00:00
Gurzau Raul
2e3410c135 Merge mozilla-central to autoland. a=merge CLOSED TREE 2019-03-01 15:14:00 +02:00
Emilio Cobos Álvarez
5d681c3db5 Bug 1531582 - Don't drop the change hint for ContentStateChanged on the floor. r=heycam
This doesn't matter yet because all the states that return a change hint are on
stylesheets, but will matter with bug 1472637.

Differential Revision: https://phabricator.services.mozilla.com/D21616
2019-03-01 11:16:36 +01:00
Narcis Beleuzu
57929b1af0 Backed out changeset 60128088f862 (bug 1531582) for reftest failures on value-prop.html . CLOSED TREE 2019-03-01 07:55:22 +02:00
Emilio Cobos Álvarez
4147b15cd2 Bug 1531582 - Don't drop the change hint for ContentStateChanged on the floor. r=heycam
This doesn't matter yet because all the states that return a change hint are on
stylesheets, but will matter with bug 1472637.

Differential Revision: https://phabricator.services.mozilla.com/D21616
2019-03-01 02:04:12 +00:00
Ryan Hunt
a96492f0f6 Bug 1523969 part 14 - Move method definition inline comments to new line in 'layout/'. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D21115
2019-02-25 16:09:24 -06:00
Boris Chiou
4f4e47632c Bug 1529422 - Part 3: Make sure the callers of ActivityTracker takes individual transforms into account. r=mstange
Add comments and property check for the caller of ActivityTracker.

Depends on D19525

Differential Revision: https://phabricator.services.mozilla.com/D19632
2019-02-22 23:36:19 +00:00
Ting-Yu Lin
aedfc303f7 Bug 1526097 - Remove nsIFrame::eBlockFrame flag. r=dholbert
Only nsBlockFrame and its subclasses recognize the nsIFrame::eBlockFrame
flag, so we can replace the usage of the flag with either
nsIFrame::IsBlockFrameOrSubclass() or a do_QueryFrame().

Differential Revision: https://phabricator.services.mozilla.com/D20542
2019-02-20 21:18:14 +00:00
Emilio Cobos Álvarez
9be60117a8 Bug 1528451 - Move code that starts image loads to DidSetComputedStyle. r=heycam
This is more consistent with all the other image request code, and handles
pseudo-elements properly without having to add more out-of-band calls to
UpdateStyleOfOwnedChildFrame and such.

Differential Revision: https://phabricator.services.mozilla.com/D20107
2019-02-19 15:00:58 +01:00
Emilio Cobos Álvarez
e9ff37af55 Bug 1525955 - Include anon boxes in CSSPseudoElementType, to remove ComputedStyle::mPseudoTag. r=heycam
This is more consistent with what the Rust bits of the style system do, and
removes a pointer from ComputedStyle which is always nice.

This also aligns the Rust bits with the C++ bits re. not treating xul pseudos as
anonymous boxes. See the comment in nsTreeStyleCache.cpp regarding those.

Can't wait for XUL trees to die.

Depends on D19001

Differential Revision: https://phabricator.services.mozilla.com/D19002
2019-02-19 13:44:33 +00:00
Ciure Andrei
faa998032b Backed out changeset d33544f0d8e6 (bug 1528451) for Assertion failure: IsResolved ...nsStyleStruct.h failures CLOSED TREE 2019-02-19 12:44:44 +02:00
Emilio Cobos Álvarez
9506ad92d3 Bug 1528644 - Internal value changes shouldn't change validity state. r=masayuki
Even less so on reframe, where it's just unsound to do so. I had to give a value
to eSetValue_Internal, since otherwise I cannot check for its presence. I can
further special-case the reframe case if you prefer.

Differential Revision: https://phabricator.services.mozilla.com/D20133
2019-02-19 09:25:55 +00:00
Emilio Cobos Álvarez
d69dae91f2 Bug 1528451 - Move code that starts image loads to DidSetComputedStyle. r=heycam
This is more consistent with all the other image request code, and handles
pseudo-elements properly without having to add more out-of-band calls to
UpdateStyleOfOwnedChildFrame and such.

Differential Revision: https://phabricator.services.mozilla.com/D20107
2019-02-19 00:40:10 +00:00
Emilio Cobos Álvarez
d115efcaa2 Bug 1528613 - Downgrade two assertions from release assert for now. r=heycam
These assertions can happen in certain circumstances (see the referenced bug).

These assertions are not security sensitive, but they affect correctness.

They're old (from before my change), so I prefer dealing with them in a public
bug and stop crashing release for now.

Differential Revision: https://phabricator.services.mozilla.com/D20105
2019-02-18 00:30:17 +00:00
Emilio Cobos Álvarez
eca9cd7148 Bug 1525509 - Add release asserts. r=dholbert
Just for my sanity. I think the other scroll observer is sane after a quick
look, but this will ensure we don't ship security issues.

Differential Revision: https://phabricator.services.mozilla.com/D19725
2019-02-15 06:29:55 +00:00
Brian Birtles
bd59a71cc3 Bug 1524480 - Set NS_FRAME_MAY_BE_TRANSFORMED bit when we have nsChangeHint_UpdateTransformLayer; r=hiro
Typically we set the NS_FRAME_MAY_BE_TRANSFORMED bit on a frame when one of the
following situations arises:

a. We update the keyframes of a KeyframeEffect to include transforms or we
   create a new KeyframeEffect that animates transforms (in
   KeyframeEffect::SetKeyframes), or
b. We retarget a KeyframeEffect with transforms at a new element (in
   KeyframeEffect::SetTarget), or
c. We create an nsFrame with transform animations applied to it (in
   nsFrame::Init), or
d. We get a nsChangeHint_AddOrRemoveTransform hint in
   RestyleManager::ProcessRestyledFrames and decide to update the frame bit on
   the frame and its continuations accordingly.

However, there are some situations where we can have a transform animation on
a frame where none of the above are triggered.

For example, if the style frame is not unavailable (e.g.  a display:none
element) when the KeyframeEffect is initialized we will fail to the frame bit in
(a) and if we never retarget the effect we will never set reach (b).

Furthermore, if we have an animation that is "not relevant" (e.g.  idle) and
hence not registered with the EffectSet when the frame is initialized we will
fail to set the frame bit in (c).

Finally, if the the animation does not produce a style change that causes the
nsChangeHint_AddOrRemoveTransform bit to be set (e.g. the transform animation
begins at 'none') we will not set the frame bit in (d).

As a result, we can end up failing to set the NS_FRAME_MAY_BE_TRANSFORMED bit
for some content.

The crashtest included in this patch produces such a case and, without the code
changes in this patch, will fail the assertion in ApplyRenderingChangeToTree[1]:

  NS_ASSERTION(!(aChange & nsChangeHint_UpdateTransformLayer) ||
                   aFrame->IsTransformed() ||
                   aFrame->StyleDisplay()->HasTransformStyle(),
               "Unexpected UpdateTransformLayer hint");

That is because although the nsChangeHint_UpdateTransformLayer bit will be set,
aFrame->IsTransformed() will return false because the frame bit has not been
set, and aFrame->StyleDisplay()->HasTransformStyle() will return false because
the animation sets the transform to 'none'.

Not only will this assertion fail, but once we cease flushing style as part of
triggering an animation later in this patch, the reftest
layout/reftests/web-animations/stacking-context-transform-changing-effect.html
will begin to fail. That reftest produces a similar situation to the crashtest
but it currently does not fail because the style flush that happens as part of
creating an animation ensures the style frame is available at the point when the
animation is triggered and hence case (a) from above is hit.

This patch addresses this by detecting the case where we have this change hint
set but not the corresponding frame bit, and setting the frame bit.

[1] https://searchfox.org/mozilla-central/rev/9eb30227b21e0aa40d51d9f9b08bb0b113c5fadb/layout/base/RestyleManager.cpp#1191-1199

Differential Revision: https://phabricator.services.mozilla.com/D18911
2019-02-15 06:35:55 +00:00
Emilio Cobos Álvarez
5ac7dcc7cc Bug 1525134 - Move image loads out of the style struct accessors. r=heycam
After this I can pass the document from the caller to ResolveSameStructsAs, and
get rid of the pres context pointer.

Differential Revision: https://phabricator.services.mozilla.com/D18600
2019-02-05 19:47:29 +00:00
Razvan Maries
bb63ca688a Backed out changeset 919de32d4905 (bug 1525134) for build bustages. CLOSED TREE 2019-02-05 19:36:46 +02:00
Emilio Cobos Álvarez
8bce3786c3 Bug 1525134 - Move image loads out of the style struct accessors. r=heycam
After this I can pass the document from the caller to ResolveSameStructsAs, and
get rid of the pres context pointer.

Differential Revision: https://phabricator.services.mozilla.com/D18600
2019-02-05 18:07:18 +01:00
Razvan Maries
ebcf2ddc23 Backed out changeset 992f27cfecac (bug 1525134) for build bustages. CLOSED TREE 2019-02-05 18:54:14 +02:00
Emilio Cobos Álvarez
4702c4f188 Bug 1525134 - Move image loads out of the style struct accessors. r=heycam
After this I can pass the document from the caller to
ResolveSameStructsAs, and get rid of the pres context pointer.

Differential Revision: https://phabricator.services.mozilla.com/D18600
2019-02-05 13:45:04 +00:00
Emilio Cobos Álvarez
e8eb2733c4 Bug 1440384 - Rename FinishStyle to TriggerImageLoads. r=boris
That's all it does now. This will prevent other misuse and make it clearer.

Differential Revision: https://phabricator.services.mozilla.com/D18568
2019-02-04 23:14:47 +01:00
garvitdelhi
cdc6f539cb Bug 1519185: Remove AttributeWillChange aNewValue parameter r=emilio,bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D17073
2019-01-29 17:59:38 +01:00
Cosmin Sabou
ef6c5d87ab Backed out 2 changesets (bug 1519185) build bustages on nsMenuGroupOwnerX.mm. CLOSED TREE
Backed out changeset e1de5282e21a (bug 1519185)
Backed out changeset 00d8afb01890 (bug 1519185)
2019-01-29 18:22:46 +02:00
garvitdelhi
790b1c35a4 Bug 1519185: Remove AttributeWillChange aNewValue parameter r=emilio,bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D17073
2019-01-29 15:27:02 +00:00
Ryan Hunt
bc786850cd Bug 1523052 - Only flush pending scroll anchor selection when we have restyling to do. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D17754
2019-01-26 20:37:45 +00:00
Margareta Eliza Balazs
7fe3543679 Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-01-18 12:31:59 +02:00
Emilio Cobos Álvarez
1e1fa24764 Bug 1519371 - Reframe less as a result of UpdateContainingBlock. r=dholbert
This patch should make the detection of whether we should reframe in
UpdateContainingBlock exact.

It should have no behavior change, but sometimes reframing can confuse event
handling code or what not.

We don't have a reduced test-case for the event handling regression this fixes,
but I added a test to ensure we don't uselessly reframe in this case that fails
without this patch and passes with.

Differential Revision: https://phabricator.services.mozilla.com/D16333
2019-01-17 21:00:34 +00:00
Ehsan Akhgari
498e2df734 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset
2019-01-18 10:16:18 +01:00
Ryan Hunt
47e6aceb92 Bug 1519462 - Coalesce all scroll anchor adjustments to be performed after layout when flushing notifcations. r=dholbert
We currently perform anchor adjustment in three spots:
  1. If the target of RestyleManager::RecomputePosition is in a scroll anchor chain
  2. If the reflow root is in a scroll anchor chain
  3. In nsHTMLScrollFrame::DidReflow, for itself

It looks like it's possible for a scroll anchor container to be adjusted by (1)
and (2 or 3) in the same PresShell flush.

This should be okay, except that we consume mSuppressAnchorAdjustment when
performing an adjustment, and this can lead us to miss the second time that
we perform adjustments in a PresShell flush.

This commit reworks how we run anchor adjustments so that we collect all
scroll anchor containers that should be adjusted, and only perform the
adjustments once.

Differential Revision: https://phabricator.services.mozilla.com/D16407
2019-01-13 00:54:05 -06:00
Ryan Hunt
04905d24de Bug 1305957 part 9 - Suppress scroll offset adjustment when node moves into flow or out of flow inside of a scrollable frame. r=emilio
This commit implements the second half of the heuristics to detect style changes
that could lead to feedback loops with scroll anchoring. [1]

A new change hint is added for when a style is changed from positioned to not
positioned. When this hint is applied, scroll anchor suppression is triggered in
the scroll anchor container where the frame used to be, and the new scroll
anchor container where the frame is added after reconstruction.

[1] https://drafts.csswg.org/css-scroll-anchoring/#suppression-triggers

Differential Revision: https://phabricator.services.mozilla.com/D13273
2018-11-27 15:39:53 -06:00
Ryan Hunt
b17f28bf78 Bug 1305957 part 7 - Adjust scroll offset to match change in relative position of scroll anchor after reflow. r=hiro,dbaron
This commit implements anchor offset adjustment. When the position of a frame
that is an anchor is changed during reflow, we notify the anchor container. The
anchor container will then post a reflow callback.

Then when reflow is completed, the anchor container will perform a scroll to
keep the anchor node in the same relative position.

Differential Revision: https://phabricator.services.mozilla.com/D13270
2018-12-21 10:26:10 -06:00
Ryan Hunt
38ce27aabb Bug 1305957 part 6 - Select scroll anchors when flushing notifications in PresShell. r=hiro
This commit adds a mechanism for scroll anchor containers to request an anchor
node selection at a future time. Currently this is before styling so that anchor
adjustment suppression will have current anchor nodes.

Differential Revision: https://phabricator.services.mozilla.com/D13269
2018-11-27 15:32:47 -06:00
Bogdan Tara
0943ddbffb Backed out 15 changesets (bug 1305957) for ASAN failures CLOSED TREE
Backed out changeset 4d5eb85d3155 (bug 1305957)
Backed out changeset 51c86d025ecb (bug 1305957)
Backed out changeset d8eef8f3e396 (bug 1305957)
Backed out changeset 950bf6ad1ef2 (bug 1305957)
Backed out changeset b4cb2cbebdb6 (bug 1305957)
Backed out changeset bfca5019a9cc (bug 1305957)
Backed out changeset e76b842c7b7f (bug 1305957)
Backed out changeset d9445a5f3458 (bug 1305957)
Backed out changeset d9052f7b34d9 (bug 1305957)
Backed out changeset e7124fecb721 (bug 1305957)
Backed out changeset bdb766faa867 (bug 1305957)
Backed out changeset 3033401ef320 (bug 1305957)
Backed out changeset 6b96050386f6 (bug 1305957)
Backed out changeset c66c00f73296 (bug 1305957)
Backed out changeset 6bd0bdab93cb (bug 1305957)
2019-01-10 18:49:22 +02:00
Ryan Hunt
d3c45070a1 Bug 1305957 part 9 - Suppress scroll offset adjustment when node moves into flow or out of flow inside of a scrollable frame. r=emilio
This commit implements the second half of the heuristics to detect style changes
that could lead to feedback loops with scroll anchoring. [1]

A new change hint is added for when a style is changed from positioned to not
positioned. When this hint is applied, scroll anchor suppression is triggered in
the scroll anchor container where the frame used to be, and the new scroll
anchor container where the frame is added after reconstruction.

[1] https://drafts.csswg.org/css-scroll-anchoring/#suppression-triggers

Differential Revision: https://phabricator.services.mozilla.com/D13273
2018-11-27 15:39:53 -06:00
Ryan Hunt
a59e595ade Bug 1305957 part 7 - Adjust scroll offset to match change in relative position of scroll anchor after reflow. r=hiro,dbaron
This commit implements anchor offset adjustment. When the position of a frame
that is an anchor is changed during reflow, we notify the anchor container. The
anchor container will then post a reflow callback.

Then when reflow is completed, the anchor container will perform a scroll to
keep the anchor node in the same relative position.

Differential Revision: https://phabricator.services.mozilla.com/D13270
2018-12-21 10:26:10 -06:00
Ryan Hunt
45817e5f1b Bug 1305957 part 6 - Select scroll anchors when flushing notifications in PresShell. r=hiro
This commit adds a mechanism for scroll anchor containers to request an anchor
node selection at a future time. Currently this is before styling so that anchor
adjustment suppression will have current anchor nodes.

Differential Revision: https://phabricator.services.mozilla.com/D13269
2018-11-27 15:32:47 -06:00
Emilio Cobos Álvarez
dc336a73ba Bug 1517241 - Rename nsIDocument to mozilla::dom::Document. r=smaug
Summary: Really sorry for the size of the patch. It's mostly automatic
s/nsIDocument/Document/ but I had to fix up in a bunch of places manually to
add the right namespacing and such.

Overall it's not a very interesting patch I think.

nsDocument.cpp turns into Document.cpp, nsIDocument.h into Document.h and
nsIDocumentInlines.h into DocumentInlines.h.

I also changed a bunch of nsCOMPtr usage to RefPtr, but not all of it.

While fixing up some of the bits I also removed some unneeded OwnerDoc() null
checks and such, but I didn't do anything riskier than that.
2019-01-03 17:48:33 +01:00
Margareta Eliza Balazs
c22f658199 Backed out changeset 0564666f34b2 (bug 1507674) for crashtests in reftest/tests/dom/base/crashtests/1397795.html CLOSED TREE 2018-12-21 12:58:34 +02:00
Emilio Cobos Álvarez
c8c55b677e Bug 1507674 - Flush the overflow changed tracker earlier. r=jwatt
So we do it while we're still handling re-entrant changes for SVG, since SVG can
post change hints from UpdateOverflow().

Differential Revision: https://phabricator.services.mozilla.com/D12102
2018-12-20 22:50:28 +00:00
Daniel Holbert
0d1b724969 Bug 1512112: Remove redundant includes from source files in layout. r=TYLin
All of the removed includes are redundant (i.e. they're #included elsewhere in
the same file).

In most cases, I'm removing the second (redundant) copy of the
#include, except when that copy makes more sense (i.e. if it's in better sorted
order, or if it's paired alongside a closely-associated header while the
earlier copy is not).

Here's the script that I used to generate candidates here -- I ran this in
every subdirectory of layout, on my linux machine (warning, this writes two
files to your /tmp directory):

for FILE in *.h *.cpp; do
  nonunique=$(grep \#include $FILE | grep -v List\.h | cut -f2 -d'"'  | cut -f2- -d'/'| cut -f2- -d'/' | sort | wc -l)
  unique=$(   grep \#include $FILE | grep -v List\.h | cut -f2 -d'"'  | cut -f2- -d'/'| cut -f2- -d'/' | sort | uniq | wc -l)
  if [[ "$unique" != "$nonunique" ]]; then
    echo "$FILE: $nonunique / $unique"
    grep \#include $FILE | cut -f2 -d'"'  | grep -v List\.h | cut -f2- -d'/'| cut -f2- -d'/' | sort  > /tmp/nonunique.txt
    grep \#include $FILE | cut -f2 -d'"'  | grep -v List\.h | cut -f2- -d'/'| cut -f2- -d'/' | sort | uniq  > /tmp/unique.txt
    diff /tmp/nonunique.txt /tmp/unique.txt
    echo
  fi
done

Depends on D13773

Differential Revision: https://phabricator.services.mozilla.com/D13774
2018-12-05 18:55:59 +00:00
Sylvestre Ledru
e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
Jonathan Watt
3fd042669b Bug 1510116. Fix some unified build issues in layout code. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D13039
2018-11-12 22:20:52 +00:00
Daniel Holbert
f7732292e0 Bug 1509955: Preemptively fix unified bustage in layout/base. r=TYLin
Just adding:
 - a missing-but-needed forward-decl (in LayersLogging.h which is
   included by files in layout/base).
 - a 'using' decl (to provide layers::AnimationInfo).
 - a missing-but-needed #include for nsCOMPtr.

Differential Revision: https://phabricator.services.mozilla.com/D12964
2018-11-26 22:07:03 +00:00
Tom Klein
e7525a4476 Bug 1486952 - Update overflow on the correct svg frame(s) when the viewBox changes. r=jwatt
Bug 828240 switched the children only transform on an outer svg from applying to
each of the anonymous child's children to applying directly to the anonymous
child instead.  So now when the viewBox changes on an outer svg, we need to
update (just) the overflow of the anonymous child. The children only transform
on an inner svg still applies to the children of the inner svg, so we continue
updating those children in that case.

Hit testing uses overflows as part of the testing process, so was broken by the
lack of overflow updates.

Differential Revision: https://phabricator.services.mozilla.com/D5668
2018-11-23 15:58:27 +00:00
Hiroyuki Ikezoe
a193b42e1c Bug 1506988 - Skip applying change hint if we already have it in AddLayerChangesForAnimation. r=birtles
This is just an optimization regardless of the fix improper change hint
generated by blocked animations.

Differential Revision: https://phabricator.services.mozilla.com/D12366
2018-11-22 04:03:02 +00:00
Cosmin Sabou
e31fdb9d37 Backed out changeset 1c8f22180210 (bug 1486952) for mochitest failures on test_hit-testing-and-viewbox. CLOSED TREE 2018-11-21 18:57:56 +02:00