blob: b0ca3fa3e2e31c702163b84f72e6328b08cdd136 [file] [log] [blame]
// Copyright (c) 2012 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.
// Tests a variety of basic API definition features.
[internal] namespace idl_basics {
// Enum description
enum EnumType {
// comment1
[nodoc] enum EnumTypeWithNoDoc {
enum EnumTypeWithNoDocValue {
// comment2
[nodoc] name2,
// comment3
dictionary MyType1 {
// This comment tests "double-quotes".
[legalValues=(1,2)] long x;
DOMString y;
DOMString z;
DOMString a;
DOMString b;
DOMString c;
dictionary MyType2 {
DOMString x;
dictionary UnionType {
(EnumType or DOMString)? x;
(DOMString or EnumType) y;
callback Callback1 = void();
callback Callback2 = void(long x);
callback Callback3 = void(MyType1 arg);
callback Callback4 = void(MyType2[] arg);
callback Callback5 = void(EnumType type);
// A comment on a callback.
// |x|: A parameter.
callback Callback6 = void(long x);
// |x|: Just a parameter comment, with no comment on the callback.
callback Callback7 = void(long x);
interface Functions {
static void function1();
static void function2(long x);
// This comment should appear in the documentation,
// despite occupying multiple lines.
// |arg|: So should this comment
// about the argument.
// <em>HTML</em> is fine too.
static void function3(MyType1 arg);
// This tests if "double-quotes" are escaped correctly.
// It also tests a comment with two newlines.
static void function4(Callback1 cb);
static void function5(Callback2 cb);
static void function6(Callback3 cb);
static void function7(optional long arg);
static void function8(long arg1, optional DOMString arg2);
static void function9(optional MyType1 arg);
static void function10(long x, long[] y);
static void function11(MyType1[] arg);
static void function12(Callback4 cb);
static void function13(EnumType type, Callback5 cb);
static void function14(EnumType[] types);
// "switch" is a reserved word and should cause a C++ compile error if we
// emit code for this declaration.
[nocompile] static void function15(long switch);
static void function16(Callback6 cb);
static void function17(Callback7 cb);
// |cb|: Override callback comment.
static void function18(Callback7 cb);
static void function20(idl_other_namespace.SomeType value);
static void function21(idl_other_namespace.SomeType[] values);
static void function22(
idl_other_namespace.sub_namespace.AnotherType value);
static void function23(
idl_other_namespace.sub_namespace.AnotherType[] values);
static long function24();
static MyType1 function25();
static MyType1[] function26();
static EnumType function27();
static EnumType[] function28();
static idl_other_namespace.SomeType function29();
static idl_other_namespace.SomeType[] function30();
[nodefine] static void function31(long switch);
[forIOThread] static void function32();
interface Events {
static void onFoo1();
static void onFoo2(long x);
static void onFoo2(MyType1 arg);
static void onFoo3(EnumType type);