blob: 815a7d9221be08be70e0c0c5dfb8f7dda0a679b0 [file] [log] [blame]
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_FRAME_FRAME_VISUAL_PROPERTIES_MOJOM_TRAITS_H_
#define THIRD_PARTY_BLINK_PUBLIC_COMMON_FRAME_FRAME_VISUAL_PROPERTIES_MOJOM_TRAITS_H_
#include "third_party/blink/public/common/common_export.h"
#include "third_party/blink/public/common/frame/frame_visual_properties.h"
#include "third_party/blink/public/mojom/frame/frame_visual_properties.mojom-shared.h"
namespace mojo {
template <>
struct BLINK_COMMON_EXPORT
StructTraits<blink::mojom::FrameVisualPropertiesDataView,
blink::FrameVisualProperties> {
static const blink::ScreenInfo& screen_info(
const blink::FrameVisualProperties& r) {
return r.screen_info;
}
static bool auto_resize_enabled(const blink::FrameVisualProperties& r) {
return r.auto_resize_enabled;
}
static bool is_pinch_gesture_active(const blink::FrameVisualProperties& r) {
return r.is_pinch_gesture_active;
}
static uint32_t capture_sequence_number(
const blink::FrameVisualProperties& r) {
return r.capture_sequence_number;
}
static double zoom_level(const blink::FrameVisualProperties& r) {
return r.zoom_level;
}
static double page_scale_factor(const blink::FrameVisualProperties& r) {
DCHECK_GT(r.page_scale_factor, 0);
return r.page_scale_factor;
}
static double compositing_scale_factor(
const blink::FrameVisualProperties& r) {
DCHECK_GT(r.compositing_scale_factor, 0);
return r.compositing_scale_factor;
}
static const gfx::Size& visible_viewport_size(
const blink::FrameVisualProperties& r) {
return r.visible_viewport_size;
}
static const gfx::Size& min_size_for_auto_resize(
const blink::FrameVisualProperties& r) {
return r.min_size_for_auto_resize;
}
static const gfx::Size& max_size_for_auto_resize(
const blink::FrameVisualProperties& r) {
return r.max_size_for_auto_resize;
}
static const std::vector<gfx::Rect>& root_widget_window_segments(
const blink::FrameVisualProperties& r) {
return r.root_widget_window_segments;
}
static const gfx::Rect& compositor_viewport(
const blink::FrameVisualProperties& r) {
return r.compositor_viewport;
}
static const gfx::Rect& screen_space_rect(
const blink::FrameVisualProperties& r) {
return r.screen_space_rect;
}
static const gfx::Size& local_frame_size(
const blink::FrameVisualProperties& r) {
return r.local_frame_size;
}
static base::Optional<viz::LocalSurfaceId> local_surface_id(
const blink::FrameVisualProperties& r) {
return r.local_surface_id;
}
static bool Read(blink::mojom::FrameVisualPropertiesDataView r,
blink::FrameVisualProperties* out);
};
} // namespace mojo
#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_FRAME_FRAME_VISUAL_PROPERTIES_MOJOM_TRAITS_H_