Changeset 106544 in webkit
- Timestamp:
- Feb 2, 2012 2:25:25 AM (12 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r106539 r106544 1 2012-02-02 Raul Hudea <rhudea@adobe.com> 2 3 Regions should ignore the saved currentRenderFlowThread during repainting 4 because if there are imbricated flow threads, it might end using the wrong one. 5 6 [CSSRegions] Assert failure in RenderView::computeRectForRepaint 7 https://bugs.webkit.org/show_bug.cgi?id=77430 8 9 Reviewed by David Hyatt. 10 11 * fast/regions/imbricated-flow-threads-crash-expected.txt: Added. 12 * fast/regions/imbricated-flow-threads-crash.html: Added. 13 1 14 2012-02-02 Kentaro Hara <haraken@chromium.org> 2 15 -
trunk/Source/WebCore/ChangeLog
r106542 r106544 1 2012-02-02 Raul Hudea <rhudea@adobe.com> 2 3 Regions should ignore the saved currentRenderFlowThread during repainting 4 because if there are imbricated flow threads, it might end using the wrong one. 5 6 [CSSRegions] Assert failure in RenderView::computeRectForRepaint 7 https://bugs.webkit.org/show_bug.cgi?id=77430 8 9 Reviewed by David Hyatt. 10 11 Test: fast/regions/imbricated-flow-threads-crash.html 12 13 * rendering/RenderFlowThread.cpp: 14 (CurrentRenderFlowThreadDisabler): 15 (WebCore::CurrentRenderFlowThreadDisabler::CurrentRenderFlowThreadDisabler): 16 (WebCore::CurrentRenderFlowThreadDisabler::~CurrentRenderFlowThreadDisabler): 17 (WebCore): 18 (WebCore::RenderFlowThread::repaintRectangleInRegions): 19 1 20 2012-02-02 Kinuko Yasuda <kinuko@chromium.org> 2 21 -
trunk/Source/WebCore/rendering/RenderFlowThread.cpp
r106281 r106544 300 300 }; 301 301 302 class CurrentRenderFlowThreadDisabler { 303 WTF_MAKE_NONCOPYABLE(CurrentRenderFlowThreadDisabler); 304 public: 305 CurrentRenderFlowThreadDisabler(RenderView* view) 306 : m_view(view) 307 , m_renderFlowThread(0) 308 { 309 m_renderFlowThread = m_view->currentRenderFlowThread(); 310 if (m_renderFlowThread) 311 view->setCurrentRenderFlowThread(0); 312 } 313 ~CurrentRenderFlowThreadDisabler() 314 { 315 if (m_renderFlowThread) 316 m_view->setCurrentRenderFlowThread(m_renderFlowThread); 317 } 318 private: 319 RenderView* m_view; 320 RenderFlowThread* m_renderFlowThread; 321 }; 322 302 323 void RenderFlowThread::layout() 303 324 { … … 521 542 region->flipForWritingMode(clippedRect); 522 543 LayoutStateDisabler layoutStateDisabler(view()); // We can't use layout state to repaint, since the region is somewhere else. 544 545 // Can't use currentFlowThread as it possible to have imbricated flow threads and the wrong one could be used, 546 // so, we let each region figure out the proper enclosing flow thread 547 CurrentRenderFlowThreadDisabler disabler(view()); 523 548 region->repaintRectangle(clippedRect, immediate); 524 549 }
Note: See TracChangeset
for help on using the changeset viewer.