Title: [118236] trunk
Revision
118236
Author
[email protected]
Date
2012-05-23 13:41:11 -0700 (Wed, 23 May 2012)

Log Message

ASSERT failure toRenderProgress in HTMLProgressElement::didElementStateChange
https://bugs.webkit.org/show_bug.cgi?id=87274

Reviewed by Darin Adler.

Source/WebCore:

Progress bar can't run-in. Prevent it from becoming a run-in, leading to an
unworkable RenderInline.

Test: fast/runin/progress-run-in-crash.html

* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::didElementStateChange):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::moveRunInUnderSiblingBlockIfNeeded):

LayoutTests:

* fast/runin/progress-run-in-crash-expected.txt: Added.
* fast/runin/progress-run-in-crash.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (118235 => 118236)


--- trunk/LayoutTests/ChangeLog	2012-05-23 20:39:30 UTC (rev 118235)
+++ trunk/LayoutTests/ChangeLog	2012-05-23 20:41:11 UTC (rev 118236)
@@ -1,3 +1,13 @@
+2012-05-23  Abhishek Arya  <[email protected]>
+
+        ASSERT failure toRenderProgress in HTMLProgressElement::didElementStateChange
+        https://bugs.webkit.org/show_bug.cgi?id=87274
+
+        Reviewed by Darin Adler.
+
+        * fast/runin/progress-run-in-crash-expected.txt: Added.
+        * fast/runin/progress-run-in-crash.html: Added.
+
 2012-05-23  Kenneth Russell  <[email protected]>
 
         REGRESSION(117918) - 4 webgl/tex-iomage-and-sub-image-2d-with-image tests failing on Mac bots.

Added: trunk/LayoutTests/fast/runin/progress-run-in-crash-expected.txt (0 => 118236)


--- trunk/LayoutTests/fast/runin/progress-run-in-crash-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/runin/progress-run-in-crash-expected.txt	2012-05-23 20:41:11 UTC (rev 118236)
@@ -0,0 +1,4 @@
+WebKit Bug 87274 - ASSERT failure toRenderProgress in HTMLProgressElement::didElementStateChange.
+Test passes if it does not crash.
+
+

Added: trunk/LayoutTests/fast/runin/progress-run-in-crash.html (0 => 118236)


--- trunk/LayoutTests/fast/runin/progress-run-in-crash.html	                        (rev 0)
+++ trunk/LayoutTests/fast/runin/progress-run-in-crash.html	2012-05-23 20:41:11 UTC (rev 118236)
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+WebKit Bug 87274 - ASSERT failure toRenderProgress in HTMLProgressElement::didElementStateChange.<br />
+Test passes if it does not crash.<br />
+<body>
+<progress id="progress1" style="-webkit-appearance: none"></progress><div></div>
+<script>
+if (window.layoutTestController)
+    layoutTestController.dumpAsText();
+
+document.body.offsetTop;
+progress1.style.display = 'run-in';
+</script>
+</body>
+</html>
Property changes on: trunk/LayoutTests/fast/runin/progress-run-in-crash.html
___________________________________________________________________

Added: svn:executable

Modified: trunk/Source/WebCore/ChangeLog (118235 => 118236)


--- trunk/Source/WebCore/ChangeLog	2012-05-23 20:39:30 UTC (rev 118235)
+++ trunk/Source/WebCore/ChangeLog	2012-05-23 20:41:11 UTC (rev 118236)
@@ -1,3 +1,20 @@
+2012-05-23  Abhishek Arya  <[email protected]>
+
+        ASSERT failure toRenderProgress in HTMLProgressElement::didElementStateChange
+        https://bugs.webkit.org/show_bug.cgi?id=87274
+
+        Reviewed by Darin Adler.
+
+        Progress bar can't run-in. Prevent it from becoming a run-in, leading to an
+        unworkable RenderInline.
+
+        Test: fast/runin/progress-run-in-crash.html
+
+        * html/HTMLProgressElement.cpp:
+        (WebCore::HTMLProgressElement::didElementStateChange):
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::moveRunInUnderSiblingBlockIfNeeded):
+
 2012-05-23  Andrew Lo  <[email protected]>
 
         [BlackBerry] UI thread unnecessarily blocks on WebKit thread when servicing requestAnimationFrames

Modified: trunk/Source/WebCore/html/HTMLProgressElement.cpp (118235 => 118236)


--- trunk/Source/WebCore/html/HTMLProgressElement.cpp	2012-05-23 20:39:30 UTC (rev 118235)
+++ trunk/Source/WebCore/html/HTMLProgressElement.cpp	2012-05-23 20:41:11 UTC (rev 118236)
@@ -134,7 +134,7 @@
 void HTMLProgressElement::didElementStateChange()
 {
     m_value->setWidthPercentage(position() * 100);
-    if (renderer()) {
+    if (renderer() && renderer()->isProgress()) {
         RenderProgress* render = toRenderProgress(renderer());
         bool wasDeterminate = render->isDeterminate();
         renderer()->updateFromElement();

Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (118235 => 118236)


--- trunk/Source/WebCore/rendering/RenderBlock.cpp	2012-05-23 20:39:30 UTC (rev 118235)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp	2012-05-23 20:41:11 UTC (rev 118236)
@@ -1846,6 +1846,9 @@
     if (runInNode && runInNode->hasTagName(selectTag))
         return;
 
+    if (runInNode && runInNode->hasTagName(progressTag))
+        return;
+
     RenderObject* curr = runIn->nextSibling();
     if (!curr || !curr->isRenderBlock() || !curr->childrenInline())
         return;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to