Changeset 164988 in webkit
- Timestamp:
- Mar 3, 2014 9:16:06 AM (10 years ago)
- Location:
- trunk
- Files:
-
- 21 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r164967 r164988 1 2014-03-03 Andrei Bucur <abucur@adobe.com> 2 3 [CSS Regions] Overset computation is incorrect in some cases 4 https://bugs.webkit.org/show_bug.cgi?id=129032 5 6 Reviewed by Mihnea Ovidenie. 7 8 Adjust the tests to cope with the overset changes. 9 10 * fast/regions/cssom/element-region-overset-state-expected.txt: 11 * fast/regions/cssom/element-region-overset-state-vertical-rl-expected.txt: 12 * fast/regions/cssom/element-region-overset-state-vertical-rl.html: 13 * fast/regions/cssom/element-region-overset-state.html: 14 This test has a new case that verifies region clamping is correctly taken into account. 15 * fast/regions/cssom/webkit-named-flow-overset-expected.txt: 16 * fast/regions/cssom/webkit-named-flow-overset.html: 17 1 18 2014-03-02 Timothy Hatcher <timothy@apple.com> 2 19 -
trunk/LayoutTests/fast/regions/cssom/element-region-overset-state-expected.txt
r158668 r164988 11 11 PASS regionOverset('region_2') is "fit" 12 12 PASS regionOverset('region_3') is "empty" 13 Generate layout overflow 14 PASS regionOverset('region_1') is "fit" 15 PASS regionOverset('region_2') is "fit" 16 PASS regionOverset('region_3') is "empty" 13 17 Add more content 14 18 PASS regionOverset('region_1') is "fit" … … 18 22 PASS regionOverset('region_1') is "fit" 19 23 PASS regionOverset('region_2') is "fit" 20 PASS regionOverset('region_3') is " overset"24 PASS regionOverset('region_3') is "fit" 21 25 Empty content 22 26 PASS regionOverset('region_1') is "empty" -
trunk/LayoutTests/fast/regions/cssom/element-region-overset-state-vertical-rl-expected.txt
r158668 r164988 18 18 PASS regionOverset('region_1') is "fit" 19 19 PASS regionOverset('region_2') is "fit" 20 PASS regionOverset('region_3') is " overset"20 PASS regionOverset('region_3') is "fit" 21 21 Empty content 22 22 PASS regionOverset('region_1') is "empty" -
trunk/LayoutTests/fast/regions/cssom/element-region-overset-state-vertical-rl.html
r158668 r164988 93 93 shouldBeEqualToString("regionOverset('region_1')", "fit"); 94 94 shouldBeEqualToString("regionOverset('region_2')", "fit"); 95 shouldBeEqualToString("regionOverset('region_3')", " overset");95 shouldBeEqualToString("regionOverset('region_3')", "fit"); 96 96 97 97 debug("Empty content"); -
trunk/LayoutTests/fast/regions/cssom/element-region-overset-state.html
r158668 r164988 59 59 function addMoreContent() { 60 60 var c = document.getElementById("content"); 61 c.style.marginTop = 0; 61 62 c.style.height = 326; 63 var a = document.getElementById("article"); 64 a.style.height = "auto"; 65 } 66 67 function generateLayoutOverflow() { 68 var c = document.getElementById("content"); 69 c.style.marginTop = 400; 70 c.style.height = 400; 71 var a = document.getElementById("article"); 72 a.style.height = 150; 62 73 } 63 74 … … 70 81 flowContent("article"); 71 82 83 shouldBeEqualToString("regionOverset('region_1')", "fit"); 84 shouldBeEqualToString("regionOverset('region_2')", "fit"); 85 shouldBeEqualToString("regionOverset('region_3')", "empty"); 86 87 debug("Generate layout overflow"); 88 generateLayoutOverflow(); 72 89 shouldBeEqualToString("regionOverset('region_1')", "fit"); 73 90 shouldBeEqualToString("regionOverset('region_2')", "fit"); … … 86 103 shouldBeEqualToString("regionOverset('region_1')", "fit"); 87 104 shouldBeEqualToString("regionOverset('region_2')", "fit"); 88 shouldBeEqualToString("regionOverset('region_3')", " overset");105 shouldBeEqualToString("regionOverset('region_3')", "fit"); 89 106 90 107 debug("Empty content"); -
trunk/LayoutTests/fast/regions/cssom/webkit-named-flow-overset-expected.txt
r158668 r164988 8 8 PASS namedFlow.overset is true 9 9 PASS namedFlow.overset is false 10 PASS namedFlow.overset is true11 10 PASS namedFlow.overset is false 12 PASS namedFlow.overset is true 11 PASS namedFlow.overset is false 12 PASS namedFlow.overset is false 13 13 PASS namedFlow.overset is false 14 14 PASS namedFlow.overset is true -
trunk/LayoutTests/fast/regions/cssom/webkit-named-flow-overset.html
r158668 r164988 60 60 document.getElementById("article").style.webkitBoxShadow="0px 50px lime"; 61 61 62 // Overset should be true since the content does not fit in regions 63 shouldBe("namedFlow.overset", "true"); 62 // Overset should be false even if the content shadow overflows the last region 63 // since the visual overflow does not influence the overset property. 64 shouldBe("namedFlow.overset", "false"); 64 65 65 66 // Add the third region, overset should be false. … … 75 76 region.className = ""; 76 77 77 // Overset should be true since the content does not fit the regions 78 shouldBe("namedFlow.overset", "true"); 78 // Overset should be false even if the content shadow overflows the last region 79 // since the visual overflow does not influence the overset property. 80 shouldBe("namedFlow.overset", "false"); 79 81 80 82 // Remove the content from the flow, overset should be false. -
trunk/Source/WebCore/ChangeLog
r164987 r164988 1 2014-03-03 Andrei Bucur <abucur@adobe.com> 2 3 [CSS Regions] Overset computation is incorrect in some cases 4 https://bugs.webkit.org/show_bug.cgi?id=129032 5 6 Reviewed by Mihnea Ovidenie. 7 8 This patch reworks the way overset is computed for regions and named flows. 9 10 1. Regions overflow no longer trigger an overset changed event. This is because 11 the overflow of a box is contained within the region range of the box. The content 12 edge should be considered the logical bottom position of the content inside the 13 flow thread. 14 15 2. The regions events logic was moved from RenderFlowThread to RenderNamedFlowThread 16 and from RenderRegion to RenderNamedFlowFragment (including the regionOverset property). 17 18 3. The overset value of the named flow is no longer stored in the named flow. It is 19 extracted from the overset of the last region in the chain. 20 21 4. The regions overset is not computed every time the flow thread is laid out which 22 should improve performance for flows with many regions. With the patch, each region 23 computes the overset value during its layout when the flow thread is in the overflow 24 or the final layout phase. 25 26 5. The overset changed event is dispatched only at the end of the layout of the named flows, 27 after all the region overset changes have been considered. This means that the overset 28 event can't be dispatched in the middle of the auto-height processing algorithm that 29 requires multiple layout passes for the flow threads. 30 31 However, the region layout update event dispatch timing was not changed, it is dispatched 32 every time the flow thread has a layout. This preserves the current behavior of the event. 33 34 Tests: The old tests were modified to take into account the change. 35 36 * dom/Element.cpp: 37 (WebCore::Element::webkitRegionOverset): 38 * dom/WebKitNamedFlow.cpp: 39 (WebCore::WebKitNamedFlow::overset): 40 * inspector/InspectorCSSAgent.cpp: 41 (WebCore::InspectorCSSAgent::buildArrayForRegions): 42 * rendering/FlowThreadController.cpp: 43 (WebCore::FlowThreadController::updateFlowThreadsIntoMeasureContentPhase): 44 * rendering/RenderBlock.cpp: 45 (WebCore::RenderBlock::computeOverflow): 46 * rendering/RenderFlowThread.cpp: 47 (WebCore::RenderFlowThread::RenderFlowThread): 48 (WebCore::RenderFlowThread::layout): 49 * rendering/RenderFlowThread.h: 50 * rendering/RenderNamedFlowFragment.cpp: 51 (WebCore::RenderNamedFlowFragment::layoutBlock): 52 (WebCore::RenderNamedFlowFragment::setRegionOversetState): 53 (WebCore::RenderNamedFlowFragment::regionOversetState): 54 (WebCore::RenderNamedFlowFragment::updateOversetState): 55 * rendering/RenderNamedFlowFragment.h: 56 * rendering/RenderNamedFlowThread.cpp: 57 (WebCore::RenderNamedFlowThread::RenderNamedFlowThread): 58 (WebCore::RenderNamedFlowThread::computeOverflow): 59 (WebCore::RenderNamedFlowThread::layout): 60 (WebCore::RenderNamedFlowThread::dispatchNamedFlowEvents): 61 (WebCore::RenderNamedFlowThread::dispatchRegionLayoutUpdateEventIfNeeded): 62 (WebCore::RenderNamedFlowThread::dispatchRegionOversetChangeEventIfNeeded): 63 * rendering/RenderNamedFlowThread.h: 64 There's a new field called m_flowContentBottom that tracks the content bottom of the flow thread 65 after layout. This value is used to compute the overset value of the regions because it's not 66 affected by relative positioning or visual overflow such as shadows. 67 * rendering/RenderRegion.cpp: 68 * rendering/RenderRegion.h: 69 1 70 2014-03-03 Tomas Popela <tpopela@redhat.com> 2 71 -
trunk/Source/WebCore/dom/Element.cpp
r164964 r164988 2571 2571 return undefinedState; 2572 2572 2573 switch (re nderNamedFlowFragment()->regionOversetState()) {2573 switch (regionOversetState()) { 2574 2574 case RegionFit: { 2575 2575 DEFINE_STATIC_LOCAL(AtomicString, fitState, ("fit", AtomicString::ConstructFromLiteral)); -
trunk/Source/WebCore/dom/WebKitNamedFlow.cpp
r162602 r164988 70 70 // The renderer may be destroyed or created after the style update. 71 71 // Because this is called from JS, where the wrapper keeps a reference to the NamedFlow, no guard is necessary. 72 return m_parentFlowThread ? m_parentFlowThread->overset() : true; 72 if (!m_parentFlowThread || !m_parentFlowThread->hasRegions()) 73 return true; 74 75 const RenderNamedFlowFragment* namedFlowFragment = toRenderNamedFlowFragment(m_parentFlowThread->lastRegion()); 76 return namedFlowFragment->regionOversetState() == RegionOverset; 73 77 } 74 78 -
trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp
r164482 r164988 1197 1197 Inspector::TypeBuilder::CSS::Region::RegionOverset::Enum regionOverset; 1198 1198 1199 switch (toElement(regionList->item(i))->re nderNamedFlowFragment()->regionOversetState()) {1199 switch (toElement(regionList->item(i))->regionOversetState()) { 1200 1200 case RegionFit: 1201 1201 regionOverset = Inspector::TypeBuilder::CSS::Region::RegionOverset::Fit; -
trunk/Source/WebCore/rendering/FlowThreadController.cpp
r164699 r164988 247 247 ASSERT(flowRenderer->inFinalLayoutPhase()); 248 248 249 flowRenderer->dispatchNamedFlowEvents(); 249 250 flowRenderer->setLayoutPhase(RenderFlowThread::LayoutPhaseMeasureContent); 250 251 } -
trunk/Source/WebCore/rendering/RenderBlock.cpp
r164837 r164988 1591 1591 // Add visual overflow from theme. 1592 1592 addVisualOverflowFromTheme(); 1593 1594 if (isRenderNamedFlowThread())1595 toRenderNamedFlowThread(this)->computeOversetStateForRegions(oldClientAfterEdge);1596 1593 } 1597 1594 -
trunk/Source/WebCore/rendering/RenderFlowThread.cpp
r164858 r164988 59 59 , m_regionsHaveUniformLogicalWidth(true) 60 60 , m_regionsHaveUniformLogicalHeight(true) 61 , m_dispatchRegionLayoutUpdateEvent(false)62 , m_dispatchRegionOversetChangeEvent(false)63 61 , m_pageLogicalSizeChanged(false) 64 62 , m_layoutPhase(LayoutPhaseMeasureContent) … … 237 235 layer()->compositor().setCompositingLayersNeedRebuild(); 238 236 } 239 240 if (shouldDispatchRegionLayoutUpdateEvent())241 dispatchRegionLayoutUpdateEvent();242 243 if (shouldDispatchRegionOversetChangeEvent())244 dispatchRegionOversetChangeEvent();245 237 } 246 238 -
trunk/Source/WebCore/rendering/RenderFlowThread.h
r164858 r164988 210 210 private: 211 211 virtual bool isRenderFlowThread() const override final { return true; } 212 virtual void layout() override final;213 212 214 213 // Always create a RenderLayer for the RenderFlowThread so that we … … 220 219 221 220 virtual const char* renderName() const = 0; 221 virtual void layout() override; 222 222 223 223 // Overridden by columns/pages to set up an initial logical width of the page width even when … … 235 235 void updateLayerToRegionMappings(RenderLayer&, LayerToRegionMap&, RegionToLayerListMap&, bool& needsLayerUpdate); 236 236 void updateRegionForRenderLayer(RenderLayer*, LayerToRegionMap&, RegionToLayerListMap&, bool& needsLayerUpdate); 237 238 void setDispatchRegionLayoutUpdateEvent(bool value) { m_dispatchRegionLayoutUpdateEvent = value; }239 bool shouldDispatchRegionLayoutUpdateEvent() { return m_dispatchRegionLayoutUpdateEvent; }240 241 void setDispatchRegionOversetChangeEvent(bool value) { m_dispatchRegionOversetChangeEvent = value; }242 bool shouldDispatchRegionOversetChangeEvent() const { return m_dispatchRegionOversetChangeEvent; }243 244 // Override if the flow thread implementation supports dispatching events when the flow layout is updated (e.g. for named flows)245 virtual void dispatchRegionLayoutUpdateEvent() { m_dispatchRegionLayoutUpdateEvent = false; }246 virtual void dispatchRegionOversetChangeEvent() { m_dispatchRegionOversetChangeEvent = false; }247 237 248 238 void initializeRegionsComputedAutoHeight(RenderRegion* = 0); … … 340 330 bool m_regionsHaveUniformLogicalWidth : 1; 341 331 bool m_regionsHaveUniformLogicalHeight : 1; 342 bool m_dispatchRegionLayoutUpdateEvent : 1;343 bool m_dispatchRegionOversetChangeEvent : 1;344 332 bool m_pageLogicalSizeChanged : 1; 345 333 unsigned m_layoutPhase : 2; -
trunk/Source/WebCore/rendering/RenderNamedFlowFragment.cpp
r164482 r164988 258 258 oldRegionRect = oldRegionRect.transposedRect(); 259 259 260 if (m_flowThread->inOverflowLayoutPhase() || m_flowThread->inFinalLayoutPhase()) 260 if (m_flowThread->inOverflowLayoutPhase() || m_flowThread->inFinalLayoutPhase()) { 261 261 computeOverflowFromFlowThread(); 262 updateOversetState(); 263 } 262 264 263 265 if (hasAutoLogicalHeight() && m_flowThread->inMeasureContentLayoutPhase()) { … … 271 273 m_flowThread->invalidateRegions(); 272 274 } 275 } 276 277 void RenderNamedFlowFragment::setRegionOversetState(RegionOversetState state) 278 { 279 ASSERT(generatingElement()); 280 281 generatingElement()->setRegionOversetState(state); 282 } 283 284 RegionOversetState RenderNamedFlowFragment::regionOversetState() const 285 { 286 ASSERT(generatingElement()); 287 288 if (!isValid()) 289 return RegionUndefined; 290 291 return generatingElement()->regionOversetState(); 292 } 293 294 void RenderNamedFlowFragment::updateOversetState() 295 { 296 ASSERT(isValid()); 297 298 RenderNamedFlowThread* flowThread = namedFlowThread(); 299 ASSERT(flowThread && (flowThread->inOverflowLayoutPhase() || flowThread->inFinalLayoutPhase())); 300 301 LayoutUnit flowContentBottom = flowThread->flowContentBottom(); 302 bool isHorizontalWritingMode = flowThread->isHorizontalWritingMode(); 303 304 LayoutUnit flowMin = flowContentBottom - (isHorizontalWritingMode ? flowThreadPortionRect().y() : flowThreadPortionRect().x()); 305 LayoutUnit flowMax = flowContentBottom - (isHorizontalWritingMode ? flowThreadPortionRect().maxY() : flowThreadPortionRect().maxX()); 306 307 RegionOversetState previousState = regionOversetState(); 308 RegionOversetState state = RegionFit; 309 if (flowMin <= 0) 310 state = RegionEmpty; 311 if (flowMax > 0 && isLastRegion()) 312 state = RegionOverset; 313 314 setRegionOversetState(state); 315 316 // Determine whether the NamedFlow object should dispatch a regionLayoutUpdate event 317 if (previousState != state 318 || state == RegionFit 319 || state == RegionOverset) 320 flowThread->setDispatchRegionLayoutUpdateEvent(true); 321 322 if (previousState != state) 323 flowThread->setDispatchRegionOversetChangeEvent(true); 273 324 } 274 325 -
trunk/Source/WebCore/rendering/RenderNamedFlowFragment.h
r164482 r164988 105 105 bool hasComputedAutoHeight() const { return m_hasComputedAutoHeight; } 106 106 107 RegionOversetState regionOversetState() const; 108 107 109 virtual void attachRegion() override; 108 110 virtual void detachRegion() override; … … 127 129 128 130 bool shouldHaveAutoLogicalHeight() const; 131 132 void updateOversetState(); 133 void setRegionOversetState(RegionOversetState); 129 134 130 135 virtual void layoutBlock(bool relayoutChildren, LayoutUnit pageLogicalHeight = 0) override; -
trunk/Source/WebCore/rendering/RenderNamedFlowThread.cpp
r164837 r164988 48 48 RenderNamedFlowThread::RenderNamedFlowThread(Document& document, PassRef<RenderStyle> style, PassRef<WebKitNamedFlow> namedFlow) 49 49 : RenderFlowThread(document, std::move(style)) 50 , m_overset(true)51 50 , m_hasRegionsWithStyling(false) 51 , m_dispatchRegionLayoutUpdateEvent(false) 52 , m_dispatchRegionOversetChangeEvent(false) 52 53 , m_namedFlow(std::move(namedFlow)) 53 54 , m_regionLayoutUpdateEventTimer(this, &RenderNamedFlowThread::regionLayoutUpdateEventTimerFired) … … 355 356 } 356 357 357 void RenderNamedFlowThread::computeOversetStateForRegions(LayoutUnit oldClientAfterEdge) 358 { 359 LayoutUnit height = oldClientAfterEdge; 360 361 // FIXME: the visual overflow of middle region (if it is the last one to contain any content in a render flow thread) 362 // might not be taken into account because the render flow thread height is greater that that regions height + its visual overflow 363 // because of how computeLogicalHeight is implemented for RenderNamedFlowThread (as a sum of all regions height). 364 // This means that the middle region will be marked as fit (even if it has visual overflow flowing into the next region) 365 if (hasRenderOverflow() 366 && ( (isHorizontalWritingMode() && visualOverflowRect().maxY() > clientBoxRect().maxY()) 367 || (!isHorizontalWritingMode() && visualOverflowRect().maxX() > clientBoxRect().maxX()))) 368 height = isHorizontalWritingMode() ? visualOverflowRect().maxY() : visualOverflowRect().maxX(); 369 370 RenderNamedFlowFragment* lastFragment = toRenderNamedFlowFragment(lastRegion()); 371 for (auto& namedFlowFragment : m_regionList) { 372 LayoutUnit flowMin = height - (isHorizontalWritingMode() ? namedFlowFragment->flowThreadPortionRect().y() : namedFlowFragment->flowThreadPortionRect().x()); 373 LayoutUnit flowMax = height - (isHorizontalWritingMode() ? namedFlowFragment->flowThreadPortionRect().maxY() : namedFlowFragment->flowThreadPortionRect().maxX()); 374 RegionOversetState previousState = namedFlowFragment->regionOversetState(); 375 RegionOversetState state = RegionFit; 376 if (flowMin <= 0) 377 state = RegionEmpty; 378 if (flowMax > 0 && namedFlowFragment == lastFragment) 379 state = RegionOverset; 380 namedFlowFragment->setRegionOversetState(state); 381 // determine whether the NamedFlow object should dispatch a regionLayoutUpdate event 382 // FIXME: currently it cannot determine whether a region whose regionOverset state remained either "fit" or "overset" has actually 383 // changed, so it just assumes that the NamedFlow should dispatch the event 384 if (previousState != state 385 || state == RegionFit 386 || state == RegionOverset) 387 setDispatchRegionLayoutUpdateEvent(true); 388 389 if (previousState != state) 390 setDispatchRegionOversetChangeEvent(true); 391 } 392 358 void RenderNamedFlowThread::computeOverflow(LayoutUnit oldClientAfterEdge, bool recomputeFloats) 359 { 360 RenderFlowThread::computeOverflow(oldClientAfterEdge, recomputeFloats); 361 362 m_flowContentBottom = oldClientAfterEdge; 363 } 364 365 void RenderNamedFlowThread::layout() 366 { 367 RenderFlowThread::layout(); 368 393 369 // If the number of regions has changed since we last computed the overset property, schedule the regionOversetChange event. 394 370 if (previousRegionCountChanged()) { … … 397 373 } 398 374 399 // With the regions overflow state computed we can also set the overset flag for the named flow. 400 // If there are no valid regions in the chain, overset is true. 401 m_overset = lastFragment ? lastFragment->regionOversetState() == RegionOverset : true; 375 dispatchRegionLayoutUpdateEventIfNeeded(); 376 } 377 378 void RenderNamedFlowThread::dispatchNamedFlowEvents() 379 { 380 ASSERT(inFinalLayoutPhase()); 381 382 dispatchRegionOversetChangeEventIfNeeded(); 402 383 } 403 384 … … 530 511 } 531 512 532 void RenderNamedFlowThread::dispatchRegionLayoutUpdateEvent() 533 { 534 RenderFlowThread::dispatchRegionLayoutUpdateEvent(); 513 void RenderNamedFlowThread::dispatchRegionLayoutUpdateEventIfNeeded() 514 { 515 if (!m_dispatchRegionLayoutUpdateEvent) 516 return; 517 518 m_dispatchRegionLayoutUpdateEvent = false; 535 519 InspectorInstrumentation::didUpdateRegionLayout(&document(), &namedFlow()); 536 520 … … 539 523 } 540 524 541 void RenderNamedFlowThread::dispatchRegionOversetChangeEvent() 542 { 543 RenderFlowThread::dispatchRegionOversetChangeEvent(); 525 void RenderNamedFlowThread::dispatchRegionOversetChangeEventIfNeeded() 526 { 527 if (!m_dispatchRegionOversetChangeEvent) 528 return; 529 530 m_dispatchRegionOversetChangeEvent = false; 544 531 InspectorInstrumentation::didChangeRegionOverset(&document(), &namedFlow()); 545 532 -
trunk/Source/WebCore/rendering/RenderNamedFlowThread.h
r164837 r164988 71 71 LayoutRect decorationsClipRectForBoxInNamedFlowFragment(const RenderBox&, RenderNamedFlowFragment&) const; 72 72 73 bool overset() const { return m_overset; }74 void computeOversetStateForRegions(LayoutUnit oldClientAfterEdge);75 76 73 void registerNamedFlowContentElement(Element&); 77 74 void unregisterNamedFlowContentElement(Element&); … … 92 89 virtual void removeFlowChildInfo(RenderObject*) override final; 93 90 91 LayoutUnit flowContentBottom() const { return m_flowContentBottom; } 92 void dispatchNamedFlowEvents(); 93 94 void setDispatchRegionLayoutUpdateEvent(bool value) { m_dispatchRegionLayoutUpdateEvent = value; } 95 void setDispatchRegionOversetChangeEvent(bool value) { m_dispatchRegionOversetChangeEvent = value; } 96 94 97 protected: 95 98 void setMarkForDestruction(); … … 100 103 virtual bool isRenderNamedFlowThread() const override { return true; } 101 104 virtual bool isChildAllowed(const RenderObject&, const RenderStyle&) const override; 105 virtual void computeOverflow(LayoutUnit, bool = false) override; 106 virtual void layout() override final; 102 107 103 v irtual void dispatchRegionLayoutUpdateEvent() override;104 v irtual void dispatchRegionOversetChangeEvent() override;108 void dispatchRegionLayoutUpdateEventIfNeeded(); 109 void dispatchRegionOversetChangeEventIfNeeded(); 105 110 106 111 bool dependsOn(RenderNamedFlowThread* otherRenderFlowThread) const; … … 138 143 RenderRegionList m_invalidRegionList; 139 144 140 bool m_overset : 1;141 145 bool m_hasRegionsWithStyling : 1; 146 bool m_dispatchRegionLayoutUpdateEvent : 1; 147 bool m_dispatchRegionOversetChangeEvent : 1; 142 148 143 149 // The DOM Object that represents a named flow. … … 146 152 Timer<RenderNamedFlowThread> m_regionLayoutUpdateEventTimer; 147 153 Timer<RenderNamedFlowThread> m_regionOversetChangeEventTimer; 154 155 LayoutUnit m_flowContentBottom; 148 156 }; 149 157 -
trunk/Source/WebCore/rendering/RenderRegion.cpp
r164594 r164988 182 182 } 183 183 184 RegionOversetState RenderRegion::regionOversetState() const185 {186 ASSERT(generatingElement());187 188 if (!isValid())189 return RegionUndefined;190 191 return generatingElement()->regionOversetState();192 }193 194 void RenderRegion::setRegionOversetState(RegionOversetState state)195 {196 ASSERT(generatingElement());197 198 generatingElement()->setRegionOversetState(state);199 }200 201 184 LayoutUnit RenderRegion::pageLogicalTopForOffset(LayoutUnit /* offset */) const 202 185 { -
trunk/Source/WebCore/rendering/RenderRegion.h
r164594 r164988 79 79 bool isLastRegion() const; 80 80 bool shouldClipFlowThreadContent() const; 81 82 RegionOversetState regionOversetState() const;83 void setRegionOversetState(RegionOversetState);84 81 85 82 // These methods represent the width and height of a "page" and for a RenderRegion they are just the
Note: See TracChangeset
for help on using the changeset viewer.