OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 2 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
3 # for details. All rights reserved. Use of this source code is governed by a | 3 # for details. All rights reserved. Use of this source code is governed by a |
4 # BSD-style license that can be found in the LICENSE file. | 4 # BSD-style license that can be found in the LICENSE file. |
5 | 5 |
6 """This module generates Dart APIs from the IDL database.""" | 6 """This module generates Dart APIs from the IDL database.""" |
7 | 7 |
8 import emitter | 8 import emitter |
9 import idlnode | 9 import idlnode |
10 import logging | 10 import logging |
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
237 self._ComputeInheritanceClosure() | 237 self._ComputeInheritanceClosure() |
238 | 238 |
239 self._systems = [] | 239 self._systems = [] |
240 | 240 |
241 # TODO(jmesserly): only create these if needed | 241 # TODO(jmesserly): only create these if needed |
242 if ('htmlfrog' in systems) or ('htmldartium' in systems): | 242 if ('htmlfrog' in systems) or ('htmldartium' in systems): |
243 html_interface_system = HtmlInterfacesSystem( | 243 html_interface_system = HtmlInterfacesSystem( |
244 TemplateLoader(self._template_dir, ['html/interface', 'html', '']), | 244 TemplateLoader(self._template_dir, ['html/interface', 'html', '']), |
245 self._database, self._emitters, self._output_dir, self) | 245 self._database, self._emitters, self._output_dir, self) |
246 self._systems.append(html_interface_system) | 246 self._systems.append(html_interface_system) |
| 247 |
| 248 html_cross_frame_system = HtmlCrossFrameSystem( |
| 249 TemplateLoader(self._template_dir, ['html', '']), |
| 250 self._database, self._emitters, self._output_dir, self) |
| 251 self._systems.append(html_cross_frame_system) |
247 else: | 252 else: |
248 interface_system = InterfacesSystem( | 253 interface_system = InterfacesSystem( |
249 TemplateLoader(self._template_dir, ['dom/interface', 'dom', '']), | 254 TemplateLoader(self._template_dir, ['dom/interface', 'dom', '']), |
250 self._database, self._emitters, self._output_dir) | 255 self._database, self._emitters, self._output_dir) |
251 self._systems.append(interface_system) | 256 self._systems.append(interface_system) |
252 | 257 |
253 if 'native' in systems: | 258 if 'native' in systems: |
254 native_system = NativeImplementationSystem( | 259 native_system = NativeImplementationSystem( |
255 TemplateLoader(self._template_dir, ['dom/native', 'dom', '']), | 260 TemplateLoader(self._template_dir, ['dom/native', 'dom', '']), |
256 self._database, self._emitters, self._auxiliary_dir, | 261 self._database, self._emitters, self._auxiliary_dir, |
(...skipping 30 matching lines...) Expand all Loading... |
287 self._systems.append(frog_system) | 292 self._systems.append(frog_system) |
288 | 293 |
289 if 'htmlfrog' in systems: | 294 if 'htmlfrog' in systems: |
290 html_system = HtmlFrogSystem( | 295 html_system = HtmlFrogSystem( |
291 TemplateLoader(self._template_dir, | 296 TemplateLoader(self._template_dir, |
292 ['html/frog', 'html/impl', 'html', ''], | 297 ['html/frog', 'html/impl', 'html', ''], |
293 {'DARTIUM': False, 'FROG': True}), | 298 {'DARTIUM': False, 'FROG': True}), |
294 self._database, self._emitters, self._output_dir, self) | 299 self._database, self._emitters, self._output_dir, self) |
295 | 300 |
296 html_system._interface_system = html_interface_system | 301 html_system._interface_system = html_interface_system |
| 302 html_system._cross_frame_system = html_cross_frame_system |
297 self._systems.append(html_system) | 303 self._systems.append(html_system) |
298 | 304 |
299 if 'htmldartium' in systems: | 305 if 'htmldartium' in systems: |
300 html_system = HtmlDartiumSystem( | 306 html_system = HtmlDartiumSystem( |
301 TemplateLoader(self._template_dir, | 307 TemplateLoader(self._template_dir, |
302 ['html/dartium', 'html/impl', 'html', ''], | 308 ['html/dartium', 'html/impl', 'html', ''], |
303 {'DARTIUM': True, 'FROG': False}), | 309 {'DARTIUM': True, 'FROG': False}), |
304 self._database, self._emitters, self._auxiliary_dir, | 310 self._database, self._emitters, self._auxiliary_dir, |
305 self._output_dir, self) | 311 self._output_dir, self) |
306 | 312 |
307 html_system._interface_system = html_interface_system | 313 html_system._interface_system = html_interface_system |
| 314 html_system._cross_frame_system = html_cross_frame_system |
308 self._systems.append(html_system) | 315 self._systems.append(html_system) |
309 | 316 |
310 # Collect interfaces | 317 # Collect interfaces |
311 interfaces = [] | 318 interfaces = [] |
312 for interface in database.GetInterfaces(): | 319 for interface in database.GetInterfaces(): |
313 if not MatchSourceFilter(source_filter, interface): | 320 if not MatchSourceFilter(source_filter, interface): |
314 # Skip this interface since it's not present in the required source | 321 # Skip this interface since it's not present in the required source |
315 _logger.info('Omitting interface - %s' % interface.id) | 322 _logger.info('Omitting interface - %s' % interface.id) |
316 continue | 323 continue |
317 interfaces.append(interface) | 324 interfaces.append(interface) |
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
639 pass | 646 pass |
640 | 647 |
641 def AddOperation(self, info): | 648 def AddOperation(self, info): |
642 pass | 649 pass |
643 | 650 |
644 def AddStaticOperation(self, info): | 651 def AddStaticOperation(self, info): |
645 pass | 652 pass |
646 | 653 |
647 def AddEventAttributes(self, event_attrs): | 654 def AddEventAttributes(self, event_attrs): |
648 pass | 655 pass |
OLD | NEW |