// Copyright 2016 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.

module cc.mojom;

import "cc/ipc/selection.mojom";
import "cc/ipc/surface_id.mojom";
import "ui/events/mojo/latency_info.mojom";
import "ui/gfx/geometry/mojo/geometry.mojom";

// See cc/output/compositor_frame_metadata.h.
struct CompositorFrameMetadata {
  float device_scale_factor;
  gfx.mojom.Vector2dF root_scroll_offset;
  float page_scale_factor;
  gfx.mojom.SizeF scrollable_viewport_size;
  gfx.mojom.SizeF root_layer_size;
  float min_page_scale_factor;
  float max_page_scale_factor;
  bool root_overflow_x_hidden;
  bool root_overflow_y_hidden;
  bool may_contain_video;
  bool is_resourceless_software_draw_with_scroll_or_animation;
  float top_controls_height;
  float top_controls_shown_ratio;
  float bottom_controls_height;
  float bottom_controls_shown_ratio;
  uint32 root_background_color;
  Selection selection;
  array<ui.mojom.LatencyInfo> latency_info;
  array<SurfaceId> referenced_surfaces;
  bool can_activate_before_dependencies;
};
