// 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),
  WillBeGarbageCollected,
  RuntimeEnabled = ScrollCustomization,
] interface ScrollState
{
    readonly attribute double deltaX;
    readonly attribute double deltaY;
    readonly attribute long startPositionX;
    readonly attribute long startPositionY;
    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();
};
