Title: [179776] trunk
- Revision
- 179776
- Author
- [email protected]
- Date
- 2015-02-06 20:35:58 -0800 (Fri, 06 Feb 2015)
Log Message
ASSERT repaintContainer->hasLayer() in WebCore::RenderObject::repaintUsingContainer
https://bugs.webkit.org/show_bug.cgi?id=140750
Reviewed by Simon Fraser.
There's a short period of time when RenderObject::layer() still returns a valid pointer
even though we already cleared the hasLayer() flag.
Do not use the layer as repaint container in such cases.
Source/WebCore:
Test: compositing/repaint-container-assertion-when-toggling-compositing.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::enclosingLayer):
LayoutTests:
* compositing/repaint-container-assertion-when-toggling-compositing-expected.txt: Added.
* compositing/repaint-container-assertion-when-toggling-compositing.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (179775 => 179776)
--- trunk/LayoutTests/ChangeLog 2015-02-07 04:35:30 UTC (rev 179775)
+++ trunk/LayoutTests/ChangeLog 2015-02-07 04:35:58 UTC (rev 179776)
@@ -1,3 +1,17 @@
+2015-02-06 Zalan Bujtas <[email protected]>
+
+ ASSERT repaintContainer->hasLayer() in WebCore::RenderObject::repaintUsingContainer
+ https://bugs.webkit.org/show_bug.cgi?id=140750
+
+ Reviewed by Simon Fraser.
+
+ There's a short period of time when RenderObject::layer() still returns a valid pointer
+ even though we already cleared the hasLayer() flag.
+ Do not use the layer as repaint container in such cases.
+
+ * compositing/repaint-container-assertion-when-toggling-compositing-expected.txt: Added.
+ * compositing/repaint-container-assertion-when-toggling-compositing.html: Added.
+
2015-02-06 Said Abou-Hallawa <[email protected]>
Invalid cast in WebCore::SVGAnimateElement::calculateAnimatedValue.
Added: trunk/LayoutTests/compositing/repaint-container-assertion-when-toggling-compositing-expected.txt (0 => 179776)
--- trunk/LayoutTests/compositing/repaint-container-assertion-when-toggling-compositing-expected.txt (rev 0)
+++ trunk/LayoutTests/compositing/repaint-container-assertion-when-toggling-compositing-expected.txt 2015-02-07 04:35:58 UTC (rev 179776)
@@ -0,0 +1 @@
+PASS if no crash or assert in debug mode.
Added: trunk/LayoutTests/compositing/repaint-container-assertion-when-toggling-compositing.html (0 => 179776)
--- trunk/LayoutTests/compositing/repaint-container-assertion-when-toggling-compositing.html (rev 0)
+++ trunk/LayoutTests/compositing/repaint-container-assertion-when-toggling-compositing.html 2015-02-07 04:35:58 UTC (rev 179776)
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>This tests that we don't assert while finding the repaint container for the content that just lost compositing.</title>
+<script>
+ if (window.testRunner)
+ testRunner.dumpAsText();
+</script>
+</head>
+<body>
+<div style="-webkit-columns: 4;">PASS if no crash or assert in debug mode.</div>
+<script>
+ var head = document.getElementsByTagName("head")[0];
+ var div = document.getElementsByTagName("div")[0];
+ var style = document.createElement("style");
+ style.innerHTML="div {-webkit-animation-duration: 1s; -webkit-animation-timing-function: ease-in;}";
+ head.appendChild(style);
+ head.parentNode.removeChild(head);
+ document.execCommand("SelectAll");
+ div.setAttribute("style","color: red;");
+</script>
+</body>
+</html>
\ No newline at end of file
Modified: trunk/Source/WebCore/ChangeLog (179775 => 179776)
--- trunk/Source/WebCore/ChangeLog 2015-02-07 04:35:30 UTC (rev 179775)
+++ trunk/Source/WebCore/ChangeLog 2015-02-07 04:35:58 UTC (rev 179776)
@@ -1,3 +1,19 @@
+2015-02-06 Zalan Bujtas <[email protected]>
+
+ ASSERT repaintContainer->hasLayer() in WebCore::RenderObject::repaintUsingContainer
+ https://bugs.webkit.org/show_bug.cgi?id=140750
+
+ Reviewed by Simon Fraser.
+
+ There's a short period of time when RenderObject::layer() still returns a valid pointer
+ even though we already cleared the hasLayer() flag.
+ Do not use the layer as repaint container in such cases.
+
+ Test: compositing/repaint-container-assertion-when-toggling-compositing.html
+
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::enclosingLayer):
+
2015-02-06 Chris Dumez <[email protected]>
Have SQLiteStatement::database() return a reference
Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (179775 => 179776)
--- trunk/Source/WebCore/rendering/RenderObject.cpp 2015-02-07 04:35:30 UTC (rev 179775)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp 2015-02-07 04:35:58 UTC (rev 179776)
@@ -474,7 +474,7 @@
RenderLayer* RenderObject::enclosingLayer() const
{
for (auto& renderer : lineageOfType<RenderLayerModelObject>(*this)) {
- if (renderer.layer())
+ if (renderer.hasLayer())
return renderer.layer();
}
return nullptr;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes