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

// http://dev.w3.org/houdini/css-scroll-api/

[
    Constructor(optional double deltaX = 0,
                optional double deltaY = 0,
                optional double deltaGranularity = 0,
                optional double velocityX = 0,
                optional double velocityY = 0,
                optional boolean inInertialPhase = false,
                optional boolean isBeginning = false,
                optional boolean isEnding = false),
    WillBeGarbageCollected,
    RuntimeEnabled=ScrollCustomization
] interface ScrollState {
    readonly attribute double deltaX;
    readonly attribute double deltaY;
    readonly attribute double deltaGranularity;
    readonly attribute double velocityX;
    readonly attribute double velocityY;
    readonly attribute boolean inInertialPhase;
    readonly attribute boolean isEnding;
    readonly attribute boolean isBeginning;
    readonly attribute boolean fromUserInput;
    readonly attribute boolean shouldPropagate;

    [RaisesException] void consumeDelta(double x, double y);
    // FIXME: implement distributeToScrollChainDescendent.
};
