Commit aba9ad90 authored by Andrey Kosyakov's avatar Andrey Kosyakov Committed by Chromium LUCI CQ

DevTools overlay: add support for showing web vitals HUD

Add an ability to enable HUD display for performance metric on a per-renderer
basis through CDP.

Bug: 1152089
Change-Id: Ia6f097fc90ceae5a3e9dc878d7880adbf02ce7be
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2639393Reviewed-by: default avatarPeter Kvitek <kvitekp@chromium.org>
Reviewed-by: default avatarAlex Rudenko <alexrudenko@chromium.org>
Reviewed-by: default avatarweiliangc <weiliangc@chromium.org>
Commit-Queue: Andrey Kosyakov <caseq@chromium.org>
Cr-Commit-Position: refs/heads/master@{#845278}
parent dc38b14b
...@@ -6041,6 +6041,11 @@ experimental domain Overlay ...@@ -6041,6 +6041,11 @@ experimental domain Overlay
# True for showing hit-test borders # True for showing hit-test borders
boolean show boolean show
# Request that backend shows an overlay with web vital metrics.
command setShowWebVitals
parameters
boolean show
# Paints viewport size upon main frame resize. # Paints viewport size upon main frame resize.
command setShowViewportSizeOnResize command setShowViewportSizeOnResize
parameters parameters
......
...@@ -370,6 +370,7 @@ InspectorOverlayAgent::InspectorOverlayAgent( ...@@ -370,6 +370,7 @@ InspectorOverlayAgent::InspectorOverlayAgent(
show_layout_shift_regions_(&agent_state_, false), show_layout_shift_regions_(&agent_state_, false),
show_scroll_bottleneck_rects_(&agent_state_, false), show_scroll_bottleneck_rects_(&agent_state_, false),
show_hit_test_borders_(&agent_state_, false), show_hit_test_borders_(&agent_state_, false),
show_web_vitals_(&agent_state_, false),
show_size_on_resize_(&agent_state_, false), show_size_on_resize_(&agent_state_, false),
paused_in_debugger_message_(&agent_state_, String()), paused_in_debugger_message_(&agent_state_, String()),
inspect_mode_(&agent_state_, protocol::Overlay::InspectModeEnum::None), inspect_mode_(&agent_state_, protocol::Overlay::InspectModeEnum::None),
...@@ -601,6 +602,25 @@ Response InspectorOverlayAgent::setShowViewportSizeOnResize(bool show) { ...@@ -601,6 +602,25 @@ Response InspectorOverlayAgent::setShowViewportSizeOnResize(bool show) {
return Response::Success(); return Response::Success();
} }
Response InspectorOverlayAgent::setShowWebVitals(bool show) {
show_web_vitals_.Set(show);
if (show) {
Response response = CompositingEnabled();
if (!response.IsSuccess())
return response;
}
auto* widget_impl =
static_cast<WebFrameWidgetImpl*>(frame_impl_->LocalRoot()->FrameWidget());
// While a frame is being detached the inspector will shutdown and
// turn off debug overlays, but the WebFrameWidget is already gone.
if (widget_impl) {
cc::LayerTreeDebugState debug_state = widget_impl->GetLayerTreeDebugState();
debug_state.show_web_vital_metrics = show;
widget_impl->SetLayerTreeDebugState(debug_state);
}
return Response::Success();
}
Response InspectorOverlayAgent::setPausedInDebuggerMessage( Response InspectorOverlayAgent::setPausedInDebuggerMessage(
Maybe<String> message) { Maybe<String> message) {
paused_in_debugger_message_.Set(message.fromMaybe(String())); paused_in_debugger_message_.Set(message.fromMaybe(String()));
......
...@@ -169,6 +169,7 @@ class CORE_EXPORT InspectorOverlayAgent final ...@@ -169,6 +169,7 @@ class CORE_EXPORT InspectorOverlayAgent final
protocol::Response setShowFPSCounter(bool) override; protocol::Response setShowFPSCounter(bool) override;
protocol::Response setShowScrollBottleneckRects(bool) override; protocol::Response setShowScrollBottleneckRects(bool) override;
protocol::Response setShowHitTestBorders(bool) override; protocol::Response setShowHitTestBorders(bool) override;
protocol::Response setShowWebVitals(bool) override;
protocol::Response setShowViewportSizeOnResize(bool) override; protocol::Response setShowViewportSizeOnResize(bool) override;
protocol::Response setPausedInDebuggerMessage( protocol::Response setPausedInDebuggerMessage(
protocol::Maybe<String>) override; protocol::Maybe<String>) override;
...@@ -315,6 +316,7 @@ class CORE_EXPORT InspectorOverlayAgent final ...@@ -315,6 +316,7 @@ class CORE_EXPORT InspectorOverlayAgent final
InspectorAgentState::Boolean show_layout_shift_regions_; InspectorAgentState::Boolean show_layout_shift_regions_;
InspectorAgentState::Boolean show_scroll_bottleneck_rects_; InspectorAgentState::Boolean show_scroll_bottleneck_rects_;
InspectorAgentState::Boolean show_hit_test_borders_; InspectorAgentState::Boolean show_hit_test_borders_;
InspectorAgentState::Boolean show_web_vitals_;
InspectorAgentState::Boolean show_size_on_resize_; InspectorAgentState::Boolean show_size_on_resize_;
InspectorAgentState::String paused_in_debugger_message_; InspectorAgentState::String paused_in_debugger_message_;
InspectorAgentState::String inspect_mode_; InspectorAgentState::String inspect_mode_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment