Bug 168103 - Mail hangs when removing multiple rows from large table.
Summary: Mail hangs when removing multiple rows from large table.
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: HTML Editing (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: zalan
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2017-02-09 20:49 PST by zalan
Modified: 2017-02-10 14:37 PST (History)
3 users (show)

See Also:


Attachments
Test case (21.02 KB, text/html)
2017-02-09 20:49 PST, zalan
no flags Details
Patch (29.69 KB, patch)
2017-02-09 21:13 PST, zalan
no flags Details | Formatted Diff | Diff
Archive of layout-test-results from ews112 for mac-elcapitan (2.43 MB, application/zip)
2017-02-09 22:52 PST, Build Bot
no flags Details
Patch (29.17 KB, patch)
2017-02-10 12:19 PST, zalan
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description zalan 2017-02-09 20:49:00 PST
Created attachment 301126 [details]
Test case

rdar://problem/30090186
Comment 1 zalan 2017-02-09 21:13:28 PST
Created attachment 301127 [details]
Patch
Comment 2 Ryosuke Niwa 2017-02-09 21:40:49 PST
Comment on attachment 301127 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=301127&action=review

> Source/WebCore/editing/DeleteSelectionCommand.cpp:395
> -            removeNode(remove, shouldAssumeContentIsAlwaysEditable);
> +            removeNode(remove, shouldAssumeContentIsAlwaysEditable, LayoutTiming::Delayed);

Instead of adding a new flag like this.
We should be able to directly call CompositeEditCommand's removeNode with the code below
if (node == m_startBlock...)

So I think it's better if we extracted a new helper function e.g. removeNodeUpdatingStates
that we call here instead of using a mutual recursion with a different flag.

r=me with that change.
Comment 3 Build Bot 2017-02-09 22:52:33 PST
Comment on attachment 301127 [details]
Patch

Attachment 301127 [details] did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/3058047

New failing tests:
editing/execCommand/indent-right-after-table.html
editing/deleting/5433862-1.html
editing/execCommand/5658933-1.html
editing/execCommand/5481523.html
editing/execCommand/delete-table-with-empty-contents.html
editing/deleting/4922367.html
editing/execCommand/format-block-table.html
editing/execCommand/5144139-1.html
editing/deleting/5206311-2.html
editing/execCommand/indent-partial-table.html
editing/deleting/5206311-1.html
editing/execCommand/5483526.html
Comment 4 Build Bot 2017-02-09 22:52:37 PST
Created attachment 301134 [details]
Archive of layout-test-results from ews112 for mac-elcapitan

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews112  Port: mac-elcapitan  Platform: Mac OS X 10.11.6
Comment 5 zalan 2017-02-10 12:19:55 PST
Created attachment 301193 [details]
Patch
Comment 6 WebKit Commit Bot 2017-02-10 14:37:47 PST
Comment on attachment 301193 [details]
Patch

Clearing flags on attachment: 301193

Committed r212151: <http://trac.webkit.org/changeset/212151>
Comment 7 WebKit Commit Bot 2017-02-10 14:37:52 PST
All reviewed patches have been landed.  Closing bug.