Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(287)

Issue 2043273002: Defer compositor keyframe snapshots until the next style resolve (Closed)

Created:
4 years, 6 months ago by alancutter (OOO until 2018)
Modified:
4 years, 5 months ago
Reviewers:
Timothy Loh
CC:
darktears, apavlov+blink_chromium.org, blink-reviews, blink-reviews-animation_chromium.org, blink-reviews-css, blink-reviews-style_chromium.org, caseq+blink_chromium.org, chromium-reviews, devtools-reviews_chromium.org, dglazkov+blink, Eric Willigers, kozyatinskiy+blink_chromium.org, lushnikov+blink_chromium.org, pfeldman+blink_chromium.org, rjwright, rwlbuis, sergeyv+blink_chromium.org, shans
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Defer compositor keyframe snapshots until the next style resolve Previously compositor keyframes were being captured as soon as an animation was created. In the case of element.animate() there is not enough context to know the correct parentStyle to use resulting in crashes when computing "inherit" in corner case scenarios. By deferring the compositor keyframe snapshotting until we are in a style resolve we can pass through the correct parentStyle and avoid the crashes. Additionally by deferring we are able to avoid forcing a style recalc during element.animate() of a composited property. BUG=593252, 539793, 534122, 587257 Committed: https://crrev.com/3ebd5c3b08a5f861d8268402f3d9d76f5d7e306f Cr-Commit-Position: refs/heads/master@{#403861}

Patch Set 1 #

Patch Set 2 : clean up #

Patch Set 3 : todos #

Patch Set 4 : Update comments #

Patch Set 5 : Rebased onto https://codereview.chromium.org/2039133002 #

Patch Set 6 : Make dependent #

Patch Set 7 : Rebased #

Unified diffs Side-by-side diffs Delta from patch set Stats (+130 lines, -386 lines) Patch
A third_party/WebKit/LayoutTests/animations/option-opacity-inherit-crash.html View 1 chunk +33 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/animations/universal-selector-opacity-inherit-crash.html View 1 chunk +9 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/animations/universal-selector-opacity-inherit-crash-expected.html View 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/animation/AnimationEffect.h View 1 chunk +1 line, -0 lines 0 comments Download
D third_party/WebKit/Source/core/animation/DeferredLegacyStyleInterpolation.h View 1 1 chunk +0 lines, -46 lines 0 comments Download
D third_party/WebKit/Source/core/animation/DeferredLegacyStyleInterpolation.cpp View 1 2 3 4 1 chunk +0 lines, -150 lines 0 comments Download
D third_party/WebKit/Source/core/animation/DeferredLegacyStyleInterpolationTest.cpp View 1 2 3 4 5 6 1 chunk +0 lines, -107 lines 0 comments Download
M third_party/WebKit/Source/core/animation/EffectInput.cpp View 1 6 chunks +8 lines, -17 lines 0 comments Download
M third_party/WebKit/Source/core/animation/ElementAnimations.h View 1 1 chunk +1 line, -2 lines 0 comments Download
M third_party/WebKit/Source/core/animation/InertEffect.h View 2 chunks +4 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/animation/InterpolableValue.h View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/animation/Keyframe.h View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/animation/KeyframeEffectModel.h View 1 2 3 4 5 6 3 chunks +5 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/core/animation/KeyframeEffectModel.cpp View 1 2 3 4 5 6 3 chunks +5 lines, -12 lines 0 comments Download
M third_party/WebKit/Source/core/animation/StringKeyframe.h View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/animation/StringKeyframe.cpp View 1 2 chunks +2 lines, -9 lines 0 comments Download
M third_party/WebKit/Source/core/animation/css/CSSAnimations.h View 2 chunks +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp View 1 2 3 4 5 6 5 chunks +48 lines, -12 lines 0 comments Download
M third_party/WebKit/Source/core/core.gypi View 1 2 3 4 5 6 2 chunks +0 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/core/css/resolver/StyleResolver.h View 1 2 3 4 5 6 1 chunk +1 line, -2 lines 0 comments Download
M third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp View 1 2 3 4 5 6 2 chunks +7 lines, -10 lines 0 comments Download
M third_party/WebKit/Source/core/inspector/InspectorAnimationAgent.cpp View 1 2 3 4 5 6 1 chunk +1 line, -7 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 37 (16 generated)
alancutter (OOO until 2018)
4 years, 6 months ago (2016-06-08 07:21:13 UTC) #2
suzyh_UTC10 (ex-contributor)
Alan, could you describe the performance and memory implications of the ComputedStyle::clone and the style-resolve-within-style-resolve ...
4 years, 6 months ago (2016-06-08 07:29:56 UTC) #3
alancutter (OOO until 2018)
On 2016/06/08 at 07:29:56, suzyh wrote: > Alan, could you describe the performance and memory ...
4 years, 6 months ago (2016-06-08 07:52:11 UTC) #4
alancutter (OOO until 2018)
On 2016/06/08 at 07:52:11, alancutter wrote: > On 2016/06/08 at 07:29:56, suzyh wrote: > > ...
4 years, 6 months ago (2016-06-08 08:00:12 UTC) #5
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2043273002/40001
4 years, 6 months ago (2016-06-08 11:12:28 UTC) #7
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_ozone_rel_ng/builds/182657)
4 years, 6 months ago (2016-06-08 11:56:03 UTC) #9
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2043273002/40001
4 years, 6 months ago (2016-06-08 23:09:51 UTC) #11
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_ozone_rel_ng/builds/183158)
4 years, 6 months ago (2016-06-09 00:02:45 UTC) #13
alancutter (OOO until 2018)
Interesting that the crash seen in https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_rel_ng/builds/225700/steps/interactive_ui_tests%20%28with%20patch%29%20on%20Ubuntu-12.04 has the stack trace that https://codereview.chromium.org/2047283002 is aiming ...
4 years, 6 months ago (2016-06-09 05:51:45 UTC) #15
Timothy Loh
lgtm
4 years, 6 months ago (2016-06-09 06:54:24 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2043273002/80001
4 years, 6 months ago (2016-06-09 07:19:30 UTC) #19
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_compile_dbg_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_compile_dbg_ng/builds/107562)
4 years, 6 months ago (2016-06-09 07:31:53 UTC) #21
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2043273002/80001
4 years, 6 months ago (2016-06-10 00:41:44 UTC) #23
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_ozone_rel_ng/builds/184032)
4 years, 6 months ago (2016-06-10 01:28:40 UTC) #25
alancutter (OOO until 2018)
On 2016/06/10 at 01:28:40, commit-bot wrote: > Try jobs failed on following builders: > linux_chromium_chromeos_ozone_rel_ng ...
4 years, 6 months ago (2016-06-10 08:32:48 UTC) #26
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/2043273002/100001
4 years, 6 months ago (2016-06-10 08:47:23 UTC) #28
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 6 months ago (2016-06-10 10:38:04 UTC) #30
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2043273002/120001
4 years, 5 months ago (2016-07-06 04:29:31 UTC) #33
commit-bot: I haz the power
Committed patchset #7 (id:120001)
4 years, 5 months ago (2016-07-06 07:12:58 UTC) #34
commit-bot: I haz the power
CQ bit was unchecked.
4 years, 5 months ago (2016-07-06 07:13:07 UTC) #35
commit-bot: I haz the power
4 years, 5 months ago (2016-07-06 07:15:52 UTC) #37
Message was sent while issue was closed.
Patchset 7 (id:??) landed as
https://crrev.com/3ebd5c3b08a5f861d8268402f3d9d76f5d7e306f
Cr-Commit-Position: refs/heads/master@{#403861}

Powered by Google App Engine
This is Rietveld 408576698