Changeset 166715 in webkit
- Timestamp:
- Apr 3, 2014 6:27:53 AM (10 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r166714 r166715 1 2014-04-03 Andrei Bucur <abucur@adobe.com> 2 3 [CSS Regions] Include region range information when printing the render tree 4 https://bugs.webkit.org/show_bug.cgi?id=131159 5 6 Reviewed by Mihnea Ovidenie. 7 8 With this change showRenderObject() will print the region range for objects inside 9 a flow thread. The format is: 10 Rs: <startRegion> Re: <endRegion> 11 12 Because this can be called anytime during debugging, it's necessary to disable the 13 current flow thread caching to prevent using the wrong flow thread for an object. 14 15 Tests: No new tests, no functional change. 16 17 * rendering/RenderFlowThread.cpp: 18 (WebCore::CurrentRenderFlowThreadDisabler::CurrentRenderFlowThreadDisabler): 19 (WebCore::CurrentRenderFlowThreadDisabler::~CurrentRenderFlowThreadDisabler): 20 * rendering/RenderFlowThread.h: 21 * rendering/RenderObject.cpp: 22 (WebCore::RenderObject::showRegionsInformation): Added. 23 (WebCore::RenderObject::showRenderObject): 24 * rendering/RenderObject.h: 25 1 26 2014-04-03 Antti Koivisto <antti@apple.com> 2 27 -
trunk/Source/WebCore/rendering/RenderFlowThread.cpp
r166631 r166715 130 130 m_regionsInvalidated = true; 131 131 } 132 133 class CurrentRenderFlowThreadDisabler {134 WTF_MAKE_NONCOPYABLE(CurrentRenderFlowThreadDisabler);135 public:136 CurrentRenderFlowThreadDisabler(RenderView* view)137 : m_view(view)138 , m_renderFlowThread(0)139 {140 m_renderFlowThread = m_view->flowThreadController().currentRenderFlowThread();141 if (m_renderFlowThread)142 view->flowThreadController().setCurrentRenderFlowThread(0);143 }144 ~CurrentRenderFlowThreadDisabler()145 {146 if (m_renderFlowThread)147 m_view->flowThreadController().setCurrentRenderFlowThread(m_renderFlowThread);148 }149 private:150 RenderView* m_view;151 RenderFlowThread* m_renderFlowThread;152 };153 132 154 133 void RenderFlowThread::validateRegions() … … 1459 1438 } 1460 1439 1440 CurrentRenderFlowThreadDisabler::CurrentRenderFlowThreadDisabler(RenderView* view) 1441 : m_view(view) 1442 , m_renderFlowThread(0) 1443 { 1444 m_renderFlowThread = m_view->flowThreadController().currentRenderFlowThread(); 1445 if (m_renderFlowThread) 1446 view->flowThreadController().setCurrentRenderFlowThread(0); 1447 } 1448 1449 CurrentRenderFlowThreadDisabler::~CurrentRenderFlowThreadDisabler() 1450 { 1451 if (m_renderFlowThread) 1452 m_view->flowThreadController().setCurrentRenderFlowThread(m_renderFlowThread); 1453 } 1454 1461 1455 1462 1456 } // namespace WebCore -
trunk/Source/WebCore/rendering/RenderFlowThread.h
r166489 r166715 349 349 }; 350 350 351 class CurrentRenderFlowThreadDisabler { 352 WTF_MAKE_NONCOPYABLE(CurrentRenderFlowThreadDisabler); 353 public: 354 CurrentRenderFlowThreadDisabler(RenderView*); 355 ~CurrentRenderFlowThreadDisabler(); 356 private: 357 RenderView* m_view; 358 RenderFlowThread* m_renderFlowThread; 359 }; 360 351 361 // This structure is used by PODIntervalTree for debugging. 352 362 #ifndef NDEBUG -
trunk/Source/WebCore/rendering/RenderObject.cpp
r166138 r166715 1437 1437 } 1438 1438 1439 void RenderObject::showRegionsInformation(int& printedCharacters) const 1440 { 1441 CurrentRenderFlowThreadDisabler flowThreadDisabler(&view()); 1442 1443 if (RenderFlowThread* flowThread = flowThreadContainingBlock()) { 1444 const RenderBox* box = isBox() ? toRenderBox(this) : nullptr; 1445 if (box) { 1446 RenderRegion* startRegion = nullptr; 1447 RenderRegion* endRegion = nullptr; 1448 flowThread->getRegionRangeForBox(box, startRegion, endRegion); 1449 printedCharacters += fprintf(stderr, " Rs:%p Re:%p", startRegion, endRegion); 1450 } 1451 } 1452 } 1453 1439 1454 void RenderObject::showRenderObject(int printedCharacters) const 1440 1455 { … … 1447 1462 1448 1463 printedCharacters += fprintf(stderr, "%s %p", renderName(), this); 1464 showRegionsInformation(printedCharacters); 1449 1465 1450 1466 if (node()) { -
trunk/Source/WebCore/rendering/RenderObject.h
r166124 r166715 278 278 // We don't make printedCharacters an optional parameter so that 279 279 // showRenderObject can be called from gdb easily. 280 void showRenderObject(int printedCharacters) const; 281 void showRenderTreeAndMark(const RenderObject* markedObject1 = 0, const char* markedLabel1 = 0, const RenderObject* markedObject2 = 0, const char* markedLabel2 = 0, int depth = 0) const; 280 void showRenderObject(int) const; 281 void showRenderTreeAndMark(const RenderObject* = 0, const char* = 0, const RenderObject* = 0, const char* = 0, int = 0) const; 282 void showRegionsInformation(int&) const; 282 283 #endif 283 284
Note: See TracChangeset
for help on using the changeset viewer.