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

// https://docs.google.com/document/d/1VnvAqeWFG9JFZfgG5evBqrLGDZYRE5w6G5jEDORekPY

[
  Constructor(optional ScrollStateInit scrollStateInit),
  RuntimeEnabled = ScrollCustomization
] interface ScrollState
{
    readonly attribute double deltaX;
    readonly attribute double deltaY;
    readonly attribute long positionX;
    readonly attribute long positionY;
    readonly attribute double velocityX;
    readonly attribute double velocityY;
    readonly attribute boolean isBeginning;
    readonly attribute boolean inInertialPhase;
    readonly attribute boolean isEnding;
    readonly attribute boolean fromUserInput;
    readonly attribute boolean isDirectManipulation;
    readonly attribute double deltaGranularity;

    [RaisesException] void consumeDelta(double x, double y);
    void distributeToScrollChainDescendant();
};
