Index: Source/core/rendering/RenderObject.cpp |
diff --git a/Source/core/rendering/RenderObject.cpp b/Source/core/rendering/RenderObject.cpp |
index 4728932f4336a8a2e5db0e9762673725d363d0dc..a611d863e2c7ba530bbd6afe1775896d718f9a97 100644 |
--- a/Source/core/rendering/RenderObject.cpp |
+++ b/Source/core/rendering/RenderObject.cpp |
@@ -1464,22 +1464,22 @@ bool RenderObject::isPaintInvalidationContainer() const |
return hasLayer() && toRenderLayerModelObject(this)->layer()->isPaintInvalidationContainer(); |
} |
-template<typename T> PassRefPtr<JSONValue> jsonObjectForRect(const T& rect) |
+template<typename T> void addJsonObjectForRect(TracedValue& value, const char* name, const T& rect) |
{ |
- RefPtr<JSONObject> object = JSONObject::create(); |
- object->setNumber("x", rect.x()); |
- object->setNumber("y", rect.y()); |
- object->setNumber("width", rect.width()); |
- object->setNumber("height", rect.height()); |
- return object.release(); |
+ value.beginDictionary(name) |
+ .setDouble("x", rect.x()) |
+ .setDouble("y", rect.y()) |
+ .setDouble("width", rect.width()) |
+ .setDouble("height", rect.height()) |
+ .endDictionary(); |
} |
-static PassRefPtr<JSONValue> jsonObjectForPaintInvalidationInfo(const IntRect& rect, const String& invalidationReason) |
+static PassRefPtr<TraceEvent::ConvertableToTraceFormat> jsonObjectForPaintInvalidationInfo(const IntRect& rect, const String& invalidationReason) |
{ |
- RefPtr<JSONObject> object = JSONObject::create(); |
- object->setValue("rect", jsonObjectForRect(rect)); |
- object->setString("invalidation_reason", invalidationReason); |
- return object.release(); |
+ TracedValue value; |
+ addJsonObjectForRect(value, "rect", rect); |
+ value.setString("invalidation_reason", invalidationReason); |
+ return value.finish(); |
} |
LayoutRect RenderObject::computePaintInvalidationRect(const RenderLayerModelObject* paintInvalidationContainer) const |
@@ -1499,7 +1499,7 @@ void RenderObject::invalidatePaintUsingContainer(const RenderLayerModelObject* p |
TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("blink.invalidation"), "RenderObject::invalidatePaintUsingContainer()", |
"object", this->debugName().ascii(), |
- "info", TracedValue::fromJSONValue(jsonObjectForPaintInvalidationInfo(r, invalidationReasonToString(invalidationReason)))); |
+ "info", jsonObjectForPaintInvalidationInfo(r, invalidationReasonToString(invalidationReason))); |
// For querying RenderLayer::compositingState() |
DisableCompositingQueryAsserts disabler; |
@@ -1617,13 +1617,12 @@ void RenderObject::invalidateTreeAfterLayout(const RenderLayerModelObject& paint |
} |
} |
-static PassRefPtr<JSONValue> jsonObjectForOldAndNewRects(const LayoutRect& oldRect, const LayoutRect& newRect) |
+static PassRefPtr<TraceEvent::ConvertableToTraceFormat> jsonObjectForOldAndNewRects(const LayoutRect& oldRect, const LayoutRect& newRect) |
{ |
- RefPtr<JSONObject> object = JSONObject::create(); |
- |
- object->setValue("old", jsonObjectForRect(oldRect)); |
- object->setValue("new", jsonObjectForRect(newRect)); |
- return object.release(); |
+ TracedValue value; |
+ addJsonObjectForRect(value, "old", oldRect); |
+ addJsonObjectForRect(value, "new", newRect); |
+ return value.finish(); |
} |
bool RenderObject::invalidatePaintAfterLayoutIfNeeded(const RenderLayerModelObject* paintInvalidationContainer, InvalidationReason invalidationReason, |
@@ -1641,7 +1640,7 @@ bool RenderObject::invalidatePaintAfterLayoutIfNeeded(const RenderLayerModelObje |
// FIXME: This should use a ConvertableToTraceFormat when they are available in Blink. |
TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("blink.invalidation"), "RenderObject::invalidatePaintAfterLayoutIfNeeded()", |
"object", this->debugName().ascii(), |
- "info", TracedValue::fromJSONValue(jsonObjectForOldAndNewRects(oldBounds, newBounds))); |
+ "info", jsonObjectForOldAndNewRects(oldBounds, newBounds)); |
// Presumably a background or a border exists if border-fit:lines was specified. |
if (invalidationReason == InvalidationIncremental && style()->borderFit() == BorderFitLines) |