// 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 shouldPropagate;
    readonly attribute boolean fromUserInput;
    readonly attribute boolean isDirectManipulation;
    readonly attribute double deltaGranularity;

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