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

Issue 10809080: Merge 123062 - Crash in RenderTableSection::addCell. (Closed)

Created:
8 years, 5 months ago by Julien - ping for review
Modified:
8 years, 5 months ago
Reviewers:
jchaffraix
CC:
chromium-reviews
Base URL:
http://svn.webkit.org/repository/webkit/branches/chromium/1180/
Visibility:
Public.

Description

Merge 123062 - Crash in RenderTableSection::addCell. http://webkit.org/b/89496 Reviewed by Abhishek Arya. Source/WebCore: The issue comes from RenderBox::splitAnonymousBoxesAroundChild that would move sections across tables but didn't force the table to do a synchronous section recalc. This opened the way for race conditions where we would query the table column structure while it's dirty (this is not uncommon but as usually the table's column representation is always bigger or more split than a section's, it's usually harmless). The fix is to force a synchronous section recalc. Test: fast/table/split-table-no-section-update-crash.html * rendering/RenderBox.cpp: (WebCore::markBoxForRelayoutAfterSplit): Changed to call forceSectionsRecalc ie force a section recalc. * rendering/RenderTable.cpp: (WebCore::RenderTable::recalcSections): Added missing ASSERT for unneeded calls. * rendering/RenderTable.h: (WebCore::RenderTable::forceSectionsRecalc): Added this helper function. LayoutTests: The test is still pretty complex as it involves lots of generated content. It should be possible to get a smaller test case based on the conditions for the crash. However this test is a pretty good stress test so I decided against creating a more simple test case. * fast/table/split-table-no-section-update-crash-expected.txt: Added. * fast/table/split-table-no-section-update-crash.html: Added. TBR=jchaffraix@webkit.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=123513

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+11 lines, -1 line) Patch
A + LayoutTests/fast/table/split-table-no-section-update-crash.html View 0 chunks +-1 lines, --1 lines 0 comments Download
A + LayoutTests/fast/table/split-table-no-section-update-crash-expected.txt View 0 chunks +-1 lines, --1 lines 0 comments Download
M Source/WebCore/rendering/RenderBox.cpp View 1 chunk +5 lines, -3 lines 0 comments Download
M Source/WebCore/rendering/RenderTable.h View 1 chunk +6 lines, -0 lines 0 comments Download
M Source/WebCore/rendering/RenderTable.cpp View 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 1 (0 generated)
Julien - ping for review
8 years, 5 months ago (2012-07-24 20:04:14 UTC) #1

          

Powered by Google App Engine
This is Rietveld 408576698