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

Side by Side Diff: third_party/WebKit/LayoutTests/fast/canvas/OffscreenCanvas-resize.html

Issue 2508943003: Make OffscreenCanvas resizeable (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
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <title>Test resizing an OffscreenCanvas with a 2d context</title>
3 <script src="../../resources/testharness.js"></script>
4 <script src="../../resources/testharnessreport.js"></script>
5
6 <script>
7 test(function() {
8 var canvas = new OffscreenCanvas(10, 20);
9 canvas.width = 30;
10 canvas.height = 40;
xidachen 2016/11/17 02:12:22 I am guessing that when you make the pull request
11 assert_equals(canvas.width, 30);
12 assert_equals(canvas.height, 40);
13 }, "Verify that writing to the width and height attributes of an OffscreenCanvas works when there is no context attached.");
14
15 test(function() {
16 var canvas = new OffscreenCanvas(10, 20);
17 canvas.getContext('2d');
18 canvas.width = 30;
19 canvas.height = 40;
20 assert_equals(canvas.width, 30);
21 assert_equals(canvas.height, 40);
22 var image = canvas.transferToImageBitmap();
23 assert_equals(image.width, 30);
24 assert_equals(image.height, 40);
25 }, "Verify that writing to the width and height attributes of an OffscreenCanvas works when there is a 2d context attached.");
26
27 test(function() {
28 var canvas = new OffscreenCanvas(10, 20);
29 canvas.getContext('webgl');
30 canvas.width = 30;
31 canvas.height = 40;
32 assert_equals(canvas.width, 30);
33 assert_equals(canvas.height, 40);
34 var image = canvas.transferToImageBitmap();
35 assert_equals(image.width, 30);
36 assert_equals(image.height, 40);
37 }, "Verify that writing to the width and height attributes of an OffscreenCanvas works when there is a webgl context attached.");
38
39 test(function() {
40 var canvas = new OffscreenCanvas(10, 20);
41 var ctx = canvas.getContext('2d');
42 ctx.lineWidth = 5;
43 canvas.width = 30;
44 assert_equals(ctx.lineWidth, 1);
45 ctx.lineWidth = 5;
46 canvas.height = 40;
47 assert_equals(ctx.lineWidth, 1);
48
49 }, "Verify that resizing a 2d context resets its state.");
50
51 test(function() {
52 var canvas = new OffscreenCanvas(10, 20);
53 var ctx = canvas.getContext('2d');
54 ctx.lineWidth = 5;
55 canvas.width = canvas.width;
56 assert_equals(ctx.lineWidth, 1);
57 ctx.lineWidth = 5;
58 canvas.height = canvas.height;
59 assert_equals(ctx.lineWidth, 1);
60 }, "Verify that setting the size of a 2d context to the same size it already had resets its state.");
61
62 async_test(function(t) {
63 var placeholder = document.createElement('canvas');
64 placeholder.width = 10;
65 placeholder.height = 20;
66 var offscreen = placeholder.transferControlToOffscreen();
67 var ctx = offscreen.getContext('2d');
68 t.step(function() {
69 // Verify that setting the size of an OffscreenCanvas that has a placeholder works.
70 offscreen.width = 30;
71 offscreen.height = 40;
72 assert_equals(offscreen.width, 30);
73 assert_equals(offscreen.height, 40);
74 var image = offscreen.transferToImageBitmap();
75 assert_equals(image.width, 30);
76 assert_equals(image.height, 40);
77 });
78 t.step(function() {
79 // Verify that setting the size of an OffscreenCanvas does not directly upda te the size of its placeholder canvas.
80 assert_equals(placeholder.width, 10);
81 assert_equals(placeholder.height, 20);
82 });
83 ctx.commit();
84 t.step(function() {
85 // Verify that commit() does not synchronously update the size of its placeh older canvas.
86 assert_equals(placeholder.width, 10);
87 assert_equals(placeholder.height, 20);
88 });
89 // Set timeout acts as a sync barrier to allow commit to propagate
90 setTimeout(function(){
91 t.step(function() {
92 // Verify that commit() asynchronously updates the size of its placeholder canvas.
93 assert_equals(placeholder.width, 30);
94 assert_equals(placeholder.height, 40);
95 });
96 createImageBitmap(placeholder).then(image => {
97 t.step(function() {
98 // Verify that an image grabbed from the placeholder has the correct dim ensions
99 assert_equals(image.width, 30);
100 assert_equals(image.height, 40);
101 });
102 t.done();
103 });
104 }, 0);
105 }, "Verify that resizing an OffscreenCanvas with a 2d context propagates the new size to its placeholder canvas asynchronously, upon commit.");
106
107 async_test(function(t) {
108 var placeholder = document.createElement('canvas');
109 placeholder.width = 10;
110 placeholder.height = 20;
111 var offscreen = placeholder.transferControlToOffscreen();
112 var ctx = offscreen.getContext('webgl');
113 t.step(function() {
114 // Verify that setting the size of an OffscreenCanvas that has a placeholder works.
115 offscreen.width = 30;
116 offscreen.height = 40;
117 assert_equals(offscreen.width, 30);
118 assert_equals(offscreen.height, 40);
119 var image = offscreen.transferToImageBitmap();
120 assert_equals(image.width, 30);
121 assert_equals(image.height, 40);
122 });
123 t.step(function() {
124 // Verify that setting the size of an OffscreenCanvas does not directly upda te the size of its placeholder canvas.
125 assert_equals(placeholder.width, 10);
126 assert_equals(placeholder.height, 20);
127 });
128 ctx.commit();
129 t.step(function() {
130 // Verify that commit() does not synchronously update the size of its placeh older canvas.
131 assert_equals(placeholder.width, 10);
132 assert_equals(placeholder.height, 20);
133 });
134 // Set timeout acts as a sync barrier to allow commit to propagate
135 setTimeout(function(){
136 t.step(function() {
137 // Verify that commit() asynchronously updates the size of its placeholder canvas.
138 assert_equals(placeholder.width, 30);
139 assert_equals(placeholder.height, 40);
140 });
141 createImageBitmap(placeholder).then(image => {
142 t.step(function() {
143 // Verify that an image grabbed from the placeholder has the correct dim ensions
144 assert_equals(image.width, 30);
145 assert_equals(image.height, 40);
146 });
147 t.done();
148 });
149 }, 0);
150 }, "Verify that resizing an OffscreenCanvas with a webgl context propagates the new size to its placeholder canvas asynchronously, upon commit.");
151
152 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698