Sat, 03 Jan 2015 20:18:00 +0100
Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.
1 /* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* vim: set shiftwidth=4 tabstop=4 autoindent cindent noexpandtab: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 /* testcase data for paced-mode animations of CSS properties */
9 // Lists of testcases for re-use across multiple properties of the same type
10 var _pacedTestLists =
11 {
12 color: [
13 new AnimTestcasePaced("rgb(2, 4, 6); " +
14 "rgb(4, 8, 12); " +
15 "rgb(8, 16, 24)",
16 { comp0: "rgb(2, 4, 6)",
17 comp1_6: "rgb(3, 6, 9)",
18 comp1_3: "rgb(4, 8, 12)",
19 comp2_3: "rgb(6, 12, 18)",
20 comp1: "rgb(8, 16, 24)"
21 }),
22 new AnimTestcasePaced("rgb(10, 10, 10); " +
23 "rgb(20, 10, 8); " +
24 "rgb(20, 30, 4)",
25 { comp0: "rgb(10, 10, 10)",
26 comp1_6: "rgb(15, 10, 9)",
27 comp1_3: "rgb(20, 10, 8)",
28 comp2_3: "rgb(20, 20, 6)",
29 comp1: "rgb(20, 30, 4)"
30 }),
31 new AnimTestcasePaced("olive; " + // rgb(128, 128, 0)
32 "currentColor; " + // rgb(50, 50, 50)
33 "rgb(206, 150, 206)",
34 { comp0: "rgb(128, 128, 0)",
35 comp1_6: "rgb(89, 89, 25)",
36 comp1_3: "rgb(50, 50, 50)",
37 comp2_3: "rgb(128, 100, 128)",
38 comp1: "rgb(206, 150, 206)"
39 }),
40 ],
41 paintServer : [
42 // Sanity check: These aren't interpolatable -- they should end up
43 // ignoring the calcMode="paced" and falling into discrete-mode.
44 new AnimTestcasePaced("url(#gradA); url(#gradB)",
45 {
46 comp0: "url(\"" + document.URL + "#gradA\") rgb(0, 0, 0)",
47 comp1_6: "url(\"" + document.URL + "#gradA\") rgb(0, 0, 0)",
48 comp1_3: "url(\"" + document.URL + "#gradA\") rgb(0, 0, 0)",
49 comp2_3: "url(\"" + document.URL + "#gradB\") rgb(0, 0, 0)",
50 comp1: "url(\"" + document.URL + "#gradB\") rgb(0, 0, 0)"
51 },
52 "need support for URI-based paints"),
53 new AnimTestcasePaced("url(#gradA); url(#gradB); url(#gradC)",
54 {
55 comp0: "url(\"" + document.URL + "#gradA\") rgb(0, 0, 0)",
56 comp1_6: "url(\"" + document.URL + "#gradA\") rgb(0, 0, 0)",
57 comp1_3: "url(\"" + document.URL + "#gradB\") rgb(0, 0, 0)",
58 comp2_3: "url(\"" + document.URL + "#gradC\") rgb(0, 0, 0)",
59 comp1: "url(\"" + document.URL + "#gradC\") rgb(0, 0, 0)"
60 },
61 "need support for URI-based paints"),
62 ],
63 lengthNoUnits : [
64 new AnimTestcasePaced("2; 0; 4",
65 { comp0: "2px",
66 comp1_6: "1px",
67 comp1_3: "0px",
68 comp2_3: "2px",
69 comp1: "4px"
70 }),
71 new AnimTestcasePaced("10; 12; 8",
72 { comp0: "10px",
73 comp1_6: "11px",
74 comp1_3: "12px",
75 comp2_3: "10px",
76 comp1: "8px"
77 }),
78 ],
79 lengthNoUnitsSVG : [
80 new AnimTestcasePaced("2; 0; 4",
81 { comp0: "2",
82 comp1_6: "1",
83 comp1_3: "0",
84 comp2_3: "2",
85 comp1: "4"
86 }),
87 new AnimTestcasePaced("10; 12; 8",
88 { comp0: "10",
89 comp1_6: "11",
90 comp1_3: "12",
91 comp2_3: "10",
92 comp1: "8"
93 }),
94 ],
95 lengthPx : [
96 new AnimTestcasePaced("0px; 2px; 6px",
97 { comp0: "0px",
98 comp1_6: "1px",
99 comp1_3: "2px",
100 comp2_3: "4px",
101 comp1: "6px"
102 }),
103 ],
104 lengthPx : [
105 new AnimTestcasePaced("0px; 2px; 6px",
106 { comp0: "0px",
107 comp1_6: "1px",
108 comp1_3: "2px",
109 comp2_3: "4px",
110 comp1: "6px"
111 }),
112 new AnimTestcasePaced("10px; 12px; 8px",
113 { comp0: "10px",
114 comp1_6: "11px",
115 comp1_3: "12px",
116 comp2_3: "10px",
117 comp1: "8px"
118 }),
119 ],
120 lengthPctSVG : [
121 new AnimTestcasePaced("5%; 6%; 4%",
122 { comp0: "5%",
123 comp1_6: "5.5%",
124 comp1_3: "6%",
125 comp2_3: "5%",
126 comp1: "4%"
127 }),
128 ],
129 lengthPxPctSVG : [
130 new AnimTestcasePaced("0px; 1%; 6px",
131 { comp0: "0px",
132 comp1_6: "1px",
133 comp1_3: "1%",
134 comp2_3: "4px",
135 comp1: "6px"
136 },
137 "need support for interpolating between " +
138 "px and percent values"),
139 ],
140 opacity : [
141 new AnimTestcasePaced("0; 0.2; 0.6",
142 { comp0: "0",
143 comp1_6: "0.1",
144 comp1_3: "0.2",
145 comp2_3: "0.4",
146 comp1: "0.6"
147 }),
148 new AnimTestcasePaced("0.7; 1.0; 0.4",
149 { comp0: "0.7",
150 comp1_6: "0.85",
151 comp1_3: "1",
152 comp2_3: "0.7",
153 comp1: "0.4"
154 }),
155 ],
156 rect : [
157 new AnimTestcasePaced("rect(2px, 4px, 6px, 8px); " +
158 "rect(4px, 8px, 12px, 16px); " +
159 "rect(8px, 16px, 24px, 32px)",
160 { comp0: "rect(2px, 4px, 6px, 8px)",
161 comp1_6: "rect(3px, 6px, 9px, 12px)",
162 comp1_3: "rect(4px, 8px, 12px, 16px)",
163 comp2_3: "rect(6px, 12px, 18px, 24px)",
164 comp1: "rect(8px, 16px, 24px, 32px)"
165 }),
166 new AnimTestcasePaced("rect(10px, 10px, 10px, 10px); " +
167 "rect(20px, 10px, 50px, 8px); " +
168 "rect(20px, 30px, 130px, 4px)",
169 { comp0: "rect(10px, 10px, 10px, 10px)",
170 comp1_6: "rect(15px, 10px, 30px, 9px)",
171 comp1_3: "rect(20px, 10px, 50px, 8px)",
172 comp2_3: "rect(20px, 20px, 90px, 6px)",
173 comp1: "rect(20px, 30px, 130px, 4px)"
174 }),
175 new AnimTestcasePaced("rect(10px, auto, 10px, 10px); " +
176 "rect(20px, auto, 50px, 8px); " +
177 "rect(40px, auto, 130px, 4px)",
178 { comp0: "rect(10px, auto, 10px, 10px)",
179 comp1_6: "rect(15px, auto, 30px, 9px)",
180 comp1_3: "rect(20px, auto, 50px, 8px)",
181 comp2_3: "rect(30px, auto, 90px, 6px)",
182 comp1: "rect(40px, auto, 130px, 4px)"
183 }),
184 // Paced-mode animation is not supported in these next few cases
185 // (Can't compute subcomponent distance between 'auto' & px-values)
186 new AnimTestcasePaced("rect(10px, 10px, 10px, auto); " +
187 "rect(20px, 10px, 50px, 8px); " +
188 "rect(20px, 30px, 130px, 4px)",
189 { comp0: "rect(10px, 10px, 10px, auto)",
190 comp1_6: "rect(10px, 10px, 10px, auto)",
191 comp1_3: "rect(20px, 10px, 50px, 8px)",
192 comp2_3: "rect(20px, 30px, 130px, 4px)",
193 comp1: "rect(20px, 30px, 130px, 4px)"
194 }),
195 new AnimTestcasePaced("rect(10px, 10px, 10px, 10px); " +
196 "rect(20px, 10px, 50px, 8px); " +
197 "auto",
198 { comp0: "rect(10px, 10px, 10px, 10px)",
199 comp1_6: "rect(10px, 10px, 10px, 10px)",
200 comp1_3: "rect(20px, 10px, 50px, 8px)",
201 comp2_3: "auto",
202 comp1: "auto"
203 }),
204 new AnimTestcasePaced("auto; " +
205 "auto; " +
206 "rect(20px, 30px, 130px, 4px)",
207 { comp0: "auto",
208 comp1_6: "auto",
209 comp1_3: "auto",
210 comp2_3: "rect(20px, 30px, 130px, 4px)",
211 comp1: "rect(20px, 30px, 130px, 4px)"
212 }),
213 new AnimTestcasePaced("auto; auto; auto",
214 { comp0: "auto",
215 comp1_6: "auto",
216 comp1_3: "auto",
217 comp2_3: "auto",
218 comp1: "auto"
219 }),
220 ],
221 };
223 // TODO: test more properties here.
224 var gPacedBundles =
225 [
226 new TestcaseBundle(gPropList.clip, _pacedTestLists.rect),
227 new TestcaseBundle(gPropList.color, _pacedTestLists.color),
228 new TestcaseBundle(gPropList.direction, [
229 new AnimTestcasePaced("rtl; ltr; rtl")
230 ]),
231 new TestcaseBundle(gPropList.fill,
232 [].concat(_pacedTestLists.color,
233 _pacedTestLists.paintServer)),
234 new TestcaseBundle(gPropList.font_size,
235 [].concat(_pacedTestLists.lengthNoUnits,
236 _pacedTestLists.lengthPx, [
237 new AnimTestcasePaced("20%; 24%; 16%",
238 { comp0: "10px",
239 comp1_6: "11px",
240 comp1_3: "12px",
241 comp2_3: "10px",
242 comp1: "8px"
243 }),
244 new AnimTestcasePaced("0px; 4%; 6px",
245 { comp0: "0px",
246 comp1_6: "1px",
247 comp1_3: "2px",
248 comp2_3: "4px",
249 comp1: "6px"
250 }),
251 ])
252 ),
253 new TestcaseBundle(gPropList.font_size_adjust, [
254 new AnimTestcasePaced("0.2; 0.6; 0.8",
255 { comp0: "0.2",
256 comp1_6: "0.3",
257 comp1_3: "0.4",
258 comp2_3: "0.6",
259 comp1: "0.8"
260 }),
261 new AnimTestcasePaced("none; none; 0.5",
262 { comp0: "none",
263 comp1_6: "none",
264 comp1_3: "none",
265 comp2_3: "0.5",
266 comp1: "0.5"
267 }),
268 ]),
269 new TestcaseBundle(gPropList.font_family, [
270 // Sanity check: 'font-family' isn't interpolatable. It should end up
271 // ignoring the calcMode="paced" and falling into discrete-mode.
272 new AnimTestcasePaced("serif; sans-serif; monospace",
273 { comp0: "serif",
274 comp1_6: "serif",
275 comp1_3: "sans-serif",
276 comp2_3: "monospace",
277 comp1: "monospace"
278 },
279 "need support for more font properties"),
280 ]),
281 new TestcaseBundle(gPropList.opacity, _pacedTestLists.opacity),
282 new TestcaseBundle(gPropList.stroke_dasharray,
283 [].concat(_pacedTestLists.lengthPctSVG, [
284 new AnimTestcasePaced("7, 7, 7; 7, 10, 3; 1, 2, 3",
285 { comp0: "7, 7, 7",
286 comp1_6: "7, 8.5, 5",
287 comp1_3: "7, 10, 3",
288 comp2_3: "4, 6, 3",
289 comp1: "1, 2, 3"
290 }),
291 ])),
292 new TestcaseBundle(gPropList.stroke_dashoffset,
293 [].concat(_pacedTestLists.lengthNoUnitsSVG,
294 _pacedTestLists.lengthPx,
295 _pacedTestLists.lengthPctSVG,
296 _pacedTestLists.lengthPxPctSVG)),
297 new TestcaseBundle(gPropList.stroke_width,
298 [].concat(_pacedTestLists.lengthNoUnitsSVG,
299 _pacedTestLists.lengthPx,
300 _pacedTestLists.lengthPctSVG,
301 _pacedTestLists.lengthPxPctSVG)),
302 // XXXdholbert TODO: test 'stroke-dasharray' once we support animating it
303 ];