Title: [144633] trunk
- Revision
- 144633
- Author
- [email protected]
- Date
- 2013-03-04 08:43:35 -0800 (Mon, 04 Mar 2013)
Log Message
[New Multicolumn] Make sure region styling works for columns inside regions.
https://bugs.webkit.org/show_bug.cgi?id=111276
Reviewed by Sam Weinig.
Source/WebCore:
Test: fast/regions/region-styling-in-columns.html
* rendering/RenderFlowThread.cpp:
(WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer):
(WebCore::CurrentRenderFlowThreadMaintainer::~CurrentRenderFlowThreadMaintainer):
* rendering/RenderFlowThread.h:
(CurrentRenderFlowThreadMaintainer):
Fix the CurrentRenderFlowThreadMaintainer so that it saves off the old render flow thread
and restores it when done. This effectively makes flow thread layout a push/pop stack,
since with in-flow threads, this is allowed. We assert that a nested flow thread is
in-flow to preserve the invariant that you can't nest CSS Regions flow thread.
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::computeChildrenStyleInRegion):
Add isInFlowRenderFlowThread() to the anonymous check to make sure a style gets made
for the nested flow thread.
LayoutTests:
* fast/regions/region-style-in-columns-expected.html: Added.
* fast/regions/region-style-in-columns.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (144632 => 144633)
--- trunk/LayoutTests/ChangeLog 2013-03-04 16:36:58 UTC (rev 144632)
+++ trunk/LayoutTests/ChangeLog 2013-03-04 16:43:35 UTC (rev 144633)
@@ -1,3 +1,13 @@
+2013-03-03 David Hyatt <[email protected]>
+
+ [New Multicolumn] Make sure region styling works for columns inside regions.
+ https://bugs.webkit.org/show_bug.cgi?id=111276
+
+ Reviewed by Sam Weinig.
+
+ * fast/regions/region-style-in-columns-expected.html: Added.
+ * fast/regions/region-style-in-columns.html: Added.
+
2013-03-04 Ádám Kallai <[email protected]>
[Qt][WK2] Unreviewed gardening. Updated platform specific expected files and png results.
Added: trunk/LayoutTests/fast/regions/region-style-in-columns-expected.html (0 => 144633)
--- trunk/LayoutTests/fast/regions/region-style-in-columns-expected.html (rev 0)
+++ trunk/LayoutTests/fast/regions/region-style-in-columns-expected.html 2013-03-04 16:43:35 UTC (rev 144633)
@@ -0,0 +1,11 @@
+<!doctype html>
+<html>
+ <head>
+ <style>
+ #p1 { color: #008000; position: absolute; top: 10px; }
+ </style>
+ </head>
+ <body>
+ <p id="p1">P color styled in region: #008000.</p>
+ </body>
+</html>
Added: trunk/LayoutTests/fast/regions/region-style-in-columns.html (0 => 144633)
--- trunk/LayoutTests/fast/regions/region-style-in-columns.html (rev 0)
+++ trunk/LayoutTests/fast/regions/region-style-in-columns.html 2013-03-04 16:43:35 UTC (rev 144633)
@@ -0,0 +1,31 @@
+<!doctype html>
+<html>
+ <!--
+ Test for https://bugs.webkit.org/show_bug.cgi?id=85633 ([CSSRegions]Add region styling support for color property) combined with the fact that
+ the content is inside columns.
+ You should not see any red text below.
+ -->
+ <head>
+ <script>
+ internals.settings.setRegionBasedColumnsEnabled(true)
+ </script>
+
+ <style>
+ .regionBox { width: 350px; height: 25px; }
+ .regionBox2 { width: 350px; height: 50px; }
+
+ #article1 { -webkit-flow-into: flow1; width:600px;}
+ #region1 { -webkit-flow-from: flow1; position: absolute; top: 10px; }
+ #p1 { color: #ff0000; -webkit-column-count:2;column-count:2; height:30px}
+ @-webkit-region #region1 {
+ #p1 { color: #008000; }
+ }
+ </style>
+ </head>
+ <body>
+ <div id="article1">
+ <p id="p1">P color styled in region: #008000.</p>
+ </div>
+ <div id="region1" class="regionBox"></div>
+ </body>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (144632 => 144633)
--- trunk/Source/WebCore/ChangeLog 2013-03-04 16:36:58 UTC (rev 144632)
+++ trunk/Source/WebCore/ChangeLog 2013-03-04 16:43:35 UTC (rev 144633)
@@ -1,3 +1,27 @@
+2013-03-03 David Hyatt <[email protected]>
+
+ [New Multicolumn] Make sure region styling works for columns inside regions.
+ https://bugs.webkit.org/show_bug.cgi?id=111276
+
+ Reviewed by Sam Weinig.
+
+ Test: fast/regions/region-styling-in-columns.html
+
+ * rendering/RenderFlowThread.cpp:
+ (WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer):
+ (WebCore::CurrentRenderFlowThreadMaintainer::~CurrentRenderFlowThreadMaintainer):
+ * rendering/RenderFlowThread.h:
+ (CurrentRenderFlowThreadMaintainer):
+ Fix the CurrentRenderFlowThreadMaintainer so that it saves off the old render flow thread
+ and restores it when done. This effectively makes flow thread layout a push/pop stack,
+ since with in-flow threads, this is allowed. We assert that a nested flow thread is
+ in-flow to preserve the invariant that you can't nest CSS Regions flow thread.
+
+ * rendering/RenderRegion.cpp:
+ (WebCore::RenderRegion::computeChildrenStyleInRegion):
+ Add isInFlowRenderFlowThread() to the anonymous check to make sure a style gets made
+ for the nested flow thread.
+
2013-03-04 Andrey Lushnikov <[email protected]>
Web Inspector: WebInspector.AceTextEditor throws a warning
Modified: trunk/Source/WebCore/rendering/RenderFlowThread.cpp (144632 => 144633)
--- trunk/Source/WebCore/rendering/RenderFlowThread.cpp 2013-03-04 16:36:58 UTC (rev 144632)
+++ trunk/Source/WebCore/rendering/RenderFlowThread.cpp 2013-03-04 16:43:35 UTC (rev 144633)
@@ -991,11 +991,13 @@
CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer(RenderFlowThread* renderFlowThread)
: m_renderFlowThread(renderFlowThread)
+ , m_previousRenderFlowThread(0)
{
if (!m_renderFlowThread)
return;
RenderView* view = m_renderFlowThread->view();
- ASSERT(!view->flowThreadController()->currentRenderFlowThread());
+ m_previousRenderFlowThread = view->flowThreadController()->currentRenderFlowThread();
+ ASSERT(!m_previousRenderFlowThread || !renderFlowThread->isRenderNamedFlowThread());
view->flowThreadController()->setCurrentRenderFlowThread(m_renderFlowThread);
}
@@ -1005,7 +1007,7 @@
return;
RenderView* view = m_renderFlowThread->view();
ASSERT(view->flowThreadController()->currentRenderFlowThread() == m_renderFlowThread);
- view->flowThreadController()->setCurrentRenderFlowThread(0);
+ view->flowThreadController()->setCurrentRenderFlowThread(m_previousRenderFlowThread);
}
Modified: trunk/Source/WebCore/rendering/RenderFlowThread.h (144632 => 144633)
--- trunk/Source/WebCore/rendering/RenderFlowThread.h 2013-03-04 16:36:58 UTC (rev 144632)
+++ trunk/Source/WebCore/rendering/RenderFlowThread.h 2013-03-04 16:43:35 UTC (rev 144633)
@@ -234,6 +234,7 @@
~CurrentRenderFlowThreadMaintainer();
private:
RenderFlowThread* m_renderFlowThread;
+ RenderFlowThread* m_previousRenderFlowThread;
};
} // namespace WebCore
Modified: trunk/Source/WebCore/rendering/RenderRegion.cpp (144632 => 144633)
--- trunk/Source/WebCore/rendering/RenderRegion.cpp 2013-03-04 16:36:58 UTC (rev 144632)
+++ trunk/Source/WebCore/rendering/RenderRegion.cpp 2013-03-04 16:43:35 UTC (rev 144633)
@@ -541,7 +541,7 @@
childStyleInRegion = it->value.style;
objectRegionStyleCached = true;
} else {
- if (child->isAnonymous())
+ if (child->isAnonymous() || child->isInFlowRenderFlowThread())
childStyleInRegion = RenderStyle::createAnonymousStyleWithDisplay(object->style(), child->style()->display());
else if (child->isText())
childStyleInRegion = RenderStyle::clone(object->style());
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes