Make FrameView and Frame TextStream-loggable
https://bugs.webkit.org/show_bug.cgi?id=209826
Reviewed by Darin Adler.
Provide operator<<(TextStream&, ...) for Frame and FrameView so they can be logged.
Only basic data logging currently; this can be adjusted as necessary.
* page/Frame.cpp:
(WebCore::operator<<):
* page/Frame.h:
* page/FrameView.cpp:
(WebCore::operator<<):
* page/FrameView.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259335 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 4ef9c59..6276b96 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,20 @@
+2020-03-31 Simon Fraser <simon.fraser@apple.com>
+
+ Make FrameView and Frame TextStream-loggable
+ https://bugs.webkit.org/show_bug.cgi?id=209826
+
+ Reviewed by Darin Adler.
+
+ Provide operator<<(TextStream&, ...) for Frame and FrameView so they can be logged.
+ Only basic data logging currently; this can be adjusted as necessary.
+
+ * page/Frame.cpp:
+ (WebCore::operator<<):
+ * page/Frame.h:
+ * page/FrameView.cpp:
+ (WebCore::operator<<):
+ * page/FrameView.h:
+
2020-03-31 Zalan Bujtas <zalan@apple.com>
[MultiColumn] Call RenderTreeBuilder::multiColumnDescendantInserted only when the enclosing fragmented flow has changed
diff --git a/Source/WebCore/page/Frame.cpp b/Source/WebCore/page/Frame.cpp
index 519f3ef..69146c3 100644
--- a/Source/WebCore/page/Frame.cpp
+++ b/Source/WebCore/page/Frame.cpp
@@ -106,6 +106,7 @@
#include <wtf/RefCountedLeakCounter.h>
#include <wtf/StdLibExtras.h>
#include <wtf/text/StringBuilder.h>
+#include <wtf/text/TextStream.h>
#define RELEASE_LOG_ERROR_IF_ALLOWED(channel, fmt, ...) RELEASE_LOG_ERROR_IF(isAlwaysOnLoggingAllowed(), channel, "%p - Frame::" fmt, this, ##__VA_ARGS__)
@@ -1052,6 +1053,12 @@
deref();
}
+TextStream& operator<<(TextStream& ts, const Frame& frame)
+{
+ ts << "Frame " << &frame << " view " << frame.view() << " (is main frame " << frame.isMainFrame() << ") " << (frame.document() ? frame.document()->documentURI() : emptyString());
+ return ts;
+}
+
} // namespace WebCore
#undef RELEASE_LOG_ERROR_IF_ALLOWED
diff --git a/Source/WebCore/page/Frame.h b/Source/WebCore/page/Frame.h
index 6fdfa68..2520e03 100644
--- a/Source/WebCore/page/Frame.h
+++ b/Source/WebCore/page/Frame.h
@@ -59,6 +59,10 @@
class RegularExpression;
} }
+namespace WTF {
+class TextStream;
+}
+
namespace WebCore {
class CSSAnimationController;
@@ -412,6 +416,8 @@
return m_mainFrame;
}
+WTF::TextStream& operator<<(WTF::TextStream&, const Frame&);
+
} // namespace WebCore
SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::Frame)
diff --git a/Source/WebCore/page/FrameView.cpp b/Source/WebCore/page/FrameView.cpp
index f984fc2..79a41e9 100644
--- a/Source/WebCore/page/FrameView.cpp
+++ b/Source/WebCore/page/FrameView.cpp
@@ -5089,7 +5089,6 @@
return ScrollableArea::handleWheelEvent(wheelEvent);
}
-
bool FrameView::isVerticalDocument() const
{
RenderView* renderView = this->renderView();
@@ -5445,6 +5444,12 @@
return renderView() && renderView()->shouldPlaceBlockDirectionScrollbarOnLeft();
}
+TextStream& operator<<(TextStream& ts, const FrameView& view)
+{
+ ts << "FrameView " << &view << " frame " << view.frame();
+ return ts;
+}
+
} // namespace WebCore
#undef PAGE_ID
diff --git a/Source/WebCore/page/FrameView.h b/Source/WebCore/page/FrameView.h
index 2f333e1..bb95785 100644
--- a/Source/WebCore/page/FrameView.h
+++ b/Source/WebCore/page/FrameView.h
@@ -49,6 +49,10 @@
#include <wtf/WeakHashSet.h>
#include <wtf/text/WTFString.h>
+namespace WTF {
+class TextStream;
+}
+
namespace WebCore {
class AXObjectCache;
@@ -954,6 +958,8 @@
m_visuallyNonEmptyPixelCount += size.width() * size.height();
}
+WTF::TextStream& operator<<(WTF::TextStream&, const FrameView&);
+
} // namespace WebCore
SPECIALIZE_TYPE_TRAITS_WIDGET(FrameView, isFrameView())