Commit a79b996a authored by Lorne Mitchell's avatar Lorne Mitchell Committed by Commit Bot

DevTools: Modified LayerTree.compositingReasons to include a new property...

DevTools: Modified LayerTree.compositingReasons to include a new property named compositing_reason_ids.

This change modifies the LayerTree.compositingReasons method [1] to include an additional return property named compositing_reason_ids. This new property provides an ID that can be used by CDP clients (such as the DevTools) to localize the compositing reasons.

The design was reviewed here in [2].

A separate CL will follow for the DevTools frontend to consume compositing_reason_ids and map them to strings that are localized in the frontend.

[1] https://chromedevtools.github.io/devtools-protocol/tot/LayerTree#method-compositingReasons
[2] https://docs.google.com/document/d/1ZbCiXbVJZJaYqKZkQ_Y5RNpUqQd1JzO17PqFJZk2Ne8

Bug: 946860
Change-Id: Ie924a8dc65fe224e418e4d8b75c07433d2050645
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2015551Reviewed-by: default avatarPhilip Rogers <pdr@chromium.org>
Reviewed-by: default avatarMandy Chen <mandy.chen@microsoft.com>
Reviewed-by: default avatarAndrey Kosyakov <caseq@chromium.org>
Commit-Queue: Lorne Mitchell <lomitch@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#736492}
parent 55386ef3
...@@ -62,6 +62,7 @@ struct LayerDebugInfo { ...@@ -62,6 +62,7 @@ struct LayerDebugInfo {
NodeId owner_node_id = kInvalidNodeId; NodeId owner_node_id = kInvalidNodeId;
int paint_count = 0; int paint_count = 0;
std::vector<const char*> compositing_reasons; std::vector<const char*> compositing_reasons;
std::vector<const char*> compositing_reason_ids;
struct Invalidation { struct Invalidation {
gfx::Rect rect; gfx::Rect rect;
const char* reason; const char* reason;
......
...@@ -3526,7 +3526,9 @@ experimental domain LayerTree ...@@ -3526,7 +3526,9 @@ experimental domain LayerTree
LayerId layerId LayerId layerId
returns returns
# A list of strings specifying reasons for the given layer to become composited. # A list of strings specifying reasons for the given layer to become composited.
array of string compositingReasons deprecated array of string compositingReasons
# A list of strings specifying reason IDs for the given layer to become composited.
array of string compositingReasonIds
# Disables compositing tree inspection. # Disables compositing tree inspection.
command disable command disable
......
...@@ -373,16 +373,25 @@ Response InspectorLayerTreeAgent::LayerById(const String& layer_id, ...@@ -373,16 +373,25 @@ Response InspectorLayerTreeAgent::LayerById(const String& layer_id,
Response InspectorLayerTreeAgent::compositingReasons( Response InspectorLayerTreeAgent::compositingReasons(
const String& layer_id, const String& layer_id,
std::unique_ptr<Array<String>>* reason_strings) { std::unique_ptr<Array<String>>* compositing_reasons,
std::unique_ptr<Array<String>>* compositing_reason_ids) {
const cc::Layer* layer = nullptr; const cc::Layer* layer = nullptr;
Response response = LayerById(layer_id, layer); Response response = LayerById(layer_id, layer);
if (!response.isSuccess()) if (!response.isSuccess())
return response; return response;
*reason_strings = std::make_unique<protocol::Array<String>>(); *compositing_reasons = std::make_unique<protocol::Array<String>>();
*compositing_reason_ids = std::make_unique<protocol::Array<String>>();
if (layer->debug_info()) { if (layer->debug_info()) {
for (const char* name : layer->debug_info()->compositing_reasons) for (const char* compositing_reason :
(*reason_strings)->emplace_back(name); layer->debug_info()->compositing_reasons) {
(*compositing_reasons)->emplace_back(compositing_reason);
}
for (const char* compositing_reason_id :
layer->debug_info()->compositing_reason_ids) {
(*compositing_reason_ids)->emplace_back(compositing_reason_id);
}
} }
return Response::OK(); return Response::OK();
} }
......
...@@ -71,7 +71,9 @@ class CORE_EXPORT InspectorLayerTreeAgent final ...@@ -71,7 +71,9 @@ class CORE_EXPORT InspectorLayerTreeAgent final
protocol::Response disable() override; protocol::Response disable() override;
protocol::Response compositingReasons( protocol::Response compositingReasons(
const String& layer_id, const String& layer_id,
std::unique_ptr<protocol::Array<String>>* compositing_reasons) override; std::unique_ptr<protocol::Array<String>>* compositing_reasons,
std::unique_ptr<protocol::Array<String>>* compositing_reason_ids)
override;
protocol::Response makeSnapshot(const String& layer_id, protocol::Response makeSnapshot(const String& layer_id,
String* snapshot_id) override; String* snapshot_id) override;
protocol::Response loadSnapshot( protocol::Response loadSnapshot(
......
...@@ -1520,6 +1520,8 @@ void PaintArtifactCompositor::UpdateLayerDebugInfo( ...@@ -1520,6 +1520,8 @@ void PaintArtifactCompositor::UpdateLayerDebugInfo(
debug_info.compositing_reasons = debug_info.compositing_reasons =
CompositingReason::Descriptions(compositing_reasons); CompositingReason::Descriptions(compositing_reasons);
debug_info.compositing_reason_ids =
CompositingReason::ShortNames(compositing_reasons);
debug_info.owner_node_id = id.client.OwnerNodeId(); debug_info.owner_node_id = id.client.OwnerNodeId();
if (RasterInvalidationTracking::IsTracingRasterInvalidations() && if (RasterInvalidationTracking::IsTracingRasterInvalidations() &&
......
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