WebKit Bugzilla
Attachment 369932 Details for
Bug 197908
: resize-observer/element-leak.html fails on Windows platform
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
test cases
gc-001.diff (text/plain), 3.05 KB, created by
cathiechen
on 2019-05-15 00:30:26 PDT
(
hide
)
Description:
test cases
Filename:
MIME Type:
Creator:
cathiechen
Created:
2019-05-15 00:30:26 PDT
Size:
3.05 KB
patch
obsolete
>diff --git a/LayoutTests/resize-observer/element-leak-002.html b/LayoutTests/resize-observer/element-leak-002.html >new file mode 100644 >index 00000000000..08faa95dbe3 >--- /dev/null >+++ b/LayoutTests/resize-observer/element-leak-002.html >@@ -0,0 +1,72 @@ >+<!DOCTYPE html> >+<html> >+<meta name="timeout" content="long"> >+<head> >+<script src="../resources/testharness.js"></script> >+<script src="../resources/testharnessreport.js"></script> >+<script src="../resources/gc.js"></script> >+</head> >+<body> >+<div id="mylog"></div> >+<iframe id="testFrame" src="resources/element-leak-frame-2.html"></iframe> >+<script> >+if (window.testRunner) >+ testRunner.dumpAsText(); >+ >+var testresult; >+function log(text) { >+ document.getElementById('mylog').textContent += text + `${internals.numberOfLiveNodes()}` + ` | `; >+} >+ >+function documentShouldDie(documentIdentifier) >+{ >+ return new Promise(function(resolve, reject) { >+ handle = setInterval(function() { >+ log('gc begin: '); >+ gc(); >+ log('gc end: '); >+ if (internals && !internals.isDocumentAlive(documentIdentifier)) { >+ clearInterval(handle); >+ resolve(); >+ testresult = true; >+ log('resolved: '); >+ } >+ }, 10); >+ }); >+} >+ >+function test0() { >+ let test = async_test('test0: Test elements leak'); >+ window.addEventListener('message', event => { >+ switch(event.data) { >+ case 'Notified': >+ log('notified with livenodes: '); >+ test.step( () => { >+ var testFrame = document.getElementById("testFrame"); >+ let frameDocumentIdentifier = internals.documentIdentifier(testFrame.contentDocument); >+ testFrame.remove(); >+ log('frame removed: '); >+ documentShouldDie(frameDocumentIdentifier).then(function() { >+ assert_true(testresult, 'element leaking'); >+ test.done(); >+ }); >+ >+ }); >+ break; >+ } >+ }, false); >+ >+ test.step_timeout(() => { >+ testresult = false; >+ assert_true(testresult, 'element leaking'); >+ log('timeout: '); >+ test.done(); >+ }, 5000); >+} >+ >+ >+test0(); >+ >+</script> >+</body> >+</html> >diff --git a/LayoutTests/resize-observer/resources/element-leak-frame-2.html b/LayoutTests/resize-observer/resources/element-leak-frame-2.html >new file mode 100644 >index 00000000000..b17bb7b9ce0 >--- /dev/null >+++ b/LayoutTests/resize-observer/resources/element-leak-frame-2.html >@@ -0,0 +1,22 @@ >+<body></body> >+<script src="../../resources/gc.js"></script> >+ >+<script type="text/javascript"> >+ >+const targetCount = 1000; >+for (let i = 0; i < targetCount; ++i) { >+ var target = document.createElement('div'); >+ document.body.appendChild(target); >+} >+ >+function removeElement() { >+ document.querySelectorAll('div').forEach(target => { >+ target.remove(); >+ }); >+ gc(); >+ parent.postMessage('Notified', '*') >+} >+ >+setTimeout('removeElement()', 10); >+ >+</script> >\ No newline at end of file
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 197908
:
369932
|
369933
|
369948
|
369954
|
370042
|
370045
|
371578
|
371595
|
371597
|
371645
|
371650