// Copyright 2015 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 CONTENT_COMMON_VISUAL_PROPERTIES_H_ #define CONTENT_COMMON_VISUAL_PROPERTIES_H_ #include "base/optional.h" #include "components/viz/common/surfaces/local_surface_id.h" #include "content/common/content_export.h" #include "content/public/common/screen_info.h" #include "third_party/blink/public/common/manifest/web_display_mode.h" #include "ui/gfx/geometry/size.h" namespace content { struct CONTENT_EXPORT VisualProperties { VisualProperties(); VisualProperties(const VisualProperties& other); ~VisualProperties(); VisualProperties& operator=(const VisualProperties& other); // Information about the screen (dpi, depth, etc..). ScreenInfo screen_info; // Whether or not blink should be in auto-resize mode. bool auto_resize_enabled = false; // The minimum size for Blink if auto-resize is enabled. gfx::Size min_size_for_auto_resize; // The maximum size for Blink if auto-resize is enabled. gfx::Size max_size_for_auto_resize; // The size for the widget in DIPs. gfx::Size new_size; // The size of compositor's viewport in pixels. Note that this may differ // from a ScaleToCeiledSize of |new_size| due to Android's keyboard or due // to rounding particulars. gfx::Size compositor_viewport_pixel_size; // Whether or not Blink's viewport size should be shrunk by the height of the // URL-bar (always false on platforms where URL-bar hiding isn't supported). bool browser_controls_shrink_blink_size = false; // Whether or not the focused node should be scrolled into view after the // resize. bool scroll_focused_node_into_view = false; // The height of the top controls (always 0 on platforms where URL-bar hiding // isn't supported). float top_controls_height = 0.f; // The height of the bottom controls. float bottom_controls_height = 0.f; // The local surface ID to use (if valid). base::Optional local_surface_id; // The size of the visible viewport, which may be smaller than the view if the // view is partially occluded (e.g. by a virtual keyboard). The size is in // DPI-adjusted pixels. gfx::Size visible_viewport_size; // Indicates whether tab-initiated fullscreen was granted. bool is_fullscreen_granted = false; // The display mode. blink::WebDisplayMode display_mode = blink::kWebDisplayModeUndefined; // This represents the latest capture sequence number requested. When this is // incremented, that means the caller wants to synchronize surfaces which // should cause a new LocalSurfaceId to be generated. uint32_t capture_sequence_number = 0u; // This represents the page zoom level for a WebContents. // (0 is the default value which results in 1.0 zoom factor). double zoom_level = 0; }; } // namespace content #endif // CONTENT_COMMON_VISUAL_PROPERTIES_H_