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

Side by Side Diff: third_party/WebKit/LayoutTests/fast/canvas/OffscreenCanvas-multiple-worker-commit.html

Issue 2502853003: Make OffscreenCanvas histogram thread safe (Closed)
Patch Set: Created 4 years, 1 month 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 | third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 <!DOCTYPE>
2 <script src="../../resources/testharness.js"></script>
3 <script src="../../resources/testharnessreport.js"></script>
4 <script id="myWorker1" type="text/worker">
5 self.onmessage = function(e) {
6 var offscreenCanvas = e.data;
7 var offscreen2d = offscreenCanvas.getContext("2d");
8 offscreen2d.commit();
9 self.postMessage("worker1 done");
10 };
11 </script>
12 <script id="myWorker2" type="text/worker">
Justin Novosad 2016/11/15 19:44:55 No need for two identical worker scripts. You shou
xidachen 2016/11/15 19:49:02 Done.
13 self.onmessage = function(e) {
14 var offscreenCanvas = e.data;
15 var offscreen2d = offscreenCanvas.getContext("2d");
16 offscreen2d.commit();
17 self.postMessage("worker2 done");
18 };
19 </script>
20 <script>
21 function makeWorker(script) {
22 var blob = new Blob([script]);
23 return new Worker(URL.createObjectURL(blob));
24 }
25
26 // Regression test for crbug.com/663916
27 async_test(function(t) {
28 var canvas1 = document.createElement('canvas');
29 canvas1.width = canvas1.height = 10;
30 var offscreenCanvas1 = canvas1.transferControlToOffscreen();
31
32 var canvas2 = document.createElement('canvas');
33 canvas2.width = canvas2.height = 10;
34 var offscreenCanvas2 = canvas2.transferControlToOffscreen();
35
36 var worker1 = makeWorker(document.getElementById("myWorker1").textContent);
37 var worker2 = makeWorker(document.getElementById("myWorker2").textContent);
38 var returnedWorkerCounter = 0;
39 worker1.onmessage = function (e) {
40 returnedWorkerCounter++;
41 if (returnedWorkerCounter == 2)
42 t.done();
43 };
44 worker2.onmessage = function (e) {
45 returnedWorkerCounter++;
46 if (returnedWorkerCounter == 2)
47 t.done();
48 };
49 worker1.postMessage(offscreenCanvas1, [offscreenCanvas1]);
50 worker2.postMessage(offscreenCanvas2, [offscreenCanvas2]);
51 }, "Calling OffscreenCanvas.commit() from two workers should not crash.");
52
53 </script>
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/platform/graphics/OffscreenCanvasFrameDispatcherImpl.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698