Title: [234087] trunk/Tools
Revision
234087
Author
[email protected]
Date
2018-07-21 21:09:44 -0700 (Sat, 21 Jul 2018)

Log Message

Add lldb formatters for WebCore geometry types
https://bugs.webkit.org/show_bug.cgi?id=187884

Reviewed by Daniel Bates.

Add lldb formatters for IntPoint, IntSize, IntRect, FloatPoint, FloatSize, FloatRect
and LayoutRect.

Testing is blocked by webkit.org/b/187872.

* lldb/lldbWebKitTester/main.cpp:
(testSummaryProviders):
* lldb/lldb_webkit.py:
(__lldb_init_module.lldb_webkit):
(__lldb_init_module):
(WebCoreLayoutRect_SummaryProvider):
(WebCoreIntSize_SummaryProvider):
(WebCoreIntPoint_SummaryProvider):
(WebCoreFloatSize_SummaryProvider):
(WebCoreFloatPoint_SummaryProvider):
(WebCoreIntRect_SummaryProvider):
(WebCoreFloatRect_SummaryProvider):
(WebCoreLayoutRectProvider):
(WebCoreLayoutRectProvider.__init__):
(WebCoreLayoutRectProvider.get_x):
(WebCoreLayoutRectProvider.get_y):
(WebCoreLayoutRectProvider.get_width):
(WebCoreLayoutRectProvider.get_height):
(WebCoreIntPointProvider):
(WebCoreIntPointProvider.__init__):
(WebCoreIntPointProvider.get_x):
(WebCoreIntPointProvider.get_y):
(WebCoreIntSizeProvider):
(WebCoreIntSizeProvider.__init__):
(WebCoreIntSizeProvider.get_width):
(WebCoreIntSizeProvider.get_height):
(WebCoreIntRectProvider):
(WebCoreIntRectProvider.__init__):
(WebCoreIntRectProvider.get_x):
(WebCoreIntRectProvider.get_y):
(WebCoreIntRectProvider.get_width):
(WebCoreIntRectProvider.get_height):
(WebCoreFloatPointProvider):
(WebCoreFloatPointProvider.__init__):
(WebCoreFloatPointProvider.get_x):
(WebCoreFloatPointProvider.get_y):
(WebCoreFloatSizeProvider):
(WebCoreFloatSizeProvider.__init__):
(WebCoreFloatSizeProvider.get_width):
(WebCoreFloatSizeProvider.get_height):
(WebCoreFloatRectProvider):
(WebCoreFloatRectProvider.__init__):
(WebCoreFloatRectProvider.get_x):
(WebCoreFloatRectProvider.get_y):
(WebCoreFloatRectProvider.get_width):
(WebCoreFloatRectProvider.get_height):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (234086 => 234087)


--- trunk/Tools/ChangeLog	2018-07-22 02:48:16 UTC (rev 234086)
+++ trunk/Tools/ChangeLog	2018-07-22 04:09:44 UTC (rev 234087)
@@ -1,3 +1,62 @@
+2018-07-21  Simon Fraser  <[email protected]>
+
+        Add lldb formatters for WebCore geometry types
+        https://bugs.webkit.org/show_bug.cgi?id=187884
+
+        Reviewed by Daniel Bates.
+        
+        Add lldb formatters for IntPoint, IntSize, IntRect, FloatPoint, FloatSize, FloatRect
+        and LayoutRect.
+        
+        Testing is blocked by webkit.org/b/187872.
+
+        * lldb/lldbWebKitTester/main.cpp:
+        (testSummaryProviders):
+        * lldb/lldb_webkit.py:
+        (__lldb_init_module.lldb_webkit):
+        (__lldb_init_module):
+        (WebCoreLayoutRect_SummaryProvider):
+        (WebCoreIntSize_SummaryProvider):
+        (WebCoreIntPoint_SummaryProvider):
+        (WebCoreFloatSize_SummaryProvider):
+        (WebCoreFloatPoint_SummaryProvider):
+        (WebCoreIntRect_SummaryProvider):
+        (WebCoreFloatRect_SummaryProvider):
+        (WebCoreLayoutRectProvider):
+        (WebCoreLayoutRectProvider.__init__):
+        (WebCoreLayoutRectProvider.get_x):
+        (WebCoreLayoutRectProvider.get_y):
+        (WebCoreLayoutRectProvider.get_width):
+        (WebCoreLayoutRectProvider.get_height):
+        (WebCoreIntPointProvider):
+        (WebCoreIntPointProvider.__init__):
+        (WebCoreIntPointProvider.get_x):
+        (WebCoreIntPointProvider.get_y):
+        (WebCoreIntSizeProvider):
+        (WebCoreIntSizeProvider.__init__):
+        (WebCoreIntSizeProvider.get_width):
+        (WebCoreIntSizeProvider.get_height):
+        (WebCoreIntRectProvider):
+        (WebCoreIntRectProvider.__init__):
+        (WebCoreIntRectProvider.get_x):
+        (WebCoreIntRectProvider.get_y):
+        (WebCoreIntRectProvider.get_width):
+        (WebCoreIntRectProvider.get_height):
+        (WebCoreFloatPointProvider):
+        (WebCoreFloatPointProvider.__init__):
+        (WebCoreFloatPointProvider.get_x):
+        (WebCoreFloatPointProvider.get_y):
+        (WebCoreFloatSizeProvider):
+        (WebCoreFloatSizeProvider.__init__):
+        (WebCoreFloatSizeProvider.get_width):
+        (WebCoreFloatSizeProvider.get_height):
+        (WebCoreFloatRectProvider):
+        (WebCoreFloatRectProvider.__init__):
+        (WebCoreFloatRectProvider.get_x):
+        (WebCoreFloatRectProvider.get_y):
+        (WebCoreFloatRectProvider.get_width):
+        (WebCoreFloatRectProvider.get_height):
+
 2018-07-20  John Wilander  <[email protected]>
 
         Resource Load Statistics: Enable basic functionality in experimental debug mode

Modified: trunk/Tools/lldb/lldb_webkit.py (234086 => 234087)


--- trunk/Tools/lldb/lldb_webkit.py	2018-07-22 02:48:16 UTC (rev 234086)
+++ trunk/Tools/lldb/lldb_webkit.py	2018-07-22 04:09:44 UTC (rev 234087)
@@ -44,13 +44,25 @@
     debugger.HandleCommand('type summary add --expand -F lldb_webkit.WTFMediaTime_SummaryProvider WTF::MediaTime')
     debugger.HandleCommand('type synthetic add -x "WTF::Vector<.+>$" --python-class lldb_webkit.WTFVectorProvider')
     debugger.HandleCommand('type synthetic add -x "WTF::HashTable<.+>$" --python-class lldb_webkit.WTFHashTableProvider')
+
+    debugger.HandleCommand('type summary add -F lldb_webkit.WebCoreURL_SummaryProvider WebCore::URL')
+
     debugger.HandleCommand('type summary add -F lldb_webkit.WebCoreColor_SummaryProvider WebCore::Color')
+
     debugger.HandleCommand('type summary add -F lldb_webkit.WebCoreLayoutUnit_SummaryProvider WebCore::LayoutUnit')
     debugger.HandleCommand('type summary add -F lldb_webkit.WebCoreLayoutSize_SummaryProvider WebCore::LayoutSize')
     debugger.HandleCommand('type summary add -F lldb_webkit.WebCoreLayoutPoint_SummaryProvider WebCore::LayoutPoint')
-    debugger.HandleCommand('type summary add -F lldb_webkit.WebCoreURL_SummaryProvider WebCore::URL')
+    debugger.HandleCommand('type summary add -F lldb_webkit.WebCoreLayoutRect_SummaryProvider WebCore::LayoutRect')
 
+    debugger.HandleCommand('type summary add -F lldb_webkit.WebCoreIntSize_SummaryProvider WebCore::IntSize')
+    debugger.HandleCommand('type summary add -F lldb_webkit.WebCoreIntPoint_SummaryProvider WebCore::IntPoint')
+    debugger.HandleCommand('type summary add -F lldb_webkit.WebCoreIntRect_SummaryProvider WebCore::IntRect')
 
+    debugger.HandleCommand('type summary add -F lldb_webkit.WebCoreFloatSize_SummaryProvider WebCore::FloatSize')
+    debugger.HandleCommand('type summary add -F lldb_webkit.WebCoreFloatPoint_SummaryProvider WebCore::FloatPoint')
+    debugger.HandleCommand('type summary add -F lldb_webkit.WebCoreFloatRect_SummaryProvider WebCore::FloatRect')
+
+
 def WTFString_SummaryProvider(valobj, dict):
     provider = WTFStringProvider(valobj, dict)
     return "{ length = %d, contents = '%s' }" % (provider.get_length(), provider.to_string())
@@ -122,6 +134,43 @@
     return "{ x = %s, y = %s }" % (provider.get_x(), provider.get_y())
 
 
+def WebCoreLayoutRect_SummaryProvider(valobj, dict):
+    provider = WebCoreLayoutRectProvider(valobj, dict)
+    return "{ x = %s, y = %s, width = %s, height = %s }" % (provider.get_x(), provider.get_y(), provider.get_width(), provider.get_height())
+
+
+def WebCoreIntSize_SummaryProvider(valobj, dict):
+    provider = WebCoreIntSizeProvider(valobj, dict)
+    return "{ width = %s, height = %s }" % (provider.get_width(), provider.get_height())
+
+
+def WebCoreIntPoint_SummaryProvider(valobj, dict):
+    provider = WebCoreIntPointProvider(valobj, dict)
+    return "{ x = %s, y = %s }" % (provider.get_x(), provider.get_y())
+
+
+def WebCoreFloatSize_SummaryProvider(valobj, dict):
+    provider = WebCoreFloatSizeProvider(valobj, dict)
+    return "{ width = %s, height = %s }" % (provider.get_width(), provider.get_height())
+
+
+def WebCoreFloatPoint_SummaryProvider(valobj, dict):
+    provider = WebCoreFloatPointProvider(valobj, dict)
+    return "{ x = %s, y = %s }" % (provider.get_x(), provider.get_y())
+
+
+def WebCoreIntRect_SummaryProvider(valobj, dict):
+    provider = WebCoreIntRectProvider(valobj, dict)
+    return "{ x = %s, y = %s, width = %s, height = %s }" % (provider.get_x(), provider.get_y(), provider.get_width(), provider.get_height())
+
+
+def WebCoreFloatRect_SummaryProvider(valobj, dict):
+    provider = WebCoreFloatRectProvider(valobj, dict)
+    return "{ x = %s, y = %s, width = %s, height = %s }" % (provider.get_x(), provider.get_y(), provider.get_width(), provider.get_height())
+
+
+
+
 def btjs(debugger, command, result, internal_dict):
     '''Prints a stack trace of current thread with _javascript_ frames decoded.  Takes optional frame count argument'''
 
@@ -401,6 +450,108 @@
         return WebCoreLayoutUnitProvider(self.valobj.GetChildMemberWithName('m_y'), dict).to_string()
 
 
+class WebCoreLayoutRectProvider:
+    "Print a WebCore::LayoutRect"
+    def __init__(self, valobj, dict):
+        self.valobj = valobj
+
+    def get_x(self):
+        return WebCoreLayoutPointProvider(self.valobj.GetChildMemberWithName('m_location'), dict).get_x()
+
+    def get_y(self):
+        return WebCoreLayoutPointProvider(self.valobj.GetChildMemberWithName('m_location'), dict).get_y()
+
+    def get_width(self):
+        return WebCoreLayoutSizeProvider(self.valobj.GetChildMemberWithName('m_size'), dict).get_width()
+
+    def get_height(self):
+        return WebCoreLayoutSizeProvider(self.valobj.GetChildMemberWithName('m_size'), dict).get_height()
+
+
+class WebCoreIntPointProvider:
+    "Print a WebCore::IntPoint"
+    def __init__(self, valobj, dict):
+        self.valobj = valobj
+
+    def get_x(self):
+        return self.valobj.GetChildMemberWithName('m_x').GetValueAsSigned()
+
+    def get_y(self):
+        return self.valobj.GetChildMemberWithName('m_y').GetValueAsSigned()
+
+
+class WebCoreIntSizeProvider:
+    "Print a WebCore::IntSize"
+    def __init__(self, valobj, dict):
+        self.valobj = valobj
+
+    def get_width(self):
+        return self.valobj.GetChildMemberWithName('m_width').GetValueAsSigned()
+
+    def get_height(self):
+        return self.valobj.GetChildMemberWithName('m_height').GetValueAsSigned()
+
+
+class WebCoreIntRectProvider:
+    "Print a WebCore::IntRect"
+    def __init__(self, valobj, dict):
+        self.valobj = valobj
+
+    def get_x(self):
+        return WebCoreIntPointProvider(self.valobj.GetChildMemberWithName('m_location'), dict).get_x()
+
+    def get_y(self):
+        return WebCoreIntPointProvider(self.valobj.GetChildMemberWithName('m_location'), dict).get_y()
+
+    def get_width(self):
+        return WebCoreIntSizeProvider(self.valobj.GetChildMemberWithName('m_size'), dict).get_width()
+
+    def get_height(self):
+        return WebCoreIntSizeProvider(self.valobj.GetChildMemberWithName('m_size'), dict).get_height()
+
+
+class WebCoreFloatPointProvider:
+    "Print a WebCore::FloatPoint"
+    def __init__(self, valobj, dict):
+        self.valobj = valobj
+
+    def get_x(self):
+        return float(self.valobj.GetChildMemberWithName('m_x').GetValue())
+
+    def get_y(self):
+        return float(self.valobj.GetChildMemberWithName('m_y').GetValue())
+
+
+class WebCoreFloatSizeProvider:
+    "Print a WebCore::FloatSize"
+    def __init__(self, valobj, dict):
+        self.valobj = valobj
+
+    def get_width(self):
+        return float(self.valobj.GetChildMemberWithName('m_width').GetValue())
+
+    def get_height(self):
+        return float(self.valobj.GetChildMemberWithName('m_height').GetValue())
+
+
+class WebCoreFloatRectProvider:
+    "Print a WebCore::FloatRect"
+    def __init__(self, valobj, dict):
+        self.valobj = valobj
+
+    def get_x(self):
+        return WebCoreFloatPointProvider(self.valobj.GetChildMemberWithName('m_location'), dict).get_x()
+
+    def get_y(self):
+        return WebCoreFloatPointProvider(self.valobj.GetChildMemberWithName('m_location'), dict).get_y()
+
+    def get_width(self):
+        return WebCoreFloatSizeProvider(self.valobj.GetChildMemberWithName('m_size'), dict).get_width()
+
+    def get_height(self):
+        return WebCoreFloatSizeProvider(self.valobj.GetChildMemberWithName('m_size'), dict).get_height()
+
+
 class WebCoreURLProvider:
     "Print a WebCore::URL"
     def __init__(self, valobj, dict):
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to