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

Issue 2592423002: Reschedule sibling invalidations as descendant on removal. (Closed)

Created:
4 years ago by rune
Modified:
3 years, 12 months ago
Reviewers:
esprehn
CC:
darktears, apavlov+blink_chromium.org, blink-reviews, blink-reviews-css, blink-reviews-dom_chromium.org, blink-reviews-style_chromium.org, chromium-reviews, dglazkov+blink, eae+blinkwatch, rwlbuis, sof
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Reschedule sibling invalidations as descendant on removal. When removing elements we schedule sibling invalidations based on element attributes and state as descendant invalidations when necessary. However, that didn't work correctly if we removed an attribute and then removed the element before the sibling invalidation for the attribute was effectuated. For instance, if you remove a class affecting succeeding siblings through selectors, we schedule an invalidation set for that change, but it will be cleared right after if we remove the element (see the added test). Instead we reschedule sibling invalidations on the parent node before the invalidations for the removed element are cleared. R=esprehn@chromium.org BUG=674326 Committed: https://crrev.com/aa0b505f520f9d14f7f90048e4a256dd408da849 Cr-Commit-Position: refs/heads/master@{#440598}

Patch Set 1 #

Total comments: 4

Patch Set 2 : Moved DCHECK. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+52 lines, -0 lines) Patch
A third_party/WebKit/LayoutTests/fast/css/invalidation/reschedule-for-removed-sibling.html View 1 chunk +25 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.h View 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp View 1 1 chunk +19 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/dom/Document.cpp View 1 chunk +3 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/dom/StyleEngine.h View 1 chunk +4 lines, -0 lines 0 comments Download

Messages

Total messages: 20 (11 generated)
rune
ptal
4 years ago (2016-12-22 14:40:55 UTC) #3
esprehn
lgtm https://codereview.chromium.org/2592423002/diff/1/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp File third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp (right): https://codereview.chromium.org/2592423002/diff/1/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp#newcode150 third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp:150: DCHECK(element.parentNode()); I personally like to put these at ...
4 years ago (2016-12-22 17:19:59 UTC) #6
rune
https://codereview.chromium.org/2592423002/diff/1/third_party/WebKit/Source/core/dom/Document.cpp File third_party/WebKit/Source/core/dom/Document.cpp (right): https://codereview.chromium.org/2592423002/diff/1/third_party/WebKit/Source/core/dom/Document.cpp#newcode4223 third_party/WebKit/Source/core/dom/Document.cpp:4223: styleEngine().elementWillBeRemoved(toElement(n)); On 2016/12/22 17:19:59, esprehn wrote: > Hooking here ...
4 years ago (2016-12-23 00:06:37 UTC) #7
rune
https://codereview.chromium.org/2592423002/diff/1/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp File third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp (right): https://codereview.chromium.org/2592423002/diff/1/third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp#newcode150 third_party/WebKit/Source/core/css/invalidation/StyleInvalidator.cpp:150: DCHECK(element.parentNode()); On 2016/12/22 17:19:59, esprehn wrote: > I personally ...
4 years ago (2016-12-23 00:15:20 UTC) #8
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/2592423002/20001
4 years ago (2016-12-23 00:16:14 UTC) #11
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_asan_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_asan_rel_ng/builds/284592)
3 years, 12 months ago (2016-12-23 02:10:43 UTC) #13
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/2592423002/20001
3 years, 12 months ago (2016-12-23 07:03:36 UTC) #15
commit-bot: I haz the power
Committed patchset #2 (id:20001)
3 years, 12 months ago (2016-12-23 07:51:55 UTC) #18
commit-bot: I haz the power
3 years, 12 months ago (2016-12-23 07:53:50 UTC) #20
Message was sent while issue was closed.
Patchset 2 (id:??) landed as
https://crrev.com/aa0b505f520f9d14f7f90048e4a256dd408da849
Cr-Commit-Position: refs/heads/master@{#440598}

Powered by Google App Engine
This is Rietveld 408576698