Commit 859478de authored by mfomitchev's avatar mfomitchev Committed by Commit bot

Adding source_event_type to LatencyInfo mojom

This is needed for proper latency reporting in Mus and in fact also in classic
Chrome now that renderers submit compositor frames over Mojo.

BUG=686865

Review-Url: https://codereview.chromium.org/2847553003
Cr-Commit-Position: refs/heads/master@{#468372}
parent 46577d66
...@@ -75,6 +75,14 @@ enum LatencyComponentType { ...@@ -75,6 +75,14 @@ enum LatencyComponentType {
INPUT_EVENT_LATENCY_TERMINATED_SWAP_FAILED_COMPONENT, INPUT_EVENT_LATENCY_TERMINATED_SWAP_FAILED_COMPONENT,
}; };
enum SourceEventType {
UNKNOWN,
WHEEL,
TOUCH,
OTHER,
SOURCE_EVENT_TYPE_LAST = OTHER,
};
struct LatencyComponentId { struct LatencyComponentId {
LatencyComponentType type; LatencyComponentType type;
int64 id; int64 id;
...@@ -107,4 +115,5 @@ struct LatencyInfo { ...@@ -107,4 +115,5 @@ struct LatencyInfo {
int64 trace_id; int64 trace_id;
bool coalesced; bool coalesced;
bool terminated; bool terminated;
SourceEventType source_event_type;
}; };
...@@ -152,6 +152,36 @@ ui::LatencyComponentType MojoLatencyComponentTypeToUI( ...@@ -152,6 +152,36 @@ ui::LatencyComponentType MojoLatencyComponentTypeToUI(
return ui::LATENCY_COMPONENT_TYPE_LAST; return ui::LATENCY_COMPONENT_TYPE_LAST;
} }
ui::mojom::SourceEventType UISourceEventTypeToMojo(ui::SourceEventType type) {
switch (type) {
case ui::UNKNOWN:
return ui::mojom::SourceEventType::UNKNOWN;
case ui::WHEEL:
return ui::mojom::SourceEventType::WHEEL;
case ui::TOUCH:
return ui::mojom::SourceEventType::TOUCH;
case ui::OTHER:
return ui::mojom::SourceEventType::OTHER;
}
NOTREACHED();
return ui::mojom::SourceEventType::UNKNOWN;
}
ui::SourceEventType MojoSourceEventTypeToUI(ui::mojom::SourceEventType type) {
switch (type) {
case ui::mojom::SourceEventType::UNKNOWN:
return ui::UNKNOWN;
case ui::mojom::SourceEventType::WHEEL:
return ui::WHEEL;
case ui::mojom::SourceEventType::TOUCH:
return ui::TOUCH;
case ui::mojom::SourceEventType::OTHER:
return ui::OTHER;
}
NOTREACHED();
return ui::SourceEventType::UNKNOWN;
}
} // namespace } // namespace
// static // static
...@@ -237,27 +267,39 @@ StructTraits<ui::mojom::LatencyInfoDataView, ui::LatencyInfo>::trace_name( ...@@ -237,27 +267,39 @@ StructTraits<ui::mojom::LatencyInfoDataView, ui::LatencyInfo>::trace_name(
return info.trace_name_; return info.trace_name_;
} }
// static
const ui::LatencyInfo::LatencyMap& const ui::LatencyInfo::LatencyMap&
StructTraits<ui::mojom::LatencyInfoDataView, StructTraits<ui::mojom::LatencyInfoDataView,
ui::LatencyInfo>::latency_components(const ui::LatencyInfo& info) { ui::LatencyInfo>::latency_components(const ui::LatencyInfo& info) {
return info.latency_components(); return info.latency_components();
} }
// static
int64_t StructTraits<ui::mojom::LatencyInfoDataView, ui::LatencyInfo>::trace_id( int64_t StructTraits<ui::mojom::LatencyInfoDataView, ui::LatencyInfo>::trace_id(
const ui::LatencyInfo& info) { const ui::LatencyInfo& info) {
return info.trace_id(); return info.trace_id();
} }
// static
bool StructTraits<ui::mojom::LatencyInfoDataView, ui::LatencyInfo>::coalesced( bool StructTraits<ui::mojom::LatencyInfoDataView, ui::LatencyInfo>::coalesced(
const ui::LatencyInfo& info) { const ui::LatencyInfo& info) {
return info.coalesced(); return info.coalesced();
} }
// static
bool StructTraits<ui::mojom::LatencyInfoDataView, ui::LatencyInfo>::terminated( bool StructTraits<ui::mojom::LatencyInfoDataView, ui::LatencyInfo>::terminated(
const ui::LatencyInfo& info) { const ui::LatencyInfo& info) {
return info.terminated(); return info.terminated();
} }
// static
ui::mojom::SourceEventType
StructTraits<ui::mojom::LatencyInfoDataView,
ui::LatencyInfo>::source_event_type(const ui::LatencyInfo& info) {
return UISourceEventTypeToMojo(info.source_event_type());
}
// static
bool StructTraits<ui::mojom::LatencyInfoDataView, ui::LatencyInfo>::Read( bool StructTraits<ui::mojom::LatencyInfoDataView, ui::LatencyInfo>::Read(
ui::mojom::LatencyInfoDataView data, ui::mojom::LatencyInfoDataView data,
ui::LatencyInfo* out) { ui::LatencyInfo* out) {
...@@ -280,6 +322,7 @@ bool StructTraits<ui::mojom::LatencyInfoDataView, ui::LatencyInfo>::Read( ...@@ -280,6 +322,7 @@ bool StructTraits<ui::mojom::LatencyInfoDataView, ui::LatencyInfo>::Read(
out->trace_id_ = data.trace_id(); out->trace_id_ = data.trace_id();
out->coalesced_ = data.coalesced(); out->coalesced_ = data.coalesced();
out->terminated_ = data.terminated(); out->terminated_ = data.terminated();
out->source_event_type_ = MojoSourceEventTypeToUI(data.source_event_type());
return true; return true;
} }
......
...@@ -86,6 +86,8 @@ struct StructTraits<ui::mojom::LatencyInfoDataView, ui::LatencyInfo> { ...@@ -86,6 +86,8 @@ struct StructTraits<ui::mojom::LatencyInfoDataView, ui::LatencyInfo> {
static int64_t trace_id(const ui::LatencyInfo& info); static int64_t trace_id(const ui::LatencyInfo& info);
static bool coalesced(const ui::LatencyInfo& info); static bool coalesced(const ui::LatencyInfo& info);
static bool terminated(const ui::LatencyInfo& info); static bool terminated(const ui::LatencyInfo& info);
static ui::mojom::SourceEventType source_event_type(
const ui::LatencyInfo& info);
static bool Read(ui::mojom::LatencyInfoDataView data, ui::LatencyInfo* out); static bool Read(ui::mojom::LatencyInfoDataView data, ui::LatencyInfo* out);
}; };
......
...@@ -86,12 +86,15 @@ TEST_F(StructTraitsTest, LatencyInfo) { ...@@ -86,12 +86,15 @@ TEST_F(StructTraitsTest, LatencyInfo) {
EXPECT_EQ(100, latency.trace_id()); EXPECT_EQ(100, latency.trace_id());
EXPECT_TRUE(latency.terminated()); EXPECT_TRUE(latency.terminated());
latency.set_source_event_type(ui::TOUCH);
mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy();
LatencyInfo output; LatencyInfo output;
proxy->EchoLatencyInfo(latency, &output); proxy->EchoLatencyInfo(latency, &output);
EXPECT_EQ(latency.trace_id(), output.trace_id()); EXPECT_EQ(latency.trace_id(), output.trace_id());
EXPECT_EQ(latency.terminated(), output.terminated()); EXPECT_EQ(latency.terminated(), output.terminated());
EXPECT_EQ(latency.source_event_type(), output.source_event_type());
EXPECT_TRUE(output.FindLatency(INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT, 1234, EXPECT_TRUE(output.FindLatency(INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT, 1234,
nullptr)); nullptr));
......
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