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 <?xml version="1.0"?>
2 <?xml-stylesheet href="chrome://global/skin" type="text/css"?>
3 <?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
4 type="text/css"?>
6 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
7 title="Accessible XUL tree hierarchy tests">
9 <script type="application/javascript"
10 src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
12 <script type="application/javascript"
13 src="../treeview.js" />
15 <script type="application/javascript"
16 src="../common.js" />
17 <script type="application/javascript"
18 src="../role.js" />
19 <script type="application/javascript"
20 src="../events.js" />
22 <script type="application/javascript">
23 <![CDATA[
24 ////////////////////////////////////////////////////////////////////////////
25 // Accessible tree testers
27 function getTreeItemAccTree(aTableRole, acolumnCount)
28 {
29 var treeItemRole;
30 switch (aTableRole) {
31 case ROLE_LIST:
32 treeItemRole = ROLE_LISTITEM;
33 break;
34 case ROLE_OUTLINE:
35 treeItemRole = ROLE_OUTLINEITEM;
36 break;
37 case ROLE_TABLE: case ROLE_TREE_TABLE:
38 treeItemRole = ROLE_ROW;
39 break;
40 }
42 var accTree = {
43 role: treeItemRole,
44 children: []
45 };
47 if (aTableRole == ROLE_TABLE || aTableRole == ROLE_TREE_TABLE) {
48 for (var idx = 0; idx < acolumnCount; idx++) {
49 var cellAccTree = {
50 role: ROLE_GRID_CELL,
51 children: []
52 };
53 accTree.children.push(cellAccTree);
54 }
55 }
57 return accTree;
58 }
60 function testAccessibleTreeFor(aTree, aRole)
61 {
62 var accTreeForColumns = {
63 role: ROLE_LIST,
64 children: []
65 };
67 var accTreeForTree = {
68 role: aRole,
69 children: [
70 accTreeForColumns
71 ]
72 };
74 var treeBoxObject = aTree.treeBoxObject;
75 var view = treeBoxObject.view;
76 var columnCount = treeBoxObject.columns.count;
78 for (var idx = 0; idx < columnCount; idx++)
79 accTreeForColumns.children.push({ COLUMNHEADER: [ ] });
80 if (!aTree.hasAttribute("hidecolumnpicker"))
81 accTreeForColumns.children.push({ PUSHBUTTON: [ { MENUPOPUP: [] } ] });
83 for (var idx = 0; idx < view.rowCount; idx++)
84 accTreeForTree.children.push(getTreeItemAccTree(aRole, columnCount));
86 testAccessibleTree(aTree, accTreeForTree);
87 }
89 /**
90 * Event queue invoker object to test accessible tree for XUL tree element.
91 */
92 function treeChecker(aID, aView, aRole)
93 {
94 this.DOMNode = getNode(aID);
96 this.invoke = function invoke()
97 {
98 this.DOMNode.treeBoxObject.view = aView;
99 }
100 this.check = function check(aEvent)
101 {
102 testAccessibleTreeFor(this.DOMNode, aRole);
103 }
104 this.getID = function getID()
105 {
106 return "Tree testing of " + aID;
107 }
108 }
110 ////////////////////////////////////////////////////////////////////////////
111 // Test
113 // gA11yEventDumpID = "debug";
114 var gQueue = null;
116 function doTest()
117 {
118 var gQueue = new eventQueue(EVENT_REORDER);
120 gQueue.push(new treeChecker("list", new nsTableTreeView(3), ROLE_LIST));
121 gQueue.push(new treeChecker("tree", new nsTreeTreeView(), ROLE_OUTLINE));
122 gQueue.push(new treeChecker("table", new nsTableTreeView(3), ROLE_TABLE));
123 gQueue.push(new treeChecker("treetable", new nsTreeTreeView(), ROLE_TREE_TABLE));
125 gQueue.invoke(); // Will call SimpleTest.finish()
126 }
128 SimpleTest.waitForExplicitFinish();
129 addA11yLoadEvent(doTest);
130 ]]>
131 </script>
133 <hbox flex="1" style="overflow: auto;">
134 <body xmlns="http://www.w3.org/1999/xhtml">
135 <a target="_blank"
136 href="https://bugzilla.mozilla.org/show_bug.cgi?id=503727"
137 title="Reorganize implementation of XUL tree accessibility">
138 Mozilla Bug 503727
139 </a><br/>
140 <p id="display"></p>
141 <div id="content" style="display: none">
142 </div>
143 <pre id="test">
144 </pre>
145 </body>
147 <vbox flex="1">
148 <tree id="list" flex="1" hidecolumnpicker="true">
149 <treecols>
150 <treecol id="col" flex="1" hideheader="true"/>
151 </treecols>
152 <treechildren/>
153 </tree>
155 <tree id="tree" flex="1">
156 <treecols>
157 <treecol id="col" flex="1" primary="true" label="column"/>
158 </treecols>
159 <treechildren/>
160 </tree>
162 <tree id="table" flex="1">
163 <treecols>
164 <treecol id="col1" flex="1" label="column"/>
165 <treecol id="col2" flex="1" label="column 2"/>
166 </treecols>
167 <treechildren/>
168 </tree>
170 <tree id="treetable" flex="1">
171 <treecols>
172 <treecol id="col1" flex="1" primary="true" label="column"/>
173 <treecol id="col2" flex="1" label="column 2"/>
174 </treecols>
175 <treechildren/>
176 </tree>
178 <vbox id="debug"/>
179 </vbox>
180 </hbox>
182 </window>