Tue, 06 Jan 2015 21:39:09 +0100
Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.
1 <html>
2 <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=495388 -->
3 <head>
4 <title>test HTMLTableAccessible::IsProbablyForLayout implementation</title>
5 <link rel="stylesheet" type="text/css"
6 href="chrome://mochikit/content/tests/SimpleTest/test.css" />
8 <script type="application/javascript"
9 src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
11 <script type="application/javascript"
12 src="../common.js"></script>
13 <script type="application/javascript"
14 src="../attributes.js"></script>
16 <script type="application/javascript">
17 function doTest()
18 {
19 // Attribute we're looking for
20 var attr = {
21 "layout-guess": "true"
22 };
24 // table with role of grid
25 testAbsentAttrs("table1", attr);
26 // table with role of grid and datatable="0"
27 testAbsentAttrs("table1.1", attr);
29 // table with landmark role
30 testAbsentAttrs("table2", attr);
32 // table with summary
33 testAbsentAttrs("table3", attr);
35 // table with caption
36 testAbsentAttrs("table4", attr);
38 // layout table with empty caption
39 testAttrs("table4.2", attr, true);
41 // table with thead element
42 testAbsentAttrs("table5", attr);
44 // table with tfoot element
45 testAbsentAttrs("table5.1", attr);
47 // table with colgroup or col elements
48 testAbsentAttrs("table5.2", attr);
49 testAbsentAttrs("table5.3", attr);
51 // table with th element
52 testAbsentAttrs("table6", attr);
54 // table with headers attribute
55 testAbsentAttrs("table6.2", attr);
57 // table with scope attribute
58 testAbsentAttrs("table6.2.2", attr);
60 // table with abbr attribute
61 testAbsentAttrs("table6.2.3", attr);
63 // table with abbr element
64 testAbsentAttrs("table6.3", attr);
66 // table with abbr element having empty text node
67 testAbsentAttrs("table6.4", attr);
69 // table with abbr element and non-empty text node
70 testAttrs("table6.5", attr, true);
72 // layout table with nested table
73 testAttrs("table9", attr, true);
75 // layout table with 1 column
76 testAttrs("table10", attr, true);
78 // layout table with 1 row
79 testAttrs("table11", attr, true);
81 // table with 5 columns
82 testAbsentAttrs("table12", attr);
84 // table with a bordered cell
85 testAbsentAttrs("table13", attr);
87 // table with alternating row background colors
88 testAbsentAttrs("table14", attr);
90 // table with 3 columns and 21 rows
91 testAbsentAttrs("table15", attr);
93 // layout table that has a 100% width
94 testAttrs("table16", attr, true);
96 // layout table that has a 95% width in pixels
97 testAttrs("table17", attr, true);
99 // layout table with less than 10 columns
100 testAttrs("table18", attr, true);
102 // layout table with embedded iframe
103 testAttrs("table19", attr, true);
105 // tree grid, no layout table
106 testAbsentAttrs("table20", attr);
108 // layout table containing nested data table (having data structures)
109 testAttrs("table21", attr, true);
110 testAttrs("table21.2", attr, true);
111 testAttrs("table21.3", attr, true);
112 testAttrs("table21.4", attr, true);
113 testAttrs("table21.5", attr, true);
114 testAttrs("table21.6", attr, true);
116 // layout table having datatable="0" attribute and containing data table structure (tfoot element)
117 testAttrs("table22", attr, true);
119 // css table with non-table tag
120 testAttrs("table23", attr, true);
122 SimpleTest.finish();
123 }
125 SimpleTest.waitForExplicitFinish();
126 addA11yLoadEvent(doTest);
127 </script>
128 </head>
129 <body>
131 <a target="_blank"
132 href="https://bugzilla.mozilla.org/show_bug.cgi?id=495388"
133 title="Don't treat tables that have a landmark role as layout table">
134 Mozilla Bug 495388
135 </a>
136 <a target="_blank"
137 href="https://bugzilla.mozilla.org/show_bug.cgi?id=690222"
138 title="Data table elements used to determine layout-guess attribute shouldn't be picked from nested tables">
139 Mozilla Bug 690222
140 </a>
141 <a target="_blank"
142 href="https://bugzilla.mozilla.org/show_bug.cgi?id=693948"
143 title="Expose layout-guess: true object attribute on CSS table accessible">
144 Mozilla Bug 693948
145 </a>
146 <a target="_blank"
147 href="https://bugzilla.mozilla.org/show_bug.cgi?id=696975"
148 title="Extend the list of legitimate data table structures">
149 Mozilla Bug 696975
150 </a>
152 <p id="display"></p>
153 <div id="content" style="display: none"></div>
154 <pre id="test">
155 </pre>
157 <!-- Table with role of grid -->
158 <table id="table1" role="grid">
159 <tr>
160 <th>Sender</th>
161 <th>Subject</th>
162 <th>Date</th>
163 </tr>
164 <tr>
165 <td>Marco</td>
166 <td>Test</td>
167 <td>June 12</td>
168 </tr>
169 <tr>
170 <td>David</td>
171 <td>Another test</td>
172 <td>June 12</td>
173 </tr>
174 <tr>
175 <td>Alex</td>
176 <td>Third test</td>
177 <td>June 12</td>
178 </tr>
179 </table>
180 <!-- table with role of grid and datatable="0"-->
181 <table id="table1.1" role="grid" datatable="0">
182 <tr>
183 <td>Cell1</td><td>cell2</td>
184 </tr>
185 </table>
187 <!-- table with landmark role -->
188 <table id="table2" role="main">
189 <tr>
190 <th>Sender</th>
191 <th>Subject</th>
192 <th>Date</th>
193 </tr>
194 <tr>
195 <td>Marco</td>
196 <td>Test</td>
197 <td>June 12</td>
198 </tr>
199 <tr>
200 <td>David</td>
201 <td>Another test</td>
202 <td>June 12</td>
203 </tr>
204 <tr>
205 <td>Alex</td>
206 <td>Third test</td>
207 <td>June 12</td>
208 </tr>
209 </table>
211 <!-- table with summary -->
212 <table id="table3" summary="This is a table">
213 <tr>
214 <td>Cell1</td><td>cell2</td>
215 </tr>
216 </table>
218 <!-- table with caption -->
219 <table id="table4">
220 <caption>This is a table</caption>
221 <tr>
222 <td>Cell1</td><td>cell2</td>
223 </tr>
224 </table>
226 <!-- layout table with empty caption -->
227 <table id="table4.2">
228 <caption> </caption>
229 <tr>
230 <td>Cell1</td><td>cell2</td>
231 </tr>
232 </table>
234 <!-- table with thead element -->
235 <table id="table5">
236 <thead>
237 <tr>
238 <td>Cell1</td><td>cell2</td>
239 </tr>
240 </thead>
241 </table>
243 <!-- table with tfoot element -->
244 <table id="table5.1">
245 <tfoot>
246 <tr>
247 <td>Cell1</td><td>cell2</td>
248 </tr>
249 </tfoot>
250 </table>
252 <!-- table with colgroup and col elements -->
253 <table id="table5.2">
254 <colgroup width="20"></colgroup>
255 <tr>
256 <td>Cell1</td><td>cell2</td>
257 </tr>
258 </table>
259 <table id="table5.3">
260 <col width="20">
261 <tr>
262 <td>Cell1</td><td>cell2</td>
263 </tr>
264 </table>
266 <!-- table with th element -->
267 <table id="table6">
268 <tr>
269 <th>Cell1</th><th>cell2</th>
270 </tr>
271 </table>
273 <!-- table with headers attribute -->
274 <table id="table6.2">
275 <tr>
276 <td headers="a">table6.2 cell</td>
277 </tr>
278 </table>
280 <!-- table with scope attribute -->
281 <table id="table6.2.2">
282 <tr>
283 <td scope="a">table6.2.2 cell</td>
284 </tr>
285 </table>
287 <!-- table with abbr attribute -->
288 <table id="table6.2.3">
289 <tr>
290 <td abbr="table6.2.3">table6.2.3 cell1</td>
291 </tr>
292 </table>
294 <!-- table with abbr element -->
295 <table id="table6.3">
296 <tr>
297 <td>table6.3 cell1</td>
298 <td><abbr>table6.3 cell2</abbr></td>
299 </tr>
300 </table>
302 <!-- table with abbr element having empty text node -->
303 <table id="table6.4">
304 <tr>
305 <td>
306 <abbr>abbr</abbr>
307 </td>
308 </tr>
309 </table>
311 <!-- table with abbr element and non-empty text node -->
312 <table id="table6.5">
313 <tr>
314 <td>
315 This is a really long text (<abbr>tiarlt</abbr>) inside layout table
316 </td>
317 </tr>
318 </table>
320 <!-- layout table with nested table -->
321 <table id="table9">
322 <tr>
323 <td><table><tr><td>Cell</td></tr></table></td>
324 </tr>
325 </table>
327 <!-- layout table with 1 column -->
328 <table id="table10">
329 <tr><td>Row1</td></tr>
330 <tr><td>Row2</td></tr>
331 </table>
333 <!-- layout table with 1 row and purposely many columns -->
334 <table id="table11">
335 <tr><td>Col1</td><td>Col2</td><td>Col3</td><td>Col4</td><td>Col5</td></tr>
336 </table>
338 <!-- table with 5 columns -->
339 <table id="table12">
340 <tr><td>Col1</td><td>Col2</td><td>Col3</td><td>Col4</td><td>Col5</td></tr>
341 <tr><td>Col1</td><td>Col2</td><td>Col3</td><td>Col4</td><td>Col5</td></tr>
342 </table>
344 <!-- table with a bordered cell -->
345 <table id="table13" border="1" width="100%" bordercolor="#0000FF">
346 <tr>
347 <td bordercolor="#000000"> </td>
348 <td bordercolor="#000000"> </td>
349 <td bordercolor="#000000"> </td>
350 </tr>
351 <tr>
352 <td bordercolor="#000000"> </td>
353 <td bordercolor="#000000"> </td>
354 <td bordercolor="#000000"> </td>
355 </tr>
356 </table>
358 <!-- table with alternating row background colors -->
359 <table id="table14" width="100%">
360 <tr style="background-color: #0000FF;">
361 <td> </td>
362 <td> </td>
363 <td> </td>
364 </tr>
365 <tr style="background-color: #00FF00;">
366 <td> </td>
367 <td> </td>
368 <td> </td>
369 </tr>
370 </table>
372 <!-- table with 3 columns and 21 rows -->
373 <table id="table15" border="0">
374 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
375 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
376 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
377 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
378 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
379 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
380 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
381 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
382 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
383 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
384 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
385 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
386 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
387 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
388 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
389 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
390 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
391 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
392 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
393 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
394 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
395 </table>
397 <!-- layout table that has a 100% width -->
398 <table id="table16" width="100%">
399 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
400 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
401 </table>
403 <!-- layout table that has a 95% width in pixels -->
404 <table id="table17" width="98%">
405 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
406 <tr><td>Col1</td><td>Col2</td><td>Col3</td></tr>
407 </table>
409 <!-- layout table with less than 10 columns -->
410 <table id="table18">
411 <tr>
412 <td>Marco</td>
413 <td>Test</td>
414 <td>June 12</td>
415 </tr>
416 <tr>
417 <td>David</td>
418 <td>Another test</td>
419 <td>June 12</td>
420 </tr>
421 <tr>
422 <td>Alex</td>
423 <td>Third test</td>
424 <td>June 12</td>
425 </tr>
426 </table>
428 <!-- layout table with embedded iframe -->
429 <table id="table19">
430 <tr><td><iframe id="frame"></iframe></td><td> </td><td> </td></tr>
431 <tr><td> </td><td> </td><td> </td></tr>
432 <tr><td> </td><td> </td><td> </td></tr>
433 <tr><td> </td><td> </td><td> </td></tr>
434 </table>
436 <!-- tree grid, no layout table -->
437 <table id="table20" role="treegrid">
438 <tr role="treeitem"><td>Cell1</td><td>Cell2</td></tr>
439 </table>
441 <!-- layout table with nested data table containing data table elements -->
442 <table id="table21">
443 <tr>
444 <td>
445 <table>
446 <caption>table</caption>
447 <tr><td>Cell</td></tr>
448 </table>
449 </td>
450 </tr>
451 </table>
452 <table id="table21.2">
453 <tr>
454 <td>
455 <table>
456 <colgroup width="20"></colgroup>
457 <tr><th>Cell</th></tr>
458 </table>
459 </td>
460 </tr>
461 </table>
462 <table id="table21.3">
463 <tr>
464 <td>
465 <table>
466 <col width="20"></col>
467 <tr><th>Cell</th></tr>
468 </table>
469 </td>
470 </tr>
471 </table>
472 <table id="table21.4">
473 <tr>
474 <td>
475 <table>
476 <tr><th>Cell</th></tr>
477 </table>
478 </td>
479 </tr>
480 </table>
481 <table id="table21.5">
482 <tr>
483 <td>
484 <table>
485 <thead>
486 <tr><td>Cell</td></tr>
487 </thead>
488 </table>
489 </td>
490 </tr>
491 </table>
492 <table id="table21.6">
493 <tr>
494 <td>
495 <table>
496 <tfoot>
497 <tr><td>Cell</td></tr>
498 </tfoot>
499 </table>
500 </td>
501 </tr>
502 </table>
504 <!-- layout table with datatable="0" and tfoot element-->
505 <table id="table22" datatable="0">
506 <tfoot>
507 <tr>
508 <td>Cell1</td><td>cell2</td>
509 </tr>
510 </tfoot>
511 </table>
513 <!-- css table with noon-table tag -->
514 <div id="table23" style="display:table;">
515 <div style="display:table-row;">
516 <div style="display:table-cell;">Row 1, column 1</div>
517 <div style="display:table-cell;">Row 1, column 2</div>
518 <div style="display:table-cell;">Row 1, column 3</div>
519 </div>
520 </div>
521 </body>
522 </html>