blob: 6dfc4e581cbc0cf59bd84281f9014717e51d816b [file] [log] [blame]
/*
* Copyright (C) 2016 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
// This interface is recognized as a global object by the bindings generator.
[
Global,
Exposed=TestGlobalObject
] interface TestGlobalObject {
attribute DOMString regularAttribute;
[PrivateIdentifier, PublicIdentifier] attribute DOMString publicAndPrivateAttribute;
[Conditional=TEST_FEATURE, PrivateIdentifier, PublicIdentifier] attribute DOMString publicAndPrivateConditionalAttribute;
[Conditional=TEST_FEATURE, EnabledAtRuntime=TestFeatureEnabled] attribute DOMString enabledAtRuntimeAttribute;
undefined regularOperation(DOMString testParam);
[Conditional=TEST_FEATURE, EnabledAtRuntime=TestFeatureEnabled] undefined enabledAtRuntimeOperation(DOMString testParam);
[Conditional=TEST_FEATURE, EnabledAtRuntime=TestFeatureEnabled] undefined enabledAtRuntimeOperation(long testParam);
[Conditional=TEST_FEATURE, EnabledAtRuntime=TestFeatureEnabled] static undefined enabledAtRuntimeOperationStatic(long testParam);
[EnabledForWorld=specificWorld] undefined enabledInSpecificWorld(long testParam);
[EnabledForWorld=specificWorld, EnabledAtRuntime=TestFeatureEnabled] undefined enabledInSpecificWorldWhenRuntimeFeatureEnabled(long testParam);
[EnabledForWorld=specificWorld, EnabledAtRuntime=TestFeatureEnabled&TestFeature1Enabled] undefined enabledInSpecificWorldWhenRuntimeFeaturesEnabled(long testParam);
[PrivateIdentifier, Conditional=TEST_FEATURE, EnabledAtRuntime=TestFeatureEnabled] undefined testPrivateFunction();
[JSBuiltin, Conditional=TEST_FEATURE, EnabledAtRuntime=TestFeatureEnabled] undefined testJSBuiltinFunction();
// [SecureContext] attributes and operations; will not be exposed to a non-secure context.
// From <https://w3c.github.io/webappsec-secure-contexts/#integration-idl> (Editor's Draft, 17 November 2016)
[SecureContext] Promise<double> calculateSecretResult();
[SecureContext] boolean getSecretBoolean();
[Conditional=TEST_FEATURE, SecureContext, EnabledAtRuntime=TestFeatureEnabled] boolean testFeatureGetSecretBoolean();
};