// 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_RESIZE_PARAMS_H_
#define CONTENT_COMMON_RESIZE_PARAMS_H_

#include "content/common/content_export.h"
#include "content/public/common/screen_info.h"
#include "third_party/WebKit/public/platform/WebDisplayMode.h"
#include "ui/gfx/geometry/size.h"

namespace content {

struct CONTENT_EXPORT ResizeParams {
  ResizeParams();
  ResizeParams(const ResizeParams& other);
  ~ResizeParams();

  // Information about the screen (dpi, depth, etc..).
  ScreenInfo screen_info;

  // The size of the renderer.
  gfx::Size new_size;

  // The size of the view's backing surface in non-DPI-adjusted pixels.
  gfx::Size physical_backing_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;

  // The height of the top controls (always 0 on platforms where URL-bar hiding
  // isn't supported).
  float top_controls_height;

  // The height of the bottom controls.
  float bottom_controls_height;

  // 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;

  // The display mode.
  blink::WebDisplayMode display_mode;

  // If set, requests the renderer to reply with a ViewHostMsg_UpdateRect
  // with the ViewHostMsg_UpdateRect_Flags::IS_RESIZE_ACK bit set in flags.
  bool needs_resize_ack;
};

}  // namespace content

#endif  // CONTENT_COMMON_RESIZE_PARAMS_H_
