Chromium Code Reviews
Help | Chromium Project | Gerrit Changes | Sign in
(41)

Issue 1181183004: Recalc list items for <select> before updating style for the select. (Closed)

Created:
4 years, 10 months ago by esprehn
Modified:
4 years, 10 months ago
Reviewers:
Timothy Loh, rune, ojan
CC:
blink-reviews, blink-reviews-dom_chromium.org, blink-reviews-html_chromium.org, dglazkov+blink, eae+blinkwatch, rwlbuis, sof
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

Recalc list items for <select> before updating style for the select. listItems() might get called inside recalcStyle for a <select> which can then schedule style invalidation sets or leave dirty bits after style recalc. Instead we should make sure to call recalcListItems() at the start of recalcStyle for <select> (in willRecalcStyle) so that all selected <option>'s are updated before we try to update their style. We also add an early out in Element::pseudoStateChanged so that we don't schedule any invalidation sets inside recalcStyle which is bad since we'd never process them. A future patch will add an ASSERT in the style invalidation system to make sure we never do that another way as well. BUG=497953 R=ojan@chromium.org Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=197420

Patch Set 1 #

Patch Set 2 : Call recalcListItems directly. #

Patch Set 3 : Call recalcListItems directly. #

Total comments: 2

Patch Set 4 : comment text. #

Patch Set 5 : comments. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+19 lines, -1 line) Patch
M Source/core/dom/Element.cpp View 1 2 3 4 1 chunk +6 lines, -1 line 0 comments Download
M Source/core/html/HTMLSelectElement.h View 1 chunk +2 lines, -0 lines 0 comments Download
M Source/core/html/HTMLSelectElement.cpp View 1 2 3 4 2 chunks +11 lines, -0 lines 0 comments Download

Messages

Total messages: 11 (5 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1181183004/1
4 years, 10 months ago (2015-06-18 22:57:14 UTC) #2
esprehn
4 years, 10 months ago (2015-06-19 00:48:37 UTC) #4
ojan
lgtm https://codereview.chromium.org/1181183004/diff/40001/Source/core/dom/Element.cpp File Source/core/dom/Element.cpp (right): https://codereview.chromium.org/1181183004/diff/40001/Source/core/dom/Element.cpp#newcode1757 Source/core/dom/Element.cpp:1757: if (document().inStyleRecalc()) Add a comment explaining why we ...
4 years, 10 months ago (2015-06-19 01:05:02 UTC) #5
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1181183004/80001
4 years, 10 months ago (2015-06-19 01:12:43 UTC) #8
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_gn_rel on tryserver.blink (JOB_FAILED, http://build.chromium.org/p/tryserver.blink/builders/linux_chromium_gn_rel/builds/38861)
4 years, 10 months ago (2015-06-19 01:21:48 UTC) #10
esprehn
4 years, 10 months ago (2015-06-19 02:17:07 UTC) #11
Message was sent while issue was closed.
Committed patchset #5 (id:80001) manually as 197420 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698