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

Issue 2737043002: Fix caret paint invalidation issue on partial lifecycle updates (Closed)

Created:
3 years, 9 months ago by Xianzhu
Modified:
3 years, 9 months ago
Reviewers:
chrishtr
CC:
blink-reviews, blink-reviews-frames_chromium.org, blink-reviews-paint_chromium.org, chromium-reviews, dshwang
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Fix caret paint invalidation issue on partial lifecycle updates Previously caret paint invalidation status was updated after FrameView's layout. During a partial lifecyle update, the previous status, which was supposed to be handled by the next paint invalidation tree walk, was overriden, causing some invalidations were not handled. Rename CaretDisplayItemClient::updateStyleAndLayoutIfNeeded() to updateForPaintInvalidation() and call it from FrameView::updateCaretsForPaintInvalidation(). It's still reasonable to let FrameView handle part of caret paint invalidation because carets belongs to FrameViews. The real paint invalidation is handled through LayoutBlock because carets are painted by the containing LayoutBlock and we need the paint invalidation tree walk context for paint invalidation. BUG=699044 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Patch Set 1 #

Total comments: 2

Messages

Total messages: 9 (6 generated)
Xianzhu
3 years, 9 months ago (2017-03-07 20:08:55 UTC) #4
chrishtr
https://codereview.chromium.org/2737043002/diff/1/third_party/WebKit/Source/core/editing/CaretDisplayItemClientTest.cpp File third_party/WebKit/Source/core/editing/CaretDisplayItemClientTest.cpp (right): https://codereview.chromium.org/2737043002/diff/1/third_party/WebKit/Source/core/editing/CaretDisplayItemClientTest.cpp#newcode54 third_party/WebKit/Source/core/editing/CaretDisplayItemClientTest.cpp:54: void updateAllLifecyclePhases() { I assume some of the below ...
3 years, 9 months ago (2017-03-08 01:41:56 UTC) #8
Xianzhu
3 years, 9 months ago (2017-03-08 17:05:14 UTC) #9
Unfortunately the CL breaks editing/caret/caret-hidden-when-unfocused.html which
discovers an issue of this patch: paint invalidation flags are set too late and
may have no chance to set. Reworked as
https://codereview.chromium.org/2736213002/. Closing this one. Sorry for the
extra review works.

Powered by Google App Engine
This is Rietveld 408576698