Title: [98008] trunk/Source/WebCore
- Revision
- 98008
- Author
- [email protected]
- Date
- 2011-10-20 12:05:00 -0700 (Thu, 20 Oct 2011)
Log Message
Add a way to print the Frame tree from the debugger.
Reviewed by Sam Weinig.
Add a showFrameTree(frame) method, callable from gdb,
which dumps the Frame tree, including the frame's view,
document, owner element and URI.
* page/FrameTree.cpp:
(printIndent):
(printFrames):
(showFrameTree):
* page/FrameTree.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateClipRects):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForFrame):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (98007 => 98008)
--- trunk/Source/WebCore/ChangeLog 2011-10-20 19:03:21 UTC (rev 98007)
+++ trunk/Source/WebCore/ChangeLog 2011-10-20 19:05:00 UTC (rev 98008)
@@ -1,3 +1,23 @@
+2011-10-20 Simon Fraser <[email protected]>
+
+ Add a way to print the Frame tree from the debugger.
+
+ Reviewed by Sam Weinig.
+
+ Add a showFrameTree(frame) method, callable from gdb,
+ which dumps the Frame tree, including the frame's view,
+ document, owner element and URI.
+
+ * page/FrameTree.cpp:
+ (printIndent):
+ (printFrames):
+ (showFrameTree):
+ * page/FrameTree.h:
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::updateClipRects):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::requiresCompositingForFrame):
+
2011-10-20 Andreas Kling <[email protected]>
Remove StyleBase::cssText().
Modified: trunk/Source/WebCore/page/FrameTree.cpp (98007 => 98008)
--- trunk/Source/WebCore/page/FrameTree.cpp 2011-10-20 19:03:21 UTC (rev 98007)
+++ trunk/Source/WebCore/page/FrameTree.cpp 2011-10-20 19:05:00 UTC (rev 98008)
@@ -335,3 +335,46 @@
}
} // namespace WebCore
+
+#ifndef NDEBUG
+
+static void printIndent(int indent)
+{
+ for (int i = 0; i < indent; ++i)
+ printf(" ");
+}
+
+static void printFrames(const WebCore::Frame* frame, const WebCore::Frame* targetFrame, int indent)
+{
+ if (frame == targetFrame) {
+ printf("--> ");
+ printIndent(indent - 1);
+ } else
+ printIndent(indent);
+
+ WebCore::FrameView* view = frame->view();
+ printf("Frame %p %dx%d\n", frame, view ? view->width() : 0, view ? view->height() : 0);
+ printIndent(indent);
+ printf(" ownerElement=%p\n", frame->ownerElement());
+ printIndent(indent);
+ printf(" frameView=%p\n", view);
+ printIndent(indent);
+ printf(" document=%p\n", frame->document());
+ printIndent(indent);
+ printf(" uri=%s\n\n", frame->document()->documentURI().utf8().data());
+
+ for (WebCore::Frame* child = frame->tree()->firstChild(); child; child = child->tree()->nextSibling())
+ printFrames(child, targetFrame, indent + 1);
+}
+
+void showFrameTree(const WebCore::Frame* frame)
+{
+ if (!frame) {
+ printf("Null input frame\n");
+ return;
+ }
+
+ printFrames(frame->tree()->top(), frame, 0);
+}
+
+#endif
Modified: trunk/Source/WebCore/page/FrameTree.h (98007 => 98008)
--- trunk/Source/WebCore/page/FrameTree.h 2011-10-20 19:03:21 UTC (rev 98007)
+++ trunk/Source/WebCore/page/FrameTree.h 2011-10-20 19:05:00 UTC (rev 98008)
@@ -90,4 +90,9 @@
} // namespace WebCore
+#ifndef NDEBUG
+// Outside the WebCore namespace for ease of invocation from gdb.
+void showFrameTree(const WebCore::Frame*);
+#endif
+
#endif // FrameTree_h
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes