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

// Test for [OriginTrialEnabled] extended attribute applied to an interface.
// This is separate from TestInterface (and TestInterface[2|3]), as the
// [OriginTrialEnabled] attribute takes precedence over [RuntimeEnabled].

[
    OriginTrialEnabled=InterfaceFeatureName
] interface TestInterfaceOriginTrialEnabled {
    const unsigned long UNSIGNED_LONG = 0;
    const short CONST_JAVASCRIPT = 1;

    attribute double doubleAttribute;
    [RuntimeEnabled=FeatureName] attribute long conditionalLongAttribute;
    [RuntimeEnabled=FeatureName] readonly attribute long conditionalReadOnlyLongAttribute;
    static attribute DOMString staticStringAttribute;
    [RuntimeEnabled=FeatureName] static readonly attribute long staticConditionalReadOnlyLongAttribute;

    void voidMethodDoubleArgFloatArg(double doubleArg, float floatArg);

    void voidMethodPartialOverload();
    void voidMethodPartialOverload(double doubleArg);
};
