[webkit-reviews] review granted: [Bug 197457] The JS wrapper of target in an ResizeObserverEntry should not get collected : [Attachment 370681] Patch
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Tue May 28 16:38:20 PDT 2019
Ryosuke Niwa <rniwa at webkit.org> has granted cathiechen
<cathiechen at igalia.com>'s request for review:
Bug 197457: The JS wrapper of target in an ResizeObserverEntry should not get
collected
https://bugs.webkit.org/show_bug.cgi?id=197457
Attachment 370681: Patch
https://bugs.webkit.org/attachment.cgi?id=370681&action=review
--- Comment #69 from Ryosuke Niwa <rniwa at webkit.org> ---
Comment on attachment 370681
--> https://bugs.webkit.org/attachment.cgi?id=370681
Patch
View in context: https://bugs.webkit.org/attachment.cgi?id=370681&action=review
> Source/WebCore/ChangeLog:21
> + * bindings/js/JSResizeObserverEntryCustom.cpp: Copied from
Source/WebCore/page/ResizeObserverEntry.idl.
This cpp file isn't a copy of idl file??
> Source/WebCore/page/ResizeObserver.cpp:-177
> - m_observations.clear();
> - m_activeObservations.clear();
Please clarify why we're no longer clearing m_observations.clear and
m_activeObservations here.
> LayoutTests/resize-observer/element-leak.html:13
> +if (window.testRunner)
> + testRunner.dumpAsText();
No need to call dumpAsText if you're including testharness.js /
testharnessreport.js
> LayoutTests/resize-observer/element-leak.html:23
> + if (internals && !internals.isDocumentAlive(documentIdentifier))
{
> + clearInterval(handle);
Seems like this test always requires internals?
In that case, it seems like we don't even need to use testharness.js.
> LayoutTests/resize-observer/element-leak.html:32
> + let test = async_test('test0: Test elements leak');
Can we use promise_test instead?
> LayoutTests/resize-observer/element-leak.html:55
> + log('timeout: ');
> + test.done();
> + }, 5000);
Just specify timeout to promise_test instead.
> LayoutTests/resize-observer/element-leak.html:62
> +test0();
Ugh... can we give this more descriptive name like runTest?
>
LayoutTests/resize-observer/resize-observer-entry-keeps-js-wrapper-of-target-al
ive.html:46
> + document.querySelectorAll('div').forEach(target => {
target.remove(); });
No need for { ~; }. You can just write `target => target.remove()` here.
>
LayoutTests/resize-observer/resize-observer-keeps-js-wrapper-of-target-alive.ht
ml:33
> + document.querySelectorAll('div').forEach(target => { target.remove();
});
Ditto.
>
LayoutTests/resize-observer/resize-observer-keeps-js-wrapper-of-target-alive.ht
ml:41
> + document.querySelectorAll('div').forEach(target => {
observer.observe(target); });
Ditto.
> LayoutTests/resize-observer/resources/element-leak-frame.html:1
> +<body></body>
Missing DOCTYPE.
> LayoutTests/resize-observer/resources/element-leak-frame.html:7
> +var ro = new ResizeObserver( entries => {
Please spell out words such as resizeObserver.
> LayoutTests/resize-observer/resources/element-leak-frame.html:8
> + for (let entry of entries) {
No curly braces around a single line statements.
More information about the webkit-reviews
mailing list