| Differences between
and this patch
- a/Source/WebCore/ChangeLog +107 lines
Lines 1-3 a/Source/WebCore/ChangeLog_sec1
1
2011-12-07  Kentaro Hara  <haraken@chromium.org>
2
3
        Use the [Supplemental] IDL for webaudio attributes in Chromium
4
        https://bugs.webkit.org/show_bug.cgi?id=73394
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        - Overview: Using the [Supplemental] IDL, this patch moves the attribute
9
        declarations of webaudio from DOMWindow.idl into a new IDL file
10
        webaudio/DOMWindowWebAudio.idl, which helps make webaudio a self-contained
11
        feature (aka a module).
12
13
        - This patch changes the build flow of WebCore.gyp as follows:
14
15
            Previous build flow:
16
                foreach $idl (all IDL files) {
17
                    generate-bindings.pl depends on $idl;
18
                    generate-bindings.pl reads $idl;
19
                    generate-bindings.pl generates .h and .cpp files for $idl;
20
                }
21
22
            New build flow (See the discussions in bug 72138 for more details):
23
                resolve-supplemental.pl depends on all IDL files;
24
                resolve-supplemental.pl reads all IDL files;
25
                resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
26
                resolve-supplemental.pl outputs supplemental_dependency.tmp;
27
                foreach $idl (all IDL files) {
28
                    generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
29
                    generate-bindings.pl reads $idl;
30
                    generate-bindings.pl reads supplemental_dependency.tmp;
31
                    generate-bindings.pl generates .h and .cpp files for $idl, including all attributes in IDL files whilementing $idl;
32
                }
33
34
        - This patch introduces a temporary IDL, [Supplemented]. The [Supplemented] IDL
35
        will be removed after build scripts for all platforms support the [Supplemental] IDL.
36
        The motivation for the [Supplemented] IDL is as follows:
37
38
        In order to support the [Supplemental] IDL, we need to
39
        (1) run resolve-supplemental.pl and generate supplemental_dependency.tmp
40
        (2) and run generate-bindings.pl with the supplemental_dependency.tmp.
41
42
        This build flow requires a change on the following build scripts,
43
        but changing all the build scripts all at once without any regression is too difficult:
44
45
            - DerivedSources.make
46
            - DerivedSources.pri
47
            - GNUmakefile.am
48
            - PlatformBlackBerry.cmake
49
            - UseJSC.cmake
50
            - UseV8.cmake
51
            - WebCore.vcproj/MigrateScripts
52
            - WebCore.vcproj/WebCore.vcproj
53
            - bindings/gobject/GNUmakefile.am
54
            - WebCore.gyp/WebCore.gyp
55
56
        Thus, we are planning to change the build scripts one by one, which implies that
57
        we need to allow the temporary state in which some build scripts support [Supplemental] IDL
58
        but others do not. To accomplish this, we introduce a temporary IDL, [Supplemented].
59
        The [Supplemented] IDL on an attribute means that the attribute is marked with [Supplemental]
60
        in another IDL file somewhere, like this:
61
62
            DOMWindowWebAudio.idl:
63
                interface [
64
                    Supplemental=DOMWindow
65
                ] DOMWindowWebAudio {
66
                    attribute attr1;
67
                    attribute attr2;
68
                };
69
70
            DOMWindow.idl:
71
                interface [
72
                ] DOMWindow {
73
                    attribute [Supplemented] attr1; // This line will be removed after all build scripts support the [Su IDL
74
                    attribute [Supplemented] attr2; // This line will be removed after all build scripts support the [Su IDL.
75
                    attribute attr3;
76
                    attribute attr4;
77
                };
78
79
        Assuming these IDL files, this patch implements the following logic in generate-bindings.pl:
80
81
            - If a given build script supports the [Supplemental] IDL,
82
            generate-bindings.pl ignores all attributes with the [Supplemented] IDL.
83
            - Otherwise, generate-bindings.pl treats all attributes with the [Supplemented] IDL
84
            as normal attributes and instead ignores all attributes with the [Supplemental] IDL
85
            (i.e. generate-bindings.pl generates nothing from the IDL file with the [Supplemental] IDL).
86
87
        Tests: webaudio/*
88
89
        * WebCore.gyp/WebCore.gyp: Describes the build flow that I described above.
90
        * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
91
        (main): Reads the IDL file names from the input file (i.e. supplemental_dependency.tmp),
92
        which are described at the first column of each line in the input file.
93
        If the file name is a "/cygdrive/c/..."-style path, it is converted to a "C:\cygwin\..."-style
94
        path by the cygpath command.
95
        * WebCore.gypi: Added DOMWindowWebAudio.idl.
96
        * bindings/scripts/generate-bindings.pl: As a temporary solution, if the platform does not
97
        support the [Supplemental] IDL, the perl script ignores the [Supplemental] IDL and instead
98
        uses the [Supplemented] IDL. Otherwise, the perl script ignores the [Supplemented] IDL and
99
        instead uses the [Supplemental] IDL.
100
        Added the --additionalIdlFilesList option to specify the IDL files that are not listed in
101
        supplemental-dependency.tmp but should generate .h and .cpp files.
102
        * page/DOMWindow.idl: Added the [Supplemented] IDL to webaudio-related attributes.
103
        As I described above, the [Supplemented] IDL will be removed after all platforms support
104
        the [Supplemental] IDL.
105
        * webaudio/DOMWindowWebAudio.idl: Added. Describes the [Supplemental=DOMWindow] IDL.
106
        The attributes in this IDL file should be treated as if they are written in DOMWindow.idl.
107
1
2011-12-12  Kenneth Russell  <kbr@google.com>
108
2011-12-12  Kenneth Russell  <kbr@google.com>
2
109
3
        Unreviewed Windows build fix after http://trac.webkit.org/changeset/102619 .
110
        Unreviewed Windows build fix after http://trac.webkit.org/changeset/102619 .
- a/Source/WebCore/WebCore.gyp/WebCore.gyp -8 / +53 lines
Lines 446-454 a/Source/WebCore/WebCore.gyp/WebCore.gyp_sec1
446
      ]
446
      ]
447
    },
447
    },
448
    {
448
    {
449
      'target_name': 'generate_supplemental_dependency',
450
      'type': 'none',
451
      'actions': [
452
         {
453
          'action_name': 'generateSupplementalDependency',
454
          'variables': {
455
            # Write sources into a file, so that the action command line won't
456
            # exceed OS limits.
457
            'idl_files_list': '<|(idl_files_list.tmp <@(bindings_idl_files))',
458
          },
459
          'inputs': [
460
            '../bindings/scripts/resolve-supplemental.pl',
461
            '../bindings/scripts/IDLParser.pm',
462
            '<(idl_files_list)',
463
            '<!@(cat <(idl_files_list))',
464
          ],
465
          'outputs': [
466
            '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp',
467
          ],
468
          'action': [
469
            'perl',
470
            '-w',
471
            '-I../bindings/scripts',
472
            '../bindings/scripts/resolve-supplemental.pl',
473
            '--defines',
474
            '<(feature_defines) LANGUAGE_JAVASCRIPT V8_BINDING',
475
            '--idlFilesList',
476
            '<(idl_files_list)',
477
            '--supplementalDependencyFile',
478
            '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp',
479
          ],
480
          'message': 'Resolving [Supplemental=XXX] dependencies in all IDL files',
481
        }
482
      ]
483
    },
484
    {
449
      'target_name': 'webcore_bindings_sources',
485
      'target_name': 'webcore_bindings_sources',
450
      'type': 'none',
486
      'type': 'none',
451
      'hard_dependency': 1,
487
      'hard_dependency': 1,
488
      'dependencies': [
489
        'generate_supplemental_dependency',
490
      ],
491
      'variables': {
492
        # Write sources into a file, so that the action command line won't
493
        # exceed OS limits.
494
        'additional_idl_files_list': '<|(additional_idl_files_list.tmp <@(webcore_test_support_idl_files))',
495
      },
452
      'sources': [
496
      'sources': [
453
        # bison rule
497
        # bison rule
454
        '../css/CSSGrammar.y',
498
        '../css/CSSGrammar.y',
Lines 861-875 a/Source/WebCore/WebCore.gyp/WebCore.gyp_sec2
861
        },
905
        },
862
        {
906
        {
863
          'action_name': 'derived_sources_all_in_one',
907
          'action_name': 'derived_sources_all_in_one',
864
          'variables': {
865
            # Write sources into a file, so that the action command line won't
866
            # exceed OS limites.
867
            'idls_list_temp_file': '<|(idls_list_temp_file.tmp <@(bindings_idl_files))',
868
          },
869
          'inputs': [
908
          'inputs': [
870
            'scripts/action_derivedsourcesallinone.py',
909
            'scripts/action_derivedsourcesallinone.py',
871
            '<(idls_list_temp_file)',
910
            '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp',
872
            '<!@(cat <(idls_list_temp_file))',
873
          ],
911
          ],
874
          'outputs': [
912
          'outputs': [
875
            '<@(derived_sources_aggregate_files)',
913
            '<@(derived_sources_aggregate_files)',
Lines 877-883 a/Source/WebCore/WebCore.gyp/WebCore.gyp_sec3
877
          'action': [
915
          'action': [
878
            'python',
916
            'python',
879
            'scripts/action_derivedsourcesallinone.py',
917
            'scripts/action_derivedsourcesallinone.py',
880
            '<(idls_list_temp_file)',
918
            '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp',
881
            '--',
919
            '--',
882
            '<@(derived_sources_aggregate_files)',
920
            '<@(derived_sources_aggregate_files)',
883
          ],
921
          ],
Lines 930-935 a/Source/WebCore/WebCore.gyp/WebCore.gyp_sec4
930
            '../bindings/scripts/IDLParser.pm',
968
            '../bindings/scripts/IDLParser.pm',
931
            '../bindings/scripts/IDLStructure.pm',
969
            '../bindings/scripts/IDLStructure.pm',
932
            '../bindings/scripts/preprocessor.pm',
970
            '../bindings/scripts/preprocessor.pm',
971
            '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp',
972
            '<(additional_idl_files_list)',
973
            '<!@(cat <(additional_idl_files_list))',
933
          ],
974
          ],
934
          'outputs': [
975
          'outputs': [
935
            # FIXME:  The .cpp file should be in webkit/bindings once
976
            # FIXME:  The .cpp file should be in webkit/bindings once
Lines 975-980 a/Source/WebCore/WebCore.gyp/WebCore.gyp_sec5
975
            '--generator',
1016
            '--generator',
976
            'V8',
1017
            'V8',
977
            '<@(generator_include_dirs)',
1018
            '<@(generator_include_dirs)',
1019
            '--supplementalDependencyFile',
1020
            '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp',
1021
            '--additionalIdlFilesList',
1022
            '<(additional_idl_files_list)',
978
            '<(RULE_INPUT_PATH)',
1023
            '<(RULE_INPUT_PATH)',
979
          ],
1024
          ],
980
          'message': 'Generating binding from <(RULE_INPUT_PATH)',
1025
          'message': 'Generating binding from <(RULE_INPUT_PATH)',
- a/Source/WebCore/WebCore.gyp/scripts/action_derivedsourcesallinone.py -3 / +11 lines
Lines 32-43 a/Source/WebCore/WebCore.gyp/scripts/action_derivedsourcesallinone.py_sec1
32
# Use of this source code is governed by a BSD-style license that can be
32
# Use of this source code is governed by a BSD-style license that can be
33
# found in the LICENSE file.
33
# found in the LICENSE file.
34
34
35
# action_derivedsourceslist.py generates a single cpp file that includes
35
# action_derivedsourcesallinone.py generates a single cpp file that includes
36
# all v8 bindings cpp files generated from idls. Files can be assigned into
36
# all v8 bindings cpp files generated from idls. Files can be assigned into
37
# multiple output files, to reduce maximum compilation unit size and allow
37
# multiple output files, to reduce maximum compilation unit size and allow
38
# parallel compilation.
38
# parallel compilation.
39
#
39
#
40
# usage: action_derivedsourceslist.py IDL_FILES_LIST -- OUTPUT_FILE1 OUTPUT_FILE2 ...
40
# usage: action_derivedsourcesallinone.py IDL_FILES_LIST -- OUTPUT_FILE1 OUTPUT_FILE2 ...
41
#
41
#
42
# Note that IDL_FILES_LIST is a text file containing the IDL file paths.
42
# Note that IDL_FILES_LIST is a text file containing the IDL file paths.
43
43
Lines 48-53 import re a/Source/WebCore/WebCore.gyp/scripts/action_derivedsourcesallinone.py_sec2
48
import subprocess
48
import subprocess
49
import sys
49
import sys
50
50
51
sys.path.append("../../../Tools/Scripts/")
52
from webkitpy.common.system import path
53
51
# A regexp for finding Conditional attributes in interface definitions.
54
# A regexp for finding Conditional attributes in interface definitions.
52
conditionalPattern = re.compile('interface[\s]*\[[^\]]*Conditional=([\_0-9a-zA-Z&|]*)')
55
conditionalPattern = re.compile('interface[\s]*\[[^\]]*Conditional=([\_0-9a-zA-Z&|]*)')
53
56
Lines 186-192 def main(args): a/Source/WebCore/WebCore.gyp/scripts/action_derivedsourcesallinone.py_sec3
186
    outputFileNames = args[inOutBreakIndex+1:]
189
    outputFileNames = args[inOutBreakIndex+1:]
187
190
188
    inputFile = open(inputFileName, 'r')
191
    inputFile = open(inputFileName, 'r')
189
    idlFileNames = inputFile.read().split('\n')
192
    idlFileNames = []
193
    for line in inputFile:
194
        idlFileName = line[:-1].split(' ')[0]
195
        if idlFileName.find("/cygdrive") == 0:
196
            idlFileName = path.cygpath(idlFileName)
197
        idlFileNames.append(idlFileName)
190
    inputFile.close()
198
    inputFile.close()
191
199
192
    filesMetaData = extractMetaData(idlFileNames)
200
    filesMetaData = extractMetaData(idlFileNames)
- a/Source/WebCore/WebCore.gypi +1 lines
Lines 1496-1501 a/Source/WebCore/WebCore.gypi_sec1
1496
            'webaudio/BiquadFilterNode.idl',
1496
            'webaudio/BiquadFilterNode.idl',
1497
            'webaudio/ConvolverNode.idl',
1497
            'webaudio/ConvolverNode.idl',
1498
            'webaudio/DelayNode.idl',
1498
            'webaudio/DelayNode.idl',
1499
            'webaudio/DOMWindowWebAudio.idl',
1499
            'webaudio/DynamicsCompressorNode.idl',
1500
            'webaudio/DynamicsCompressorNode.idl',
1500
            'webaudio/HighPass2FilterNode.idl',
1501
            'webaudio/HighPass2FilterNode.idl',
1501
            'webaudio/JavaScriptAudioNode.idl',
1502
            'webaudio/JavaScriptAudioNode.idl',
- a/Source/WebCore/bindings/scripts/generate-bindings.pl -2 / +92 lines
Lines 49-54 my $preprocessor; a/Source/WebCore/bindings/scripts/generate-bindings.pl_sec1
49
my $writeDependencies;
49
my $writeDependencies;
50
my $verbose;
50
my $verbose;
51
my $supplementalDependencyFile;
51
my $supplementalDependencyFile;
52
my $additionalIdlFilesList;
52
53
53
GetOptions('include=s@' => \@idlDirectories,
54
GetOptions('include=s@' => \@idlDirectories,
54
           'outputDir=s' => \$outputDirectory,
55
           'outputDir=s' => \$outputDirectory,
Lines 60-66 GetOptions('include=s@' => \@idlDirectories, a/Source/WebCore/bindings/scripts/generate-bindings.pl_sec2
60
           'preprocessor=s' => \$preprocessor,
61
           'preprocessor=s' => \$preprocessor,
61
           'verbose' => \$verbose,
62
           'verbose' => \$verbose,
62
           'write-dependencies' => \$writeDependencies,
63
           'write-dependencies' => \$writeDependencies,
63
           'supplementalDependencyFile=s' => \$supplementalDependencyFile);
64
           'supplementalDependencyFile=s' => \$supplementalDependencyFile,
65
           'additionalIdlFilesList=s' => \$additionalIdlFilesList);
64
66
65
my $targetIdlFile = $ARGV[0];
67
my $targetIdlFile = $ARGV[0];
66
68
Lines 93-105 if ($supplementalDependencyFile) { a/Source/WebCore/bindings/scripts/generate-bindings.pl_sec3
93
    open FH, "< $supplementalDependencyFile" or die "Cannot open $supplementalDependencyFile\n";
95
    open FH, "< $supplementalDependencyFile" or die "Cannot open $supplementalDependencyFile\n";
94
    while (my $line = <FH>) {
96
    while (my $line = <FH>) {
95
        my ($idlFile, @followingIdlFiles) = split(/\s+/, $line);
97
        my ($idlFile, @followingIdlFiles) = split(/\s+/, $line);
96
        if ($idlFile and $idlFile eq $targetIdlFile) {
98
        if ($idlFile and basename($idlFile) eq basename($targetIdlFile)) {
97
            $idlFound = 1;
99
            $idlFound = 1;
98
            @supplementedIdlFiles = @followingIdlFiles;
100
            @supplementedIdlFiles = @followingIdlFiles;
99
        }
101
        }
100
    }
102
    }
101
    close FH;
103
    close FH;
102
104
105
    # The file $additionalIdlFilesList contains one IDL file per line:
106
    # P.idl
107
    # Q.idl
108
    # ...
109
    # These IDL files are ones which should not be included in DerivedSources*.cpp
110
    # (i.e. they are not described in the supplemental dependency file)
111
    # but should generate .h and .cpp files.
112
    if (!$idlFound and $additionalIdlFilesList) {
113
        open FH, "< $additionalIdlFilesList" or die "Cannot open $additionalIdlFilesList\n";
114
        my @idlFiles = <FH>;
115
        chomp(@idlFiles);
116
        $idlFound = grep { $_ and basename($_) eq basename($targetIdlFile) } @idlFiles;
117
        close FH;
118
    }
119
103
    if (!$idlFound) {
120
    if (!$idlFound) {
104
        if ($verbose) {
121
        if ($verbose) {
105
            print "$targetIdlFile is supplementing another IDL file, and thus .h and .cpp for $targetIdlFile are not generated.\n";
122
            print "$targetIdlFile is supplementing another IDL file, and thus .h and .cpp for $targetIdlFile are not generated.\n";
Lines 112-117 if ($supplementalDependencyFile) { a/Source/WebCore/bindings/scripts/generate-bindings.pl_sec4
112
my $targetParser = IDLParser->new(!$verbose);
129
my $targetParser = IDLParser->new(!$verbose);
113
my $targetDocument = $targetParser->Parse($targetIdlFile, $defines, $preprocessor);
130
my $targetDocument = $targetParser->Parse($targetIdlFile, $defines, $preprocessor);
114
131
132
# FIXME(haraken): Remove this if-else statement.
133
# This if-else statement is temporary and will be removed
134
# after build scripts for all platforms support [Supplemental] IDL.
135
# The motivation for the [Supplemented] IDL is as follows:
136
#
137
# In order to support the [Supplemental] IDL, we need to
138
# (1) run resolve-supplemental.pl and generate supplemental_dependency.tmp
139
# (2) and run generate-bindings.pl with the supplemental_dependency.tmp.
140
#
141
# This build flow requires a change on the following build scripts,
142
# but changing all the build scripts all at once without any regression is too difficult:
143
#
144
#     - DerivedSources.make
145
#     - DerivedSources.pri
146
#     - GNUmakefile.am
147
#     - PlatformBlackBerry.cmake
148
#     - UseJSC.cmake
149
#     - UseV8.cmake
150
#     - WebCore.vcproj/MigrateScripts
151
#     - WebCore.vcproj/WebCore.vcproj
152
#     - bindings/gobject/GNUmakefile.am
153
#     - WebCore.gyp/WebCore.gyp
154
#
155
# Thus, we are planning to change the build scripts one by one, which implies that
156
# we need to allow the temporary state in which some build scripts support [Supplemental] IDL
157
# but others do not. To accomplish this, we introduce a temporal IDL, [Supplemented].
158
# The [Supplemented] IDL on an attribute means that the attribute is marked with [Supplemental]
159
# in another IDL file somewhere, like this:
160
#
161
# DOMWindowWebAudio.idl:
162
#     interface [
163
#         Supplemental=DOMWindow
164
#     ] DOMWindowWebAudio {
165
#         attribute attr1;
166
#         attribute attr2;
167
#     };
168
#
169
# DOMWindow.idl:
170
#     interface [
171
#     ] DOMWindow {
172
#         attribute [Supplemented] attr1; // This line will be removed after all build scripts support the [SupplementalL.
173
#         attribute [Supplemented] attr2; // This line will be removed after all build scripts support the [SupplementalL.
174
#         attribute attr3;
175
#         attribute attr4;
176
#     };
177
#
178
# Assuming these IDL files, the below code is doing the following logic:
179
#
180
#     - If a given build script supports the [Supplemental] IDL (i.e. --supplementalDependencyFile is specified),
181
#       we ignore all attributes with the [Supplemented] IDL.
182
#     - Otherwise (i.e. --supplementalDependencyFile is not specified),
183
#       we treat all attributes with the [Supplemented] IDL as normal attributes
184
#       and instead ignore all attributes with the [Supplemental] IDL
185
#       (i.e. we generate nothing from the idl file with the [Supplemental] IDL).
186
if ($supplementalDependencyFile) {
187
    foreach my $dataNode (@{$targetDocument->classes}) {
188
        my @nonSupplementedAttributes;
189
        foreach my $attribute (@{$dataNode->attributes}) {
190
            if (!$attribute->signature->extendedAttributes->{"Supplemented"}) {
191
                push(@nonSupplementedAttributes, $attribute);
192
            }
193
        }
194
        $dataNode->attributes(\@nonSupplementedAttributes);
195
    }
196
} else {
197
    foreach my $dataNode (@{$targetDocument->classes}) {
198
        if ($dataNode->extendedAttributes->{"Supplemental"}) {
199
            exit 0;
200
        }
201
    }
202
}
203
# Temporary if-else statement until here.
204
115
foreach my $idlFile (@supplementedIdlFiles) {
205
foreach my $idlFile (@supplementedIdlFiles) {
116
    next if $idlFile eq $targetIdlFile;
206
    next if $idlFile eq $targetIdlFile;
117
207
- a/Source/WebCore/page/DOMWindow.idl -4 / +4 lines
Lines 523-530 module window { a/Source/WebCore/page/DOMWindow.idl_sec1
523
        attribute [JSCCustomGetter] Float64ArrayConstructor Float64Array; // Usable with new operator
523
        attribute [JSCCustomGetter] Float64ArrayConstructor Float64Array; // Usable with new operator
524
        attribute [JSCCustomGetter] DataViewConstructor DataView; // Usable with new operator
524
        attribute [JSCCustomGetter] DataViewConstructor DataView; // Usable with new operator
525
525
526
        attribute [JSCCustomGetter,Conditional=WEB_AUDIO,EnabledAtRuntime] AudioContextConstructor webkitAudioContext; // Usable with new operator
526
        attribute [Supplemented, JSCCustomGetter, Conditional=WEB_AUDIO, EnabledAtRuntime] AudioContextConstructor webkitAudioContext; // Usable with new operator
527
        attribute [Conditional=WEB_AUDIO] AudioPannerNodeConstructor webkitAudioPannerNode; // Needed for panning model constants
527
        attribute [Supplemented, Conditional=WEB_AUDIO] AudioPannerNodeConstructor webkitAudioPannerNode; // Needed for panning model constants
528
528
529
        // Event Constructors
529
        // Event Constructors
530
        attribute EventConstructor Event;
530
        attribute EventConstructor Event;
Lines 553-560 module window { a/Source/WebCore/page/DOMWindow.idl_sec2
553
        attribute [Conditional=TOUCH_EVENTS] TouchEventConstructor TouchEvent;
553
        attribute [Conditional=TOUCH_EVENTS] TouchEventConstructor TouchEvent;
554
        attribute [Conditional=WEB_SOCKETS] CloseEventConstructor CloseEvent;
554
        attribute [Conditional=WEB_SOCKETS] CloseEventConstructor CloseEvent;
555
        attribute StorageEventConstructor StorageEvent;
555
        attribute StorageEventConstructor StorageEvent;
556
        attribute [Conditional=WEB_AUDIO] AudioProcessingEventConstructor AudioProcessingEvent;
556
        attribute [Supplemented, Conditional=WEB_AUDIO] AudioProcessingEventConstructor AudioProcessingEvent;
557
        attribute [Conditional=WEB_AUDIO] OfflineAudioCompletionEventConstructor OfflineAudioCompletionEvent;
557
        attribute [Supplemented, Conditional=WEB_AUDIO] OfflineAudioCompletionEventConstructor OfflineAudioCompletionEvent;
558
        attribute [Conditional=INPUT_SPEECH] SpeechInputEventConstructor SpeechInputEvent;
558
        attribute [Conditional=INPUT_SPEECH] SpeechInputEventConstructor SpeechInputEvent;
559
        attribute [Conditional=MEDIA_STREAM] MediaStreamEventConstructor MediaStreamEvent;
559
        attribute [Conditional=MEDIA_STREAM] MediaStreamEventConstructor MediaStreamEvent;
560
        attribute [Conditional=WEBGL] WebGLContextEventConstructor WebGLContextEvent;
560
        attribute [Conditional=WEBGL] WebGLContextEventConstructor WebGLContextEvent;
- a/Source/WebCore/webaudio/DOMWindowWebAudio.idl +32 lines
Line 0 a/Source/WebCore/webaudio/DOMWindowWebAudio.idl_sec1
1
/*
2
 * Copyright (C) 2011 Google Inc. All rights reserved.
3
 *
4
 * This library is free software; you can redistribute it and/or
5
 * modify it under the terms of the GNU Library General Public
6
 * License as published by the Free Software Foundation; either
7
 * version 2 of the License, or (at your option) any later version.
8
 *
9
 * This library is distributed in the hope that it will be useful,
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12
 * Library General Public License for more details.
13
 *
14
 * You should have received a copy of the GNU Library General Public License
15
 * along with this library; see the file COPYING.LIB.  If not, write to
16
 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17
 * Boston, MA 02110-1301, USA.
18
 */
19
20
module window {
21
22
    interface [
23
        Conditional=WEB_AUDIO,
24
        Supplemental=DOMWindow
25
    ] DOMWindowWebAudio {
26
        attribute [JSCCustomGetter, EnabledAtRuntime] AudioContextConstructor webkitAudioContext;
27
        attribute AudioPannerNodeConstructor webkitAudioPannerNode;
28
        attribute AudioProcessingEventConstructor AudioProcessingEvent;
29
        attribute OfflineAudioCompletionEventConstructor OfflineAudioCompletionEvent;
30
    };
31
32
}

Return to Bug 73394