Commit 57ce5e4d authored by Dave Tapuska's avatar Dave Tapuska Committed by Commit Bot

Allow UI LatencyInfo types to be typemapped in blink.

Moving input handling into blink (from content) requires some additional
typemaps.

BUG=1073560

Change-Id: I5f58dbd11905a3195be1d31f442a963b8f0034f5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2226312Reviewed-by: default avatarKen Buchanan <kenrb@chromium.org>
Reviewed-by: default avatarNavid Zolghadr <nzolghadr@chromium.org>
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Cr-Commit-Position: refs/heads/master@{#775135}
parent 76d469d5
......@@ -4,6 +4,20 @@
import("//mojo/public/tools/bindings/mojom.gni")
component("shared_mojom_traits") {
output_name = "latency_shared_mojom_traits"
defines = [ "IS_LATENCY_SHARED_MOJOM_TRAITS_IMPL" ]
sources = [
"latency_info_mojom_traits.cc",
"latency_info_mojom_traits.h",
]
public_deps = [
":mojom_shared",
"//ipc:param_traits",
"//ui/latency",
]
}
mojom("mojom") {
generate_java = true
sources = [ "latency_info.mojom" ]
......@@ -22,12 +36,14 @@ mojom("mojom") {
cpp = "::ui::LatencyInfo"
},
]
traits_sources = [ "latency_info_mojom_traits.cc" ]
traits_headers = [ "latency_info_mojom_traits.h" ]
traits_public_deps = [ "//ui/latency" ]
traits_deps = [ "//ipc:param_traits" ]
traits_public_deps = [
":shared_mojom_traits",
"//ui/latency",
]
},
]
blink_cpp_typemaps = cpp_typemaps
}
mojom("test_interfaces") {
......
......@@ -5,6 +5,7 @@
#ifndef UI_LATENCY_MOJOM_LATENCY_INFO_MOJOM_TRAITS_H_
#define UI_LATENCY_MOJOM_LATENCY_INFO_MOJOM_TRAITS_H_
#include "base/component_export.h"
#include "ui/latency/latency_info.h"
#include "ui/latency/mojom/latency_info.mojom-shared.h"
......@@ -19,7 +20,8 @@ static_assert(static_cast<int>(ui::mojom::SourceEventType::kMaxValue) ==
"Enum size mismatch");
template <>
struct ArrayTraits<ui::LatencyInfo::LatencyMap> {
struct COMPONENT_EXPORT(LATENCY_SHARED_MOJOM_TRAITS)
ArrayTraits<ui::LatencyInfo::LatencyMap> {
using Element = ui::LatencyInfo::LatencyMap::value_type;
using Iterator = ui::LatencyInfo::LatencyMap::iterator;
using ConstIterator = ui::LatencyInfo::LatencyMap::const_iterator;
......@@ -43,7 +45,8 @@ struct ArrayTraits<ui::LatencyInfo::LatencyMap> {
};
template <>
struct StructTraits<ui::mojom::LatencyInfoDataView, ui::LatencyInfo> {
struct COMPONENT_EXPORT(LATENCY_SHARED_MOJOM_TRAITS)
StructTraits<ui::mojom::LatencyInfoDataView, ui::LatencyInfo> {
static const ui::LatencyInfo::LatencyMap& latency_components(
const ui::LatencyInfo& info);
static int64_t trace_id(const ui::LatencyInfo& info);
......@@ -60,7 +63,8 @@ struct StructTraits<ui::mojom::LatencyInfoDataView, ui::LatencyInfo> {
};
template <>
struct EnumTraits<ui::mojom::LatencyComponentType, ui::LatencyComponentType> {
struct COMPONENT_EXPORT(LATENCY_SHARED_MOJOM_TRAITS)
EnumTraits<ui::mojom::LatencyComponentType, ui::LatencyComponentType> {
static ui::mojom::LatencyComponentType ToMojom(ui::LatencyComponentType type);
static bool FromMojom(ui::mojom::LatencyComponentType input,
ui::LatencyComponentType* output);
......
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