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

[
    Constructor(Element element, DOMString[] attributeArray),
    ConstructorCallWith=ExecutionContext,
    Exposed=(Window,CompositorWorker),
    GarbageCollected,
    RaisesException=Constructor,
    RuntimeEnabled=CompositorWorker,
] interface CompositorProxy {
    [RaisesException] attribute double opacity;
    [RaisesException] attribute double scrollLeft;
    [RaisesException] attribute double scrollTop;
    [RaisesException] attribute DOMMatrix transform;

    boolean supports(DOMString attribute);
    void disconnect();
};
