Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1306)

Unified Diff: third_party/WebKit/Source/bindings/scripts/v8_interface.py

Issue 1876383003: Introduce infrastructure for tracing ScriptWrappables. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Revert to traceActiveScriptWrappables - C++ is happier Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/bindings/scripts/v8_interface.py
diff --git a/third_party/WebKit/Source/bindings/scripts/v8_interface.py b/third_party/WebKit/Source/bindings/scripts/v8_interface.py
index bcfa35cc13b2e57c6c8be4891e61e12f976a0751..d476e8d95b8c9eb821bfa0690826d1387abe54cf 100644
--- a/third_party/WebKit/Source/bindings/scripts/v8_interface.py
+++ b/third_party/WebKit/Source/bindings/scripts/v8_interface.py
@@ -145,11 +145,16 @@ def interface_context(interface):
}
set_wrapper_reference_to['idl_type'].add_includes_for_type()
- # [SetWrapperReferenceFrom]
+ # [Custom=VisitDOMWrapper]
has_visit_dom_wrapper = (
has_extended_attribute_value(interface, 'Custom', 'VisitDOMWrapper') or
set_wrapper_reference_from or set_wrapper_reference_to)
+ # [TraceWrapperReferences]
+ trace_wrapper_references = extended_attribute_value_as_list(interface, 'TraceWrapperReferences')
+ if trace_wrapper_references:
+ includes.add('bindings/core/v8/ScriptWrappableVisitor.h')
+
wrapper_class_id = ('NodeClassId' if inherits_interface(interface.name, 'Node') else 'ObjectClassId')
v8_class_name = v8_utilities.v8_class_name(interface)
@@ -169,6 +174,7 @@ def interface_context(interface):
'has_custom_legacy_call_as_function': has_extended_attribute_value(interface, 'Custom', 'LegacyCallAsFunction'), # [Custom=LegacyCallAsFunction]
'has_partial_interface': len(interface.partial_interfaces) > 0,
'has_visit_dom_wrapper': has_visit_dom_wrapper,
+ 'trace_wrapper_references': trace_wrapper_references,
'header_includes': header_includes,
'interface_name': interface.name,
'is_array_buffer_or_view': is_array_buffer_or_view,
@@ -179,7 +185,7 @@ def interface_context(interface):
'is_node': inherits_interface(interface.name, 'Node'),
'is_partial': interface.is_partial,
'is_typed_array_type': is_typed_array_type,
- 'lifetime': 'Dependent' if (has_visit_dom_wrapper or is_dependent_lifetime) else 'Independent',
+ 'lifetime': 'Dependent' if (has_visit_dom_wrapper or trace_wrapper_references or is_dependent_lifetime) else 'Independent',
'measure_as': v8_utilities.measure_as(interface, None), # [MeasureAs]
'origin_trial_enabled_function': v8_utilities.origin_trial_enabled_function_name(interface, None),
'parent_interface': parent_interface,

Powered by Google App Engine
This is Rietveld 408576698