RESOLVED FIXED212458
CodeGenerator should use DOMAttributeGetterSetter when it is DOMAttribute
https://bugs.webkit.org/show_bug.cgi?id=212458
Summary CodeGenerator should use DOMAttributeGetterSetter when it is DOMAttribute
Philip Jägenstedt
Reported 2020-05-28 01:44:36 PDT
Created attachment 400435 [details] crash log This is a report for the problem discovered in https://github.com/mdittmer/web-apis/issues/94. Safari version: 13.1.1 (15609.2.9.1.2) I found and have attached ~/Library/Logs/DiagnosticReports/com.apple.WebKit.WebContent_2020-05-28-104123_foolip-macbookpro.crash. I will attach the standalone repro case separately. It doesn't repro in STP and it also doesn't repro when running with Web Inspector open.
Attachments
crash log (119.70 KB, text/plain)
2020-05-28 01:44 PDT, Philip Jägenstedt
no flags
standalone repro (825.11 KB, text/html)
2020-05-28 01:44 PDT, Philip Jägenstedt
no flags
Patch (7.17 KB, patch)
2020-06-06 05:48 PDT, Yusuke Suzuki
no flags
Patch (9.00 KB, patch)
2020-06-06 06:05 PDT, Yusuke Suzuki
mark.lam: review+
Philip Jägenstedt
Comment 1 2020-05-28 01:44:55 PDT
Created attachment 400436 [details] standalone repro
Radar WebKit Bug Importer
Comment 2 2020-05-29 03:33:53 PDT
Yusuke Suzuki
Comment 3 2020-06-06 03:39:33 PDT
Reproduced. Looking!
Yusuke Suzuki
Comment 4 2020-06-06 05:48:44 PDT
Yusuke Suzuki
Comment 5 2020-06-06 06:03:53 PDT
I need to update bindings
Yusuke Suzuki
Comment 6 2020-06-06 06:05:59 PDT
Mark Lam
Comment 7 2020-06-06 07:28:33 PDT
Comment on attachment 401253 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=401253&action=review r=me > Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:4341 > + push(@implContent, " putDirectCustomAccessor(vm, static_cast<JSVMClientData*>(vm.clientData)->builtinNames()." . $attributeName . "PublicName(), CustomGetterSetter::create(vm, $getter, $setter), attributesForStructure($jscAttributes));\n"); Can you also add a bindings test case for this? > Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:4467 > + if (IsAcceleratedDOMAttribute($interface, $attribute)) { Can you add bindings test for these 2 cases as well? > Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:4487 > + if (IsAcceleratedDOMAttribute($interface, $attribute)) { Is it possible to add a bindings test for these 2 cases of PrivateName DOMAttributeGetterSetter and CustomGetterSetter?
Yusuke Suzuki
Comment 8 2020-06-06 19:14:21 PDT
Comment on attachment 401253 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=401253&action=review >> Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:4341 >> + push(@implContent, " putDirectCustomAccessor(vm, static_cast<JSVMClientData*>(vm.clientData)->builtinNames()." . $attributeName . "PublicName(), CustomGetterSetter::create(vm, $getter, $setter), attributesForStructure($jscAttributes));\n"); > > Can you also add a bindings test case for this? Added. >> Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:4467 >> + if (IsAcceleratedDOMAttribute($interface, $attribute)) { > > Can you add bindings test for these 2 cases as well? It turned out that this never happens. I've added assertion. >> Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:4487 >> + if (IsAcceleratedDOMAttribute($interface, $attribute)) { > > Is it possible to add a bindings test for these 2 cases of PrivateName DOMAttributeGetterSetter and CustomGetterSetter? It turned out that this never happens. I've added assertion.
Yusuke Suzuki
Comment 9 2020-06-06 19:54:58 PDT
Note You need to log in before you can comment on or make changes to this bug.