| 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 provides shared functionality for the systems to generate | 6 """This module provides shared functionality for the systems to generate |
| 7 native binding from the IDL database.""" | 7 native binding from the IDL database.""" |
| 8 | 8 |
| 9 import emitter | 9 import emitter |
| 10 import os | 10 import os |
| (...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 370 DECLARATIONS=self._cpp_declarations_emitter.Fragments()) | 370 DECLARATIONS=self._cpp_declarations_emitter.Fragments()) |
| 371 | 371 |
| 372 def AddAttribute(self, getter, setter): | 372 def AddAttribute(self, getter, setter): |
| 373 # FIXME: Dartium does not support attribute event listeners. However, JS | 373 # FIXME: Dartium does not support attribute event listeners. However, JS |
| 374 # implementation falls back to them when addEventListener is not available. | 374 # implementation falls back to them when addEventListener is not available. |
| 375 # Make sure addEventListener is available in all EventTargets and remove | 375 # Make sure addEventListener is available in all EventTargets and remove |
| 376 # this check. | 376 # this check. |
| 377 if (getter or setter).type.id == 'EventListener': | 377 if (getter or setter).type.id == 'EventListener': |
| 378 return | 378 return |
| 379 | 379 |
| 380 if 'CheckSecurityForNode' in (getter or setter).ext_attrs: |
| 381 # FIXME: exclude from interface as well. |
| 382 return |
| 383 |
| 380 # FIXME: support 'ImplementedBy'. | 384 # FIXME: support 'ImplementedBy'. |
| 381 if 'ImplementedBy' in (getter or setter).ext_attrs: | 385 if 'ImplementedBy' in (getter or setter).ext_attrs: |
| 382 return | 386 return |
| 383 | 387 |
| 384 # FIXME: these should go away. | 388 # FIXME: these should go away. |
| 385 classes_with_unsupported_custom_getters = [ | 389 classes_with_unsupported_custom_getters = [ |
| 386 'Clipboard', 'Console', 'Coordinates', 'DeviceMotionEvent', | 390 'Clipboard', 'Console', 'Coordinates', 'DeviceMotionEvent', |
| 387 'DeviceOrientationEvent', 'FileReader', 'JavaScriptCallFrame', | 391 'DeviceOrientationEvent', 'FileReader', 'JavaScriptCallFrame', |
| 388 'HTMLInputElement', 'HTMLOptionsCollection', 'HTMLOutputElement', | 392 'HTMLInputElement', 'HTMLOptionsCollection', 'HTMLOutputElement', |
| 389 'ScriptProfileNode', 'WebKitAnimation'] | 393 'ScriptProfileNode', 'WebKitAnimation'] |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 475 dart_declaration = 'void operator[]=(int index, %s value)' % element_type | 479 dart_declaration = 'void operator[]=(int index, %s value)' % element_type |
| 476 self._GenerateNativeBinding('numericIndexSetter', 3, dart_declaration, | 480 self._GenerateNativeBinding('numericIndexSetter', 3, dart_declaration, |
| 477 'Callback', True) | 481 'Callback', True) |
| 478 | 482 |
| 479 def AddOperation(self, info): | 483 def AddOperation(self, info): |
| 480 """ | 484 """ |
| 481 Arguments: | 485 Arguments: |
| 482 info: An OperationInfo object. | 486 info: An OperationInfo object. |
| 483 """ | 487 """ |
| 484 | 488 |
| 489 if 'CheckSecurityForNode' in info.overloads[0].ext_attrs: |
| 490 # FIXME: exclude from interface as well. |
| 491 return |
| 492 |
| 485 if 'Custom' in info.overloads[0].ext_attrs: | 493 if 'Custom' in info.overloads[0].ext_attrs: |
| 486 parameters = info.ParametersImplementationDeclaration() | 494 parameters = info.ParametersImplementationDeclaration() |
| 487 dart_declaration = '%s %s(%s)' % (info.type_name, info.name, parameters) | 495 dart_declaration = '%s %s(%s)' % (info.type_name, info.name, parameters) |
| 488 argument_count = 1 + len(info.arg_infos) | 496 argument_count = 1 + len(info.arg_infos) |
| 489 self._GenerateNativeBinding(info.name, argument_count, dart_declaration, | 497 self._GenerateNativeBinding(info.name, argument_count, dart_declaration, |
| 490 'Callback', True) | 498 'Callback', True) |
| 491 return | 499 return |
| 492 | 500 |
| 493 body = self._members_emitter.Emit( | 501 body = self._members_emitter.Emit( |
| 494 '\n' | 502 '\n' |
| (...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 769 namespace = 'HTMLNames' | 777 namespace = 'HTMLNames' |
| 770 svg_exceptions = ['class', 'id', 'onabort', 'onclick', 'onerror', 'onload', | 778 svg_exceptions = ['class', 'id', 'onabort', 'onclick', 'onerror', 'onload', |
| 771 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', | 779 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', |
| 772 'onmouseup', 'onresize', 'onscroll', 'onunload'] | 780 'onmouseup', 'onresize', 'onscroll', 'onunload'] |
| 773 if self._interface.id.startswith('SVG') and not attr.id in svg_exceptions: | 781 if self._interface.id.startswith('SVG') and not attr.id in svg_exceptions: |
| 774 namespace = 'SVGNames' | 782 namespace = 'SVGNames' |
| 775 self._cpp_impl_includes[namespace] = 1 | 783 self._cpp_impl_includes[namespace] = 1 |
| 776 | 784 |
| 777 attribute_name = attr.ext_attrs['Reflect'] or attr.id.lower() | 785 attribute_name = attr.ext_attrs['Reflect'] or attr.id.lower() |
| 778 return 'WebCore::%s::%sAttr' % (namespace, attribute_name) | 786 return 'WebCore::%s::%sAttr' % (namespace, attribute_name) |
| OLD | NEW |