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

Side by Side Diff: LayoutTests/fast/workers/resources/worker-util.js

Issue 953793002: Oilpan: improve fast/workers/worker-document-leak.html stability. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 10 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 unified diff | Download patch
« no previous file with comments | « no previous file | LayoutTests/fast/workers/shared-worker-lifecycle.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Useful utilities for worker tests 1 // Useful utilities for worker tests
2 2
3 function log(message) 3 function log(message)
4 { 4 {
5 document.getElementById("result").innerHTML += message + "<br>"; 5 document.getElementById("result").innerHTML += message + "<br>";
6 } 6 }
7 7
8 function gc(forceAlloc)
9 {
10 if (typeof GCController !== "undefined")
11 GCController.collect();
12
13 if (typeof GCController == "undefined" || forceAlloc) {
14 function gcRec(n) {
15 if (n < 1)
16 return {};
17 var temp = {i: "ab" + i + (i / 100000)};
18 temp += "foo";
19 gcRec(n-1);
20 }
21 for (var i = 0; i < 1000; i++)
22 gcRec(10)
23 }
24 }
25
26 function waitUntilWorkerThreadsExit(callback) 8 function waitUntilWorkerThreadsExit(callback)
27 { 9 {
28 waitUntilThreadCountMatches(callback, 0); 10 waitUntilThreadCountMatches(callback, 0);
29 } 11 }
30 12
31 function waitUntilThreadCountMatches(callback, count) 13 function waitUntilThreadCountMatches(callback, count)
32 { 14 {
33 // When running in a browser, just wait for one second then call the callbac k. 15 // When running in a browser, just wait for one second then call the callbac k.
34 if (!window.testRunner) { 16 if (!window.testRunner) {
35 setTimeout(function() { gc(true); callback(); }, 1000); 17 setTimeout(function() { gc(); callback(); }, 1000);
36 return; 18 return;
37 } 19 }
38 20
39 if (internals.workerThreadCount == count) { 21 if (internals.workerThreadCount == count) {
40 // Worker threads have exited. 22 // Worker threads have exited.
41 callback(); 23 callback();
42 } else { 24 } else {
43 // Poll until worker threads have been GC'd/exited. 25 // Poll until worker threads have been GC'd/exited.
44 // Force a GC with a bunch of allocations to try to scramble the stack a nd force worker objects to be collected. 26 // Force a GC with a bunch of allocations to try to scramble the stack a nd force worker objects to be collected.
45 gc(true); 27 gc(true);
(...skipping 15 matching lines...) Expand all
61 debug('<br><span class="pass">TEST COMPLETE</span>'); 43 debug('<br><span class="pass">TEST COMPLETE</span>');
62 else 44 else
63 log("DONE"); 45 log("DONE");
64 46
65 // Call notifyDone via the queue so any pending console messages/exceptions are written out first. 47 // Call notifyDone via the queue so any pending console messages/exceptions are written out first.
66 setTimeout(function() { 48 setTimeout(function() {
67 if (window.testRunner) 49 if (window.testRunner)
68 testRunner.notifyDone(); 50 testRunner.notifyDone();
69 }, 0); 51 }, 0);
70 } 52 }
OLDNEW
« no previous file with comments | « no previous file | LayoutTests/fast/workers/shared-worker-lifecycle.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698