blob: ea25cb3c6dbc7e93fd1b7da20dddfdd00e7617dc [file] [log] [blame]
// 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.
interface OriginTrialsTest {
[RuntimeEnabled=OriginTrialsSampleAPI] readonly attribute boolean normalAttribute;
[RuntimeEnabled=OriginTrialsSampleAPI] static readonly attribute boolean staticAttribute;
[RuntimeEnabled=OriginTrialsSampleAPI] boolean normalMethod();
[RuntimeEnabled=OriginTrialsSampleAPI] static boolean staticMethod();
[RuntimeEnabled=OriginTrialsSampleAPI] const unsigned short CONSTANT = 1;
// This attribute uses native code to test whether the trial is enabled,
// and throws an exception in JavaScript if it is not.
[CallWith=ScriptState, RaisesException] readonly attribute boolean throwingAttribute;
// This method returns a dictionary, to allow inspection of trial-controlled
// members
OriginTrialsTestDictionary getDictionaryMethod();
// This method takes a dictionary as input, to test if trial-controlled
// members are accessed
void checkDictionaryMethod(OriginTrialsTestDictionary dict);
// These are available whether or not the trial is enabled.
readonly attribute boolean unconditionalAttribute;
static readonly attribute boolean staticUnconditionalAttribute;
boolean unconditionalMethod();
void unconditionalDictionaryMethod(OriginTrialsTestDictionary dict);
static boolean staticUnconditionalMethod();
const unsigned short UNCONDITIONAL_CONSTANT = 99;
// These are available whether or not the trial is enabled, but only in a
// secure context
[SecureContext] readonly attribute boolean secureUnconditionalAttribute;
// TODO(chasej): Add [SecureContext] when that attribute is fixed to work on
// static attributes. That problem is not related to [RuntimeEnabled].
static readonly attribute boolean secureStaticUnconditionalAttribute;
[SecureContext] boolean secureUnconditionalMethod();
[SecureContext] static boolean secureStaticUnconditionalMethod();
// These are only available if the trial is enabled, as well as in secure
// context.
[SecureContext, RuntimeEnabled=OriginTrialsSampleAPI] readonly attribute boolean secureAttribute;
[SecureContext, RuntimeEnabled=OriginTrialsSampleAPI] static readonly attribute boolean secureStaticAttribute;
[SecureContext, RuntimeEnabled=OriginTrialsSampleAPI] boolean secureMethod();
[SecureContext, RuntimeEnabled=OriginTrialsSampleAPI] static boolean secureStaticMethod();
// These are available if the specified trial is available, and also if the
// implied by trial is enabled
[RuntimeEnabled=OriginTrialsSampleAPIImplied] readonly attribute boolean impliedAttribute;
// These are not available even with the token present.
[RuntimeEnabled=OriginTrialsSampleAPIInvalidOS] readonly attribute boolean invalidOSAttribute;
// These are available if the associated navigation trial is available.
[RuntimeEnabled=OriginTrialsSampleAPINavigation] boolean navigationMethod();
};