LayoutRect InlinePainter::outlinePaintRect(const Vector<LayoutRect>& outlineRects, const LayoutPoint& paintOffset) const { int outlineOutset = m_layoutInline.styleRef().outlineOutsetExtent(); LayoutRect outlineRect; for (const LayoutRect& rect : outlineRects) { LayoutRect inflatedRect(rect); // Inflate the individual rects instead of the union, to avoid losing // rects which have degenerate width/height (== isEmpty() true.) inflatedRect.inflate(outlineOutset); outlineRect.unite(inflatedRect); } outlineRect.moveBy(paintOffset); return outlineRect; }
void InspectorPageAgent::didPaint(RenderObject*, const GraphicsLayer*, GraphicsContext* context, const LayoutRect& rect) { if (!m_enabled || m_client->overridesShowPaintRects() || !m_state->getBoolean(PageAgentState::pageAgentShowPaintRects)) return; static int colorSelector = 0; const Color colors[] = { Color(0, 0x5F, 0, 0x3F), Color(0, 0xAF, 0, 0x3F), Color(0, 0xFF, 0, 0x3F), }; LayoutRect inflatedRect(rect); inflatedRect.inflate(-1); m_overlay->drawOutline(context, inflatedRect, colors[colorSelector++ % WTF_ARRAY_LENGTH(colors)]); }