Title: [260153] trunk
Revision
260153
Author
[email protected]
Date
2020-04-15 14:57:22 -0700 (Wed, 15 Apr 2020)

Log Message

Source/WebCore:
ASSERTION FAILED: !selectionToDelete.isNone() in TypingCommand::forwardDeleteKeyPressed
when deleting a UserSelect::None element.
https://bugs.webkit.org/show_bug.cgi?id=210530
<rdar://problem/58591480>

Reviewed by Geoffrey Garen.

Quit forwardDeleteKeyPressed() if FrameSelection::modify() returns empty selection.

Test: editing/deleting/forward-delete-UserSelect-None-element.html

* editing/TypingCommand.cpp:
(WebCore::TypingCommand::forwardDeleteKeyPressed):

LayoutTests:
ASSERTION FAILED: !selectionToDelete.isNone() in TypingCommand::forwardDeleteKeyPressed
when deleting a UserSelect::None element.
https://bugs.webkit.org/show_bug.cgi?id=210530
<rdar://problem/58591480>

Reviewed by Geoffrey Garen.

Added a regression test for the crash.

* editing/deleting/forward-delete-UserSelect-None-element-expected.txt: Added.
* editing/deleting/forward-delete-UserSelect-None-element.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (260152 => 260153)


--- trunk/LayoutTests/ChangeLog	2020-04-15 21:23:46 UTC (rev 260152)
+++ trunk/LayoutTests/ChangeLog	2020-04-15 21:57:22 UTC (rev 260153)
@@ -1,3 +1,17 @@
+2020-04-15  Jack Lee  <[email protected]>
+
+        ASSERTION FAILED: !selectionToDelete.isNone() in TypingCommand::forwardDeleteKeyPressed 
+        when deleting a UserSelect::None element.
+        https://bugs.webkit.org/show_bug.cgi?id=210530
+        <rdar://problem/58591480>
+
+        Reviewed by Geoffrey Garen.
+
+        Added a regression test for the crash.
+
+        * editing/deleting/forward-delete-UserSelect-None-element-expected.txt: Added.
+        * editing/deleting/forward-delete-UserSelect-None-element.html: Added.
+
 2020-04-15  Wenson Hsieh  <[email protected]>
 
         [iPadOS] Some pages indefinitely zoom in and out due to idempotent text autosizing

Added: trunk/LayoutTests/editing/deleting/forward-delete-UserSelect-None-element-expected.txt (0 => 260153)


--- trunk/LayoutTests/editing/deleting/forward-delete-UserSelect-None-element-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/editing/deleting/forward-delete-UserSelect-None-element-expected.txt	2020-04-15 21:57:22 UTC (rev 260153)
@@ -0,0 +1 @@
+Tests forward-deleting a UserSelect::None element. The test passes if WebKit doesn't crash or hit an ssertion.

Added: trunk/LayoutTests/editing/deleting/forward-delete-UserSelect-None-element.html (0 => 260153)


--- trunk/LayoutTests/editing/deleting/forward-delete-UserSelect-None-element.html	                        (rev 0)
+++ trunk/LayoutTests/editing/deleting/forward-delete-UserSelect-None-element.html	2020-04-15 21:57:22 UTC (rev 260153)
@@ -0,0 +1,8 @@
+<body><input id=input required draggable="true">
+<script>
+    input.focus();
+    document.execCommand("forwardDelete", false);
+    document.body.innerText = "Tests forward-deleting a UserSelect::None element. The test passes if WebKit doesn't crash or hit an ssertion.";
+    if (window.testRunner)
+        testRunner.dumpAsText();
+</script>

Modified: trunk/Source/WebCore/ChangeLog (260152 => 260153)


--- trunk/Source/WebCore/ChangeLog	2020-04-15 21:23:46 UTC (rev 260152)
+++ trunk/Source/WebCore/ChangeLog	2020-04-15 21:57:22 UTC (rev 260153)
@@ -1,3 +1,19 @@
+2020-04-15  Jack Lee  <[email protected]>
+
+        ASSERTION FAILED: !selectionToDelete.isNone() in TypingCommand::forwardDeleteKeyPressed
+        when deleting a UserSelect::None element.
+        https://bugs.webkit.org/show_bug.cgi?id=210530
+        <rdar://problem/58591480>
+
+        Reviewed by Geoffrey Garen.
+
+        Quit forwardDeleteKeyPressed() if FrameSelection::modify() returns empty selection.
+
+        Test: editing/deleting/forward-delete-UserSelect-None-element.html
+
+        * editing/TypingCommand.cpp:
+        (WebCore::TypingCommand::forwardDeleteKeyPressed):
+
 2020-04-15  Peng Liu  <[email protected]>
 
         Video elements don't return to the correct position when exiting fullscreen

Modified: trunk/Source/WebCore/editing/TypingCommand.cpp (260152 => 260153)


--- trunk/Source/WebCore/editing/TypingCommand.cpp	2020-04-15 21:23:46 UTC (rev 260152)
+++ trunk/Source/WebCore/editing/TypingCommand.cpp	2020-04-15 21:57:22 UTC (rev 260153)
@@ -801,6 +801,8 @@
         FrameSelection selection;
         selection.setSelection(endingSelection());
         selection.modify(FrameSelection::AlterationExtend, DirectionForward, granularity);
+        if (selection.isNone())
+            return;
         if (shouldAddToKillRing && selection.isCaret() && granularity != CharacterGranularity)
             selection.modify(FrameSelection::AlterationExtend, DirectionForward, CharacterGranularity);
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to