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

interface View {
  readonly attribute double devicePixelRatio;

  readonly attribute double paddingTop;
  readonly attribute double paddingRight;
  readonly attribute double paddingBottom;
  readonly attribute double paddingLeft;

  // TODO(ianh): convert this to returning a Size
  readonly attribute double width;
  readonly attribute double height;

  attribute Picture picture;
  attribute Scene scene;

  void setEventCallback(EventCallback callback);
  void setMetricsChangedCallback(VoidCallback callback);

  void setFrameCallback(FrameCallback callback);
  void scheduleFrame();
};
