Title: [120931] trunk
- Revision
- 120931
- Author
- [email protected]
- Date
- 2012-06-21 10:05:12 -0700 (Thu, 21 Jun 2012)
Log Message
[Crash][Editing] Pressing enter on LI element triggers assertion in Shadow DOM.
https://bugs.webkit.org/show_bug.cgi?id=89171
Reviewed by Ryosuke Niwa.
Source/WebCore:
Since modidying Shadow DOM removes renderer of elements in Shadow DOM and shadow host,
assertion to check the existence of renderer was triggered.
We should update layout here to create renderer again.
Test: editing/shadow/pressing-enter-on-list.html
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::appendBlockPlaceholder):
LayoutTests:
* editing/shadow/pressing-enter-on-list-expected.txt: Added.
* editing/shadow/pressing-enter-on-list.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (120930 => 120931)
--- trunk/LayoutTests/ChangeLog 2012-06-21 17:03:28 UTC (rev 120930)
+++ trunk/LayoutTests/ChangeLog 2012-06-21 17:05:12 UTC (rev 120931)
@@ -1,3 +1,13 @@
+2012-06-21 Shinya Kawanaka <[email protected]>
+
+ [Crash][Editing] Pressing enter on LI element triggers assertion in Shadow DOM.
+ https://bugs.webkit.org/show_bug.cgi?id=89171
+
+ Reviewed by Ryosuke Niwa.
+
+ * editing/shadow/pressing-enter-on-list-expected.txt: Added.
+ * editing/shadow/pressing-enter-on-list.html: Added.
+
2012-06-21 Amy Ousterhout <[email protected]>
DeviceOrientation and DeviceMotion Test Cleanup
Added: trunk/LayoutTests/editing/shadow/pressing-enter-on-list-expected.txt (0 => 120931)
--- trunk/LayoutTests/editing/shadow/pressing-enter-on-list-expected.txt (rev 0)
+++ trunk/LayoutTests/editing/shadow/pressing-enter-on-list-expected.txt 2012-06-21 17:05:12 UTC (rev 120931)
@@ -0,0 +1,5 @@
+Pressing enter on the last character of <li> element in Shadow DOM was triggering assertion, becasue modifying Shadow DOM removes the renderer in Shadow DOM and desendant of shadow host.
+
+This tests confirms it won't happen any more.
+
+PASS
Added: trunk/LayoutTests/editing/shadow/pressing-enter-on-list.html (0 => 120931)
--- trunk/LayoutTests/editing/shadow/pressing-enter-on-list.html (rev 0)
+++ trunk/LayoutTests/editing/shadow/pressing-enter-on-list.html 2012-06-21 17:05:12 UTC (rev 120931)
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script src=""
+<script src=""
+
+<p>Pressing enter on the last character of <li> element in Shadow DOM was triggering assertion,
+becasue modifying Shadow DOM removes the renderer in Shadow DOM and desendant of shadow host.</p>
+<p>This tests confirms it won't happen any more.</p>
+
+<div id="container">
+ <ol id="host" contenteditable>
+ <li>LIST 1</li>
+ <li id="list2">LIST 2</li>
+ <li>LIST 3</li>
+ </ol>
+</div>
+
+<script>
+if (window.layoutTestController)
+ layoutTestController.dumpAsText();
+
+var shadowRoot = new WebKitShadowRoot(host);
+var li = document.createElement('li');
+li.innerHTML = 'inside shadow';
+shadowRoot.appendChild(li);
+shadowRoot.appendChild(document.createElement('shadow'));
+
+eventSender.mouseMoveTo(list2.offsetLeft + list2.offsetWidth - 10, list2.offsetTop + list2.offsetHeight / 2);
+eventSender.mouseDown();
+eventSender.mouseUp();
+
+eventSender.keyDown('\n');
+
+container.innerHTML = "PASS";
+</script>
+</body>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (120930 => 120931)
--- trunk/Source/WebCore/ChangeLog 2012-06-21 17:03:28 UTC (rev 120930)
+++ trunk/Source/WebCore/ChangeLog 2012-06-21 17:05:12 UTC (rev 120931)
@@ -1,3 +1,20 @@
+2012-06-21 Shinya Kawanaka <[email protected]>
+
+ [Crash][Editing] Pressing enter on LI element triggers assertion in Shadow DOM.
+ https://bugs.webkit.org/show_bug.cgi?id=89171
+
+ Reviewed by Ryosuke Niwa.
+
+ Since modidying Shadow DOM removes renderer of elements in Shadow DOM and shadow host,
+ assertion to check the existence of renderer was triggered.
+
+ We should update layout here to create renderer again.
+
+ Test: editing/shadow/pressing-enter-on-list.html
+
+ * editing/CompositeEditCommand.cpp:
+ (WebCore::CompositeEditCommand::appendBlockPlaceholder):
+
2012-06-21 Andrey Adaikin <[email protected]>
Web Inspector: [WebGL] Add injected WebGL module class
Modified: trunk/Source/WebCore/editing/CompositeEditCommand.cpp (120930 => 120931)
--- trunk/Source/WebCore/editing/CompositeEditCommand.cpp 2012-06-21 17:03:28 UTC (rev 120930)
+++ trunk/Source/WebCore/editing/CompositeEditCommand.cpp 2012-06-21 17:05:12 UTC (rev 120931)
@@ -833,6 +833,8 @@
{
if (!container)
return 0;
+
+ document()->updateLayoutIgnorePendingStylesheets();
// Should assert isBlockFlow || isInlineFlow when deletion improves. See 4244964.
ASSERT(container->renderer());
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes