- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / test / ppapi / ppapi_browsertest.cc
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/test/ppapi/ppapi_test.h"
6
7 #include "base/test/test_timeouts.h"
8 #include "build/build_config.h"
9 #include "chrome/browser/content_settings/host_content_settings_map.h"
10 #include "chrome/browser/profiles/profile.h"
11 #include "chrome/browser/ui/browser.h"
12 #include "chrome/browser/ui/browser_navigator.h"
13 #include "chrome/browser/ui/tabs/tab_strip_model.h"
14 #include "chrome/test/base/javascript_test_observer.h"
15 #include "chrome/test/base/ui_test_utils.h"
16 #include "content/public/browser/web_contents.h"
17 #include "content/public/common/url_constants.h"
18 #include "content/public/test/test_renderer_host.h"
19
20 using content::RenderViewHost;
21
22 // This macro finesses macro expansion to do what we want.
23 #define STRIP_PREFIXES(test_name) StripPrefixes(#test_name)
24 // Turn the given token into a string. This allows us to use precompiler stuff
25 // to turn names into DISABLED_Foo, but still pass a string to RunTest.
26 #define STRINGIFY(test_name) #test_name
27 #define LIST_TEST(test_name) STRINGIFY(test_name) ","
28
29 // Use these macros to run the tests for a specific interface.
30 // Most interfaces should be tested with both macros.
31 #define TEST_PPAPI_IN_PROCESS(test_name) \
32     IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \
33       RunTest(STRIP_PREFIXES(test_name)); \
34     }
35 #define TEST_PPAPI_OUT_OF_PROCESS(test_name) \
36     IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, test_name) { \
37       RunTest(STRIP_PREFIXES(test_name)); \
38     }
39
40 // Similar macros that test over HTTP.
41 #define TEST_PPAPI_IN_PROCESS_VIA_HTTP(test_name) \
42     IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \
43       RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
44     }
45 #define TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(test_name) \
46     IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, test_name) { \
47       RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
48     }
49
50 // Similar macros that test with an SSL server.
51 #define TEST_PPAPI_IN_PROCESS_WITH_SSL_SERVER(test_name) \
52     IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \
53       RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
54     }
55 #define TEST_PPAPI_OUT_OF_PROCESS_WITH_SSL_SERVER(test_name) \
56     IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, test_name) { \
57       RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
58     }
59
60 #if defined(DISABLE_NACL)
61 #define TEST_PPAPI_NACL(test_name)
62 #define TEST_PPAPI_NACL_DISALLOWED_SOCKETS(test_name)
63 #define TEST_PPAPI_NACL_WITH_SSL_SERVER(test_name)
64
65 #elif defined(ARCH_CPU_ARM_FAMILY)
66 // NaCl glibc tests are not included in ARM as there is no glibc support
67 // on ARM today.
68 #define TEST_PPAPI_NACL(test_name) \
69     IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \
70       RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
71     } \
72     IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, test_name) { \
73       RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
74     }
75
76 #define TEST_PPAPI_NACL_DISALLOWED_SOCKETS(test_name) \
77     IN_PROC_BROWSER_TEST_F(PPAPINaClTestDisallowedSockets, test_name) { \
78       RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
79     }
80
81 #define TEST_PPAPI_NACL_WITH_SSL_SERVER(test_name) \
82     IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \
83       RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
84     } \
85     IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, test_name) { \
86       RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
87     }
88
89 #else
90
91 // NaCl based PPAPI tests
92 #define TEST_PPAPI_NACL(test_name) \
93     IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \
94       RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
95     } \
96     IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, test_name) { \
97       RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
98     } \
99     IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, test_name) { \
100       RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
101     }
102
103 // NaCl based PPAPI tests with disallowed socket API
104 #define TEST_PPAPI_NACL_DISALLOWED_SOCKETS(test_name) \
105     IN_PROC_BROWSER_TEST_F(PPAPINaClTestDisallowedSockets, test_name) { \
106       RunTestViaHTTP(STRIP_PREFIXES(test_name)); \
107     }
108
109 // NaCl based PPAPI tests with SSL server
110 #define TEST_PPAPI_NACL_WITH_SSL_SERVER(test_name) \
111     IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \
112       RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
113     } \
114     IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, test_name) { \
115       RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
116     } \
117     IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, test_name) { \
118       RunTestWithSSLServer(STRIP_PREFIXES(test_name)); \
119     }
120
121 #endif
122
123
124 // NaCl glibc tests are not included in ARM as there is no glibc support
125 // on ARM today.
126 #if defined(ARCH_CPU_ARM_FAMILY)
127 #define MAYBE_GLIBC(test_name) DISABLED_##test_name
128 #else
129 #define MAYBE_GLIBC(test_name) test_name
130 #endif
131
132
133 //
134 // Interface tests.
135 //
136
137 TEST_PPAPI_IN_PROCESS(Broker)
138 // Flaky, http://crbug.com/111355
139 TEST_PPAPI_OUT_OF_PROCESS(DISABLED_Broker)
140
141 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Accept) {
142   // Accepting the infobar should grant permission to access the PPAPI broker.
143   InfoBarObserver observer;
144   observer.ExpectInfoBarAndAccept(true);
145
146   // PPB_Broker_Trusted::IsAllowed should return false before the infobar is
147   // popped and true after the infobar is popped.
148   RunTest("Broker_IsAllowedPermissionDenied");
149   RunTest("Broker_ConnectPermissionGranted");
150   RunTest("Broker_IsAllowedPermissionGranted");
151
152   // It should also set a content settings exception for the site.
153   GURL url = GetTestFileUrl("Broker_ConnectPermissionGranted");
154   HostContentSettingsMap* content_settings =
155       browser()->profile()->GetHostContentSettingsMap();
156   EXPECT_EQ(CONTENT_SETTING_ALLOW,
157             content_settings->GetContentSetting(
158                 url, url, CONTENT_SETTINGS_TYPE_PPAPI_BROKER, std::string()));
159 }
160
161 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Deny) {
162   // Canceling the infobar should deny permission to access the PPAPI broker.
163   InfoBarObserver observer;
164   observer.ExpectInfoBarAndAccept(false);
165
166   // PPB_Broker_Trusted::IsAllowed should return false before and after the
167   // infobar is popped.
168   RunTest("Broker_IsAllowedPermissionDenied");
169   RunTest("Broker_ConnectPermissionDenied");
170   RunTest("Broker_IsAllowedPermissionDenied");
171
172   // It should also set a content settings exception for the site.
173   GURL url = GetTestFileUrl("Broker_ConnectPermissionDenied");
174   HostContentSettingsMap* content_settings =
175       browser()->profile()->GetHostContentSettingsMap();
176   EXPECT_EQ(CONTENT_SETTING_BLOCK,
177             content_settings->GetContentSetting(
178                 url, url, CONTENT_SETTINGS_TYPE_PPAPI_BROKER, std::string()));
179 }
180
181 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Blocked) {
182   // Block access to the PPAPI broker.
183   browser()->profile()->GetHostContentSettingsMap()->SetDefaultContentSetting(
184       CONTENT_SETTINGS_TYPE_PPAPI_BROKER, CONTENT_SETTING_BLOCK);
185
186   // We shouldn't see an infobar.
187   InfoBarObserver observer;
188
189   RunTest("Broker_ConnectPermissionDenied");
190   RunTest("Broker_IsAllowedPermissionDenied");
191 }
192
193 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Allowed) {
194   // Always allow access to the PPAPI broker.
195   browser()->profile()->GetHostContentSettingsMap()->SetDefaultContentSetting(
196       CONTENT_SETTINGS_TYPE_PPAPI_BROKER, CONTENT_SETTING_ALLOW);
197
198   // We shouldn't see an infobar.
199   InfoBarObserver observer;
200
201   RunTest("Broker_ConnectPermissionGranted");
202   RunTest("Broker_IsAllowedPermissionGranted");
203 }
204
205 TEST_PPAPI_IN_PROCESS(Console)
206 TEST_PPAPI_OUT_OF_PROCESS(Console)
207 TEST_PPAPI_NACL(Console)
208
209 TEST_PPAPI_IN_PROCESS(Core)
210 TEST_PPAPI_OUT_OF_PROCESS(Core)
211 TEST_PPAPI_NACL(Core)
212
213 TEST_PPAPI_IN_PROCESS(TraceEvent)
214 TEST_PPAPI_OUT_OF_PROCESS(TraceEvent)
215 TEST_PPAPI_NACL(TraceEvent)
216
217 TEST_PPAPI_IN_PROCESS(InputEvent)
218 TEST_PPAPI_OUT_OF_PROCESS(InputEvent)
219 TEST_PPAPI_NACL(InputEvent)
220
221 // Flaky on Linux and Windows. http://crbug.com/135403
222 #if defined(OS_LINUX) || defined(OS_WIN)
223 #define MAYBE_ImeInputEvent DISABLED_ImeInputEvent
224 #else
225 #define MAYBE_ImeInputEvent ImeInputEvent
226 #endif
227
228 TEST_PPAPI_IN_PROCESS(MAYBE_ImeInputEvent)
229 TEST_PPAPI_OUT_OF_PROCESS(MAYBE_ImeInputEvent)
230 TEST_PPAPI_NACL(MAYBE_ImeInputEvent)
231
232 // "Instance" tests are really InstancePrivate tests. InstancePrivate is not
233 // supported in NaCl, so these tests are only run trusted.
234 // Also note that these tests are run separately on purpose (versus collapsed
235 // in to one IN_PROC_BROWSER_TEST_F macro), because some of them have leaks
236 // on purpose that will look like failures to tests that are run later.
237 TEST_PPAPI_IN_PROCESS(Instance_ExecuteScript);
238 TEST_PPAPI_OUT_OF_PROCESS(Instance_ExecuteScript)
239
240 // We run and reload the RecursiveObjects test to ensure that the InstanceObject
241 // (and others) are properly cleaned up after the first run.
242 IN_PROC_BROWSER_TEST_F(PPAPITest, Instance_RecursiveObjects) {
243   RunTestAndReload("Instance_RecursiveObjects");
244 }
245 // TODO(dmichael): Make it work out-of-process (or at least see whether we
246 //                 care).
247 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,
248                        DISABLED_Instance_RecursiveObjects) {
249   RunTestAndReload("Instance_RecursiveObjects");
250 }
251 TEST_PPAPI_IN_PROCESS(Instance_LeakedObjectDestructors);
252 TEST_PPAPI_OUT_OF_PROCESS(Instance_LeakedObjectDestructors);
253
254 IN_PROC_BROWSER_TEST_F(PPAPITest,
255                        Instance_ExecuteScriptAtInstanceShutdown) {
256   // In other tests, we use one call to RunTest so that the tests can all run
257   // in one plugin instance. This saves time on loading the plugin (especially
258   // for NaCl). Here, we actually want to destroy the Instance, to test whether
259   // the destructor can run ExecuteScript successfully. That's why we have two
260   // separate calls to RunTest; the second one forces a navigation which
261   // destroys the instance from the prior RunTest.
262   // See test_instance_deprecated.cc for more information.
263   RunTest("Instance_SetupExecuteScriptAtInstanceShutdown");
264   RunTest("Instance_ExecuteScriptAtInstanceShutdown");
265 }
266 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest,
267                        Instance_ExecuteScriptAtInstanceShutdown) {
268   // (See the comment for the in-process version of this test above)
269   RunTest("Instance_SetupExecuteScriptAtInstanceShutdown");
270   RunTest("Instance_ExecuteScriptAtInstanceShutdown");
271 }
272
273 TEST_PPAPI_IN_PROCESS(Graphics2D)
274 TEST_PPAPI_OUT_OF_PROCESS(Graphics2D)
275 // Graphics2D_Dev isn't supported in NaCl, only test the other interfaces
276 // TODO(jhorwich) Enable when Graphics2D_Dev interfaces are proxied in NaCl.
277 TEST_PPAPI_NACL(Graphics2D_InvalidResource)
278 TEST_PPAPI_NACL(Graphics2D_InvalidSize)
279 TEST_PPAPI_NACL(Graphics2D_Humongous)
280 TEST_PPAPI_NACL(Graphics2D_InitToZero)
281 TEST_PPAPI_NACL(Graphics2D_Describe)
282 TEST_PPAPI_NACL(Graphics2D_Paint)
283 TEST_PPAPI_NACL(Graphics2D_Scroll)
284 TEST_PPAPI_NACL(Graphics2D_Replace)
285 TEST_PPAPI_NACL(Graphics2D_Flush)
286 TEST_PPAPI_NACL(Graphics2D_FlushOffscreenUpdate)
287 TEST_PPAPI_NACL(Graphics2D_BindNull)
288
289 #if defined(OS_WIN)
290 #if defined(USE_AURA)
291 // These tests fail with the test compositor which is what's used by default for
292 // browser tests on Windows Aura. Renable when the software compositor is
293 // available.
294 #define MAYBE_IN_Graphics3D DISABLED_Graphics3D
295 #define MAYBE_OUT_Graphics3D DISABLED_Graphics3D
296 #define MAYBE_NACL_Graphics3D DISABLED_Graphics3D
297 #else  // defined(USE_AURA)
298 // In-process and NaCl tests are having flaky failures on Win: crbug.com/242252
299 #define MAYBE_IN_Graphics3D DISABLED_Graphics3D
300 #define MAYBE_OUT_Graphics3D Graphics3D
301 #define MAYBE_NACL_Graphics3D DISABLED_Graphics3D
302 #endif  // defined(USE_AURA)
303 #else
304 // The tests are failing in-process. crbug.com/280282
305 #define MAYBE_IN_Graphics3D DISABLED_Graphics3D
306 #define MAYBE_OUT_Graphics3D Graphics3D
307 #define MAYBE_NACL_Graphics3D Graphics3D
308 #endif
309 TEST_PPAPI_IN_PROCESS(MAYBE_IN_Graphics3D)
310 TEST_PPAPI_OUT_OF_PROCESS(MAYBE_OUT_Graphics3D)
311 TEST_PPAPI_NACL(MAYBE_NACL_Graphics3D)
312
313 TEST_PPAPI_IN_PROCESS(ImageData)
314 TEST_PPAPI_OUT_OF_PROCESS(ImageData)
315 TEST_PPAPI_NACL(ImageData)
316
317 TEST_PPAPI_IN_PROCESS(BrowserFont)
318 // crbug.com/308949
319 #if defined(OS_WIN)
320 #define MAYBE_OUT_BrowserFont DISABLED_BrowserFont
321 #else
322 #define MAYBE_OUT_BrowserFont BrowserFont
323 #endif
324 TEST_PPAPI_OUT_OF_PROCESS(MAYBE_OUT_BrowserFont)
325
326 TEST_PPAPI_IN_PROCESS(Buffer)
327 TEST_PPAPI_OUT_OF_PROCESS(Buffer)
328
329 // TCPSocket tests.
330 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, TCPSocket) {
331   RunTestViaHTTP(
332       LIST_TEST(TCPSocket_Connect)
333       LIST_TEST(TCPSocket_ReadWrite)
334       LIST_TEST(TCPSocket_SetOption)
335       LIST_TEST(TCPSocket_Listen)
336       LIST_TEST(TCPSocket_Backlog)
337       LIST_TEST(TCPSocket_Interface_1_0)
338   );
339 }
340 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, TCPSocket) {
341   RunTestViaHTTP(
342       LIST_TEST(TCPSocket_Connect)
343       LIST_TEST(TCPSocket_ReadWrite)
344       LIST_TEST(TCPSocket_SetOption)
345       LIST_TEST(TCPSocket_Listen)
346       LIST_TEST(TCPSocket_Backlog)
347       LIST_TEST(TCPSocket_Interface_1_0)
348   );
349 }
350 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(TCPSocket)) {
351   RunTestViaHTTP(
352       LIST_TEST(TCPSocket_Connect)
353       LIST_TEST(TCPSocket_ReadWrite)
354       LIST_TEST(TCPSocket_SetOption)
355       LIST_TEST(TCPSocket_Listen)
356       LIST_TEST(TCPSocket_Backlog)
357       LIST_TEST(TCPSocket_Interface_1_0)
358   );
359 }
360 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, TCPSocket) {
361   RunTestViaHTTP(
362       LIST_TEST(TCPSocket_Connect)
363       LIST_TEST(TCPSocket_ReadWrite)
364       LIST_TEST(TCPSocket_SetOption)
365       LIST_TEST(TCPSocket_Listen)
366       LIST_TEST(TCPSocket_Backlog)
367       LIST_TEST(TCPSocket_Interface_1_0)
368   );
369 }
370
371 TEST_PPAPI_OUT_OF_PROCESS_WITH_SSL_SERVER(TCPSocketPrivate)
372 TEST_PPAPI_NACL_WITH_SSL_SERVER(TCPSocketPrivate)
373
374 TEST_PPAPI_OUT_OF_PROCESS_WITH_SSL_SERVER(TCPSocketPrivateTrusted)
375
376 // UDPSocket tests.
377 // UDPSocket_Broadcast is disabled for OSX because it requires root permissions
378 // on OSX 10.7+.
379 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, UDPSocket) {
380   RunTestViaHTTP(
381       LIST_TEST(UDPSocket_ReadWrite)
382       LIST_TEST(UDPSocket_SetOption)
383 #if !defined(OS_MACOSX)
384       LIST_TEST(UDPSocket_Broadcast)
385 #endif
386   );
387 }
388 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, UDPSocket) {
389   RunTestViaHTTP(
390       LIST_TEST(UDPSocket_ReadWrite)
391       LIST_TEST(UDPSocket_SetOption)
392 #if !defined(OS_MACOSX)
393       LIST_TEST(UDPSocket_Broadcast)
394 #endif
395   );
396 }
397 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(UDPSocket)) {
398   RunTestViaHTTP(
399       LIST_TEST(UDPSocket_ReadWrite)
400       LIST_TEST(UDPSocket_SetOption)
401 #if !defined(OS_MACOSX)
402       LIST_TEST(UDPSocket_Broadcast)
403 #endif
404   );
405 }
406 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, UDPSocket) {
407   RunTestViaHTTP(
408       LIST_TEST(UDPSocket_ReadWrite)
409       LIST_TEST(UDPSocket_SetOption)
410 #if !defined(OS_MACOSX)
411       LIST_TEST(UDPSocket_Broadcast)
412 #endif
413   );
414 }
415
416 // UDPSocketPrivate tests.
417 // UDPSocketPrivate_Broadcast is disabled for OSX because it requires
418 // root permissions on OSX 10.7+.
419 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate_Connect)
420 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate_ConnectFailure)
421 #if !defined(OS_MACOSX)
422 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate_Broadcast)
423 #endif  // !defined(OS_MACOSX)
424 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(UDPSocketPrivate_SetSocketFeatureErrors)
425 TEST_PPAPI_NACL(UDPSocketPrivate_Connect)
426 TEST_PPAPI_NACL(UDPSocketPrivate_ConnectFailure)
427 #if !defined(OS_MACOSX)
428 TEST_PPAPI_NACL(UDPSocketPrivate_Broadcast)
429 #endif  // !defined(OS_MACOSX)
430 TEST_PPAPI_NACL(UDPSocketPrivate_SetSocketFeatureErrors)
431
432 TEST_PPAPI_NACL_DISALLOWED_SOCKETS(HostResolverPrivateDisallowed)
433 TEST_PPAPI_NACL_DISALLOWED_SOCKETS(TCPServerSocketPrivateDisallowed)
434 TEST_PPAPI_NACL_DISALLOWED_SOCKETS(TCPSocketPrivateDisallowed)
435 TEST_PPAPI_NACL_DISALLOWED_SOCKETS(UDPSocketPrivateDisallowed)
436
437 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(TCPServerSocketPrivate)
438 TEST_PPAPI_NACL(TCPServerSocketPrivate)
439
440 // HostResolver tests.
441 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, HostResolver) {
442   RunTestViaHTTP(
443       LIST_TEST(HostResolver_Empty)
444       LIST_TEST(HostResolver_Resolve)
445       LIST_TEST(HostResolver_ResolveIPv4)
446   );
447 }
448 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, HostResolver) {
449   RunTestViaHTTP(
450       LIST_TEST(HostResolver_Empty)
451       LIST_TEST(HostResolver_Resolve)
452       LIST_TEST(HostResolver_ResolveIPv4)
453   );
454 }
455 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(HostResolver)) {
456   RunTestViaHTTP(
457       LIST_TEST(HostResolver_Empty)
458       LIST_TEST(HostResolver_Resolve)
459       LIST_TEST(HostResolver_ResolveIPv4)
460   );
461 }
462 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, HostResolver) {
463   RunTestViaHTTP(
464       LIST_TEST(HostResolver_Empty)
465       LIST_TEST(HostResolver_Resolve)
466       LIST_TEST(HostResolver_ResolveIPv4)
467   );
468 }
469
470 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(HostResolverPrivate_Resolve)
471 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(HostResolverPrivate_ResolveIPv4)
472 TEST_PPAPI_NACL(HostResolverPrivate_Resolve)
473 TEST_PPAPI_NACL(HostResolverPrivate_ResolveIPv4)
474
475 // URLLoader tests.
476 IN_PROC_BROWSER_TEST_F(PPAPITest, URLLoader) {
477   RunTestViaHTTP(
478       LIST_TEST(URLLoader_BasicGET)
479       LIST_TEST(URLLoader_BasicPOST)
480       LIST_TEST(URLLoader_BasicFilePOST)
481       LIST_TEST(URLLoader_BasicFileRangePOST)
482       LIST_TEST(URLLoader_CompoundBodyPOST)
483       LIST_TEST(URLLoader_EmptyDataPOST)
484       LIST_TEST(URLLoader_BinaryDataPOST)
485       LIST_TEST(URLLoader_CustomRequestHeader)
486       LIST_TEST(URLLoader_FailsBogusContentLength)
487       LIST_TEST(URLLoader_StreamToFile)
488       LIST_TEST(URLLoader_UntrustedSameOriginRestriction)
489       LIST_TEST(URLLoader_TrustedSameOriginRestriction)
490       LIST_TEST(URLLoader_UntrustedCrossOriginRequest)
491       LIST_TEST(URLLoader_TrustedCrossOriginRequest)
492       LIST_TEST(URLLoader_UntrustedJavascriptURLRestriction)
493       // TODO(bbudge) Fix Javascript URLs for trusted loaders.
494       // http://crbug.com/103062
495       LIST_TEST(DISABLED_URLLoader_TrustedJavascriptURLRestriction)
496       LIST_TEST(URLLoader_UntrustedHttpRequests)
497       LIST_TEST(URLLoader_TrustedHttpRequests)
498       LIST_TEST(URLLoader_FollowURLRedirect)
499       LIST_TEST(URLLoader_AuditURLRedirect)
500       LIST_TEST(URLLoader_AbortCalls)
501       LIST_TEST(URLLoader_UntendedLoad)
502       LIST_TEST(URLLoader_PrefetchBufferThreshold)
503   );
504 }
505 // Timing out on Windows dbg. http://crbug.com/95005
506 #if defined(OS_WIN) && !defined(NDEBUG)
507 #define MAYBE_URLLoader DISABLED_URLLoader
508 #else
509 #define MAYBE_URLLoader URLLoader
510 #endif
511 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, MAYBE_URLLoader) {
512   RunTestViaHTTP(
513       LIST_TEST(URLLoader_BasicGET)
514       LIST_TEST(URLLoader_BasicPOST)
515       LIST_TEST(URLLoader_BasicFilePOST)
516       LIST_TEST(URLLoader_BasicFileRangePOST)
517       LIST_TEST(URLLoader_CompoundBodyPOST)
518       LIST_TEST(URLLoader_EmptyDataPOST)
519       LIST_TEST(URLLoader_BinaryDataPOST)
520       LIST_TEST(URLLoader_CustomRequestHeader)
521       LIST_TEST(URLLoader_FailsBogusContentLength)
522       LIST_TEST(URLLoader_StreamToFile)
523       LIST_TEST(URLLoader_UntrustedSameOriginRestriction)
524       LIST_TEST(URLLoader_TrustedSameOriginRestriction)
525       LIST_TEST(URLLoader_UntrustedCrossOriginRequest)
526       LIST_TEST(URLLoader_TrustedCrossOriginRequest)
527       LIST_TEST(URLLoader_UntrustedJavascriptURLRestriction)
528       // TODO(bbudge) Fix Javascript URLs for trusted loaders.
529       // http://crbug.com/103062
530       LIST_TEST(DISABLED_URLLoader_TrustedJavascriptURLRestriction)
531       LIST_TEST(URLLoader_UntrustedHttpRequests)
532       LIST_TEST(URLLoader_TrustedHttpRequests)
533       LIST_TEST(URLLoader_FollowURLRedirect)
534       LIST_TEST(URLLoader_AuditURLRedirect)
535       LIST_TEST(URLLoader_AbortCalls)
536       LIST_TEST(URLLoader_UntendedLoad)
537       LIST_TEST(URLLoader_PrefetchBufferThreshold)
538   );
539 }
540 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, URLLoader) {
541   RunTestViaHTTP(
542       LIST_TEST(URLLoader_BasicGET)
543       LIST_TEST(URLLoader_BasicPOST)
544       LIST_TEST(URLLoader_BasicFilePOST)
545       LIST_TEST(URLLoader_BasicFileRangePOST)
546       LIST_TEST(URLLoader_CompoundBodyPOST)
547       LIST_TEST(URLLoader_EmptyDataPOST)
548       LIST_TEST(URLLoader_BinaryDataPOST)
549       LIST_TEST(URLLoader_CustomRequestHeader)
550       LIST_TEST(URLLoader_FailsBogusContentLength)
551       LIST_TEST(URLLoader_StreamToFile)
552       LIST_TEST(URLLoader_UntrustedSameOriginRestriction)
553       // We don't support Trusted APIs in NaCl.
554       LIST_TEST(DISABLED_URLLoader_TrustedSameOriginRestriction)
555       LIST_TEST(URLLoader_UntrustedCrossOriginRequest)
556       LIST_TEST(DISABLED_URLLoader_TrustedCrossOriginRequest)
557       LIST_TEST(URLLoader_UntrustedJavascriptURLRestriction)
558       // TODO(bbudge) Fix Javascript URLs for trusted loaders.
559       // http://crbug.com/103062
560       LIST_TEST(DISABLED_URLLoader_TrustedJavascriptURLRestriction)
561       LIST_TEST(URLLoader_UntrustedHttpRequests)
562       LIST_TEST(DISABLED_URLLoader_TrustedHttpRequests)
563       LIST_TEST(URLLoader_FollowURLRedirect)
564       LIST_TEST(URLLoader_AuditURLRedirect)
565       LIST_TEST(URLLoader_AbortCalls)
566       LIST_TEST(URLLoader_UntendedLoad)
567       LIST_TEST(URLLoader_PrefetchBufferThreshold)
568   );
569 }
570 // Flaky on 32-bit linux bot; http://crbug.com/308906
571 #if defined(OS_LINUX) && defined(ARCH_CPU_X86)
572 #define MAYBE_NaCl_Glibc_URLLoader DISABLED_URLLoader
573 #else
574 #define MAYBE_NaCl_Glibc_URLLoader URLLoader
575 #endif
576 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_NaCl_Glibc_URLLoader) {
577   RunTestViaHTTP(
578       LIST_TEST(URLLoader_BasicGET)
579       LIST_TEST(URLLoader_BasicPOST)
580       LIST_TEST(URLLoader_BasicFilePOST)
581       LIST_TEST(URLLoader_BasicFileRangePOST)
582       LIST_TEST(URLLoader_CompoundBodyPOST)
583       LIST_TEST(URLLoader_EmptyDataPOST)
584       LIST_TEST(URLLoader_BinaryDataPOST)
585       LIST_TEST(URLLoader_CustomRequestHeader)
586       LIST_TEST(URLLoader_FailsBogusContentLength)
587       LIST_TEST(URLLoader_StreamToFile)
588       LIST_TEST(URLLoader_UntrustedSameOriginRestriction)
589       // We don't support Trusted APIs in NaCl.
590       LIST_TEST(DISABLED_URLLoader_TrustedSameOriginRestriction)
591       LIST_TEST(URLLoader_UntrustedCrossOriginRequest)
592       LIST_TEST(DISABLED_URLLoader_TrustedCrossOriginRequest)
593       LIST_TEST(URLLoader_UntrustedJavascriptURLRestriction)
594       // TODO(bbudge) Fix Javascript URLs for trusted loaders.
595       // http://crbug.com/103062
596       LIST_TEST(DISABLED_URLLoader_TrustedJavascriptURLRestriction)
597       LIST_TEST(URLLoader_UntrustedHttpRequests)
598       LIST_TEST(DISABLED_URLLoader_TrustedHttpRequests)
599       LIST_TEST(URLLoader_FollowURLRedirect)
600       LIST_TEST(URLLoader_AuditURLRedirect)
601       LIST_TEST(URLLoader_AbortCalls)
602       LIST_TEST(URLLoader_UntendedLoad)
603       LIST_TEST(URLLoader_PrefetchBufferThreshold)
604   );
605 }
606 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, URLLoader) {
607   RunTestViaHTTP(
608       LIST_TEST(URLLoader_BasicGET)
609       LIST_TEST(URLLoader_BasicPOST)
610       LIST_TEST(URLLoader_BasicFilePOST)
611       LIST_TEST(URLLoader_BasicFileRangePOST)
612       LIST_TEST(URLLoader_CompoundBodyPOST)
613       LIST_TEST(URLLoader_EmptyDataPOST)
614       LIST_TEST(URLLoader_BinaryDataPOST)
615       LIST_TEST(URLLoader_CustomRequestHeader)
616       LIST_TEST(URLLoader_FailsBogusContentLength)
617       LIST_TEST(URLLoader_StreamToFile)
618       LIST_TEST(URLLoader_UntrustedSameOriginRestriction)
619       // We don't support Trusted APIs in NaCl.
620       LIST_TEST(DISABLED_URLLoader_TrustedSameOriginRestriction)
621       LIST_TEST(URLLoader_UntrustedCrossOriginRequest)
622       LIST_TEST(DISABLED_URLLoader_TrustedCrossOriginRequest)
623       LIST_TEST(URLLoader_UntrustedJavascriptURLRestriction)
624       // TODO(bbudge) Fix Javascript URLs for trusted loaders.
625       // http://crbug.com/103062
626       LIST_TEST(DISABLED_URLLoader_TrustedJavascriptURLRestriction)
627       LIST_TEST(URLLoader_UntrustedHttpRequests)
628       LIST_TEST(DISABLED_URLLoader_TrustedHttpRequests)
629       LIST_TEST(URLLoader_FollowURLRedirect)
630       LIST_TEST(URLLoader_AuditURLRedirect)
631       LIST_TEST(URLLoader_AbortCalls)
632       LIST_TEST(URLLoader_UntendedLoad)
633       LIST_TEST(URLLoader_PrefetchBufferThreshold)
634   );
635 }
636
637 // URLRequestInfo tests.
638 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_CreateAndIsURLRequestInfo)
639 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_CreateAndIsURLRequestInfo)
640
641 // Timing out on Windows. http://crbug.com/129571
642 #if defined(OS_WIN)
643 #define MAYBE_URLRequest_CreateAndIsURLRequestInfo \
644   DISABLED_URLRequest_CreateAndIsURLRequestInfo
645 #else
646 #define MAYBE_URLRequest_CreateAndIsURLRequestInfo \
647     URLRequest_CreateAndIsURLRequestInfo
648 #endif
649 TEST_PPAPI_NACL(MAYBE_URLRequest_CreateAndIsURLRequestInfo)
650
651 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_SetProperty)
652 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_SetProperty)
653 // http://crbug.com/167150
654 TEST_PPAPI_NACL(DISABLED_URLRequest_SetProperty)
655 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_AppendDataToBody)
656 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_AppendDataToBody)
657 TEST_PPAPI_NACL(URLRequest_AppendDataToBody)
658 TEST_PPAPI_IN_PROCESS_VIA_HTTP(DISABLED_URLRequest_AppendFileToBody)
659 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(DISABLED_URLRequest_AppendFileToBody)
660 TEST_PPAPI_NACL(DISABLED_URLRequest_AppendFileToBody)
661 TEST_PPAPI_IN_PROCESS_VIA_HTTP(URLRequest_Stress)
662 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(URLRequest_Stress)
663 TEST_PPAPI_NACL(URLRequest_Stress)
664
665 TEST_PPAPI_IN_PROCESS(PaintAggregator)
666 TEST_PPAPI_OUT_OF_PROCESS(PaintAggregator)
667 TEST_PPAPI_NACL(PaintAggregator)
668
669 // TODO(danakj): http://crbug.com/115286
670 TEST_PPAPI_IN_PROCESS(DISABLED_Scrollbar)
671 // http://crbug.com/89961
672 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, DISABLED_Scrollbar) {
673   RunTest("Scrollbar");
674 }
675 // TODO(danakj): http://crbug.com/115286
676 TEST_PPAPI_NACL(DISABLED_Scrollbar)
677
678 TEST_PPAPI_IN_PROCESS(URLUtil)
679 TEST_PPAPI_OUT_OF_PROCESS(URLUtil)
680
681 TEST_PPAPI_IN_PROCESS(CharSet)
682 TEST_PPAPI_OUT_OF_PROCESS(CharSet)
683
684 TEST_PPAPI_IN_PROCESS(Crypto)
685 TEST_PPAPI_OUT_OF_PROCESS(Crypto)
686
687 TEST_PPAPI_IN_PROCESS(Var)
688 TEST_PPAPI_OUT_OF_PROCESS(Var)
689 TEST_PPAPI_NACL(Var)
690
691 TEST_PPAPI_IN_PROCESS(VarResource)
692 TEST_PPAPI_OUT_OF_PROCESS(VarResource)
693 TEST_PPAPI_NACL(VarResource)
694
695 // Flaky on mac, http://crbug.com/121107
696 #if defined(OS_MACOSX)
697 #define MAYBE_VarDeprecated DISABLED_VarDeprecated
698 #else
699 #define MAYBE_VarDeprecated VarDeprecated
700 #endif
701
702 TEST_PPAPI_IN_PROCESS(VarDeprecated)
703 TEST_PPAPI_OUT_OF_PROCESS(MAYBE_VarDeprecated)
704
705 // Windows defines 'PostMessage', so we have to undef it.
706 #ifdef PostMessage
707 #undef PostMessage
708 #endif
709 // PostMessage tests.
710 IN_PROC_BROWSER_TEST_F(PPAPITest, PostMessage) {
711   RunTestViaHTTP(
712       LIST_TEST(PostMessage_SendInInit)
713       LIST_TEST(PostMessage_SendingData)
714       LIST_TEST(PostMessage_SendingArrayBuffer)
715       LIST_TEST(DISABLED_PostMessage_SendingArray)
716       LIST_TEST(DISABLED_PostMessage_SendingDictionary)
717       LIST_TEST(DISABLED_PostMessage_SendingResource)
718       LIST_TEST(DISABLED_PostMessage_SendingComplexVar)
719       LIST_TEST(PostMessage_MessageEvent)
720       LIST_TEST(PostMessage_NoHandler)
721       LIST_TEST(PostMessage_ExtraParam)
722   );
723 }
724
725 // Flaky: crbug.com/269530
726 #if defined(OS_WIN)
727 #define MAYBE_PostMessage DISABLED_PostMessage
728 #else
729 #define MAYBE_PostMessage PostMessage
730 #endif
731 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, MAYBE_PostMessage) {
732   RunTestViaHTTP(
733       LIST_TEST(PostMessage_SendInInit)
734       LIST_TEST(PostMessage_SendingData)
735       LIST_TEST(PostMessage_SendingArrayBuffer)
736       LIST_TEST(PostMessage_SendingArray)
737       LIST_TEST(PostMessage_SendingDictionary)
738       LIST_TEST(PostMessage_SendingResource)
739       LIST_TEST(PostMessage_SendingComplexVar)
740       LIST_TEST(PostMessage_MessageEvent)
741       LIST_TEST(PostMessage_NoHandler)
742       LIST_TEST(PostMessage_ExtraParam)
743       LIST_TEST(PostMessage_NonMainThread)
744   );
745 }
746 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, PostMessage) {
747   RunTestViaHTTP(
748       LIST_TEST(PostMessage_SendInInit)
749       LIST_TEST(PostMessage_SendingData)
750       LIST_TEST(PostMessage_SendingArrayBuffer)
751       LIST_TEST(PostMessage_SendingArray)
752       LIST_TEST(PostMessage_SendingDictionary)
753       LIST_TEST(PostMessage_SendingResource)
754       LIST_TEST(PostMessage_SendingComplexVar)
755       LIST_TEST(PostMessage_MessageEvent)
756       LIST_TEST(PostMessage_NoHandler)
757       LIST_TEST(PostMessage_ExtraParam)
758       LIST_TEST(PostMessage_NonMainThread)
759   );
760 }
761 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(PostMessage)) {
762   RunTestViaHTTP(
763       LIST_TEST(PostMessage_SendInInit)
764       LIST_TEST(PostMessage_SendingData)
765       LIST_TEST(PostMessage_SendingArrayBuffer)
766       LIST_TEST(PostMessage_SendingArray)
767       LIST_TEST(PostMessage_SendingDictionary)
768       LIST_TEST(PostMessage_SendingResource)
769       LIST_TEST(PostMessage_SendingComplexVar)
770       LIST_TEST(PostMessage_MessageEvent)
771       LIST_TEST(PostMessage_NoHandler)
772       LIST_TEST(PostMessage_ExtraParam)
773       LIST_TEST(PostMessage_NonMainThread)
774   );
775 }
776 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, PostMessage) {
777   RunTestViaHTTP(
778       LIST_TEST(PostMessage_SendInInit)
779       LIST_TEST(PostMessage_SendingData)
780       LIST_TEST(PostMessage_SendingArrayBuffer)
781       LIST_TEST(PostMessage_SendingArray)
782       LIST_TEST(PostMessage_SendingDictionary)
783       LIST_TEST(PostMessage_SendingResource)
784       LIST_TEST(PostMessage_SendingComplexVar)
785       LIST_TEST(PostMessage_MessageEvent)
786       LIST_TEST(PostMessage_NoHandler)
787       LIST_TEST(PostMessage_ExtraParam)
788       LIST_TEST(PostMessage_NonMainThread)
789   );
790 }
791
792 TEST_PPAPI_IN_PROCESS(Memory)
793 TEST_PPAPI_OUT_OF_PROCESS(Memory)
794 TEST_PPAPI_NACL(Memory)
795
796 TEST_PPAPI_IN_PROCESS(VideoDecoder)
797 TEST_PPAPI_OUT_OF_PROCESS(VideoDecoder)
798
799 // FileIO tests.
800 IN_PROC_BROWSER_TEST_F(PPAPITest, FileIO) {
801   RunTestViaHTTP(
802       LIST_TEST(FileIO_Open)
803       LIST_TEST(FileIO_OpenDirectory)
804       LIST_TEST(FileIO_AbortCalls)
805       LIST_TEST(FileIO_ParallelReads)
806       LIST_TEST(FileIO_ParallelWrites)
807       LIST_TEST(FileIO_NotAllowMixedReadWrite)
808       LIST_TEST(FileIO_ReadWriteSetLength)
809       LIST_TEST(FileIO_ReadToArrayWriteSetLength)
810       LIST_TEST(FileIO_TouchQuery)
811       LIST_TEST(FileIO_RequestOSFileHandle)
812       LIST_TEST(FileIO_RequestOSFileHandleWithOpenExclusive)
813       LIST_TEST(FileIO_Mmap)
814   );
815 }
816 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, FileIO) {
817   RunTestViaHTTP(
818       LIST_TEST(FileIO_Open)
819       LIST_TEST(FileIO_AbortCalls)
820       LIST_TEST(FileIO_ParallelReads)
821       LIST_TEST(FileIO_ParallelWrites)
822       LIST_TEST(FileIO_NotAllowMixedReadWrite)
823       LIST_TEST(FileIO_ReadWriteSetLength)
824       LIST_TEST(FileIO_ReadToArrayWriteSetLength)
825       LIST_TEST(FileIO_TouchQuery)
826       LIST_TEST(FileIO_RequestOSFileHandle)
827       LIST_TEST(FileIO_RequestOSFileHandleWithOpenExclusive)
828       LIST_TEST(FileIO_Mmap)
829   );
830 }
831 // Flaky on XP; times out, http://crbug.com/313401
832 #if defined(OS_WIN)
833 #define MAYBE_FileIO DISABLED_FileIO
834 #else
835 #define MAYBE_FileIO FileIO
836 #endif
837 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, MAYBE_FileIO) {
838   RunTestViaHTTP(
839       LIST_TEST(FileIO_Open)
840       LIST_TEST(FileIO_AbortCalls)
841       LIST_TEST(FileIO_ParallelReads)
842       LIST_TEST(FileIO_ParallelWrites)
843       LIST_TEST(FileIO_NotAllowMixedReadWrite)
844       LIST_TEST(FileIO_ReadWriteSetLength)
845       LIST_TEST(FileIO_ReadToArrayWriteSetLength)
846       LIST_TEST(FileIO_TouchQuery)
847       LIST_TEST(FileIO_RequestOSFileHandle)
848       LIST_TEST(FileIO_RequestOSFileHandleWithOpenExclusive)
849       LIST_TEST(FileIO_Mmap)
850   );
851 }
852 // Flaky on 32-bit linux bot; http://crbug.com/308905
853 #if defined(OS_LINUX) && defined(ARCH_CPU_X86)
854 #define MAYBE_NaCl_Glibc_FileIO DISABLED_FileIO
855 #else
856 #define MAYBE_NaCl_Glibc_FileIO FileIO
857 #endif
858 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_NaCl_Glibc_FileIO) {
859   RunTestViaHTTP(
860       LIST_TEST(FileIO_Open)
861       LIST_TEST(FileIO_AbortCalls)
862       LIST_TEST(FileIO_ParallelReads)
863       LIST_TEST(FileIO_ParallelWrites)
864       LIST_TEST(FileIO_NotAllowMixedReadWrite)
865       LIST_TEST(FileIO_ReadWriteSetLength)
866       LIST_TEST(FileIO_ReadToArrayWriteSetLength)
867       LIST_TEST(FileIO_TouchQuery)
868       LIST_TEST(FileIO_RequestOSFileHandle)
869       LIST_TEST(FileIO_RequestOSFileHandleWithOpenExclusive)
870       LIST_TEST(FileIO_Mmap)
871   );
872 }
873 // Flaky on XP; times out, http://crbug.com/313205
874 #if defined(OS_WIN)
875 #define MAYBE_PNaCl_FileIO DISABLED_FileIO
876 #else
877 #define MAYBE_PNaCl_FileIO FileIO
878 #endif
879 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, MAYBE_PNaCl_FileIO) {
880   RunTestViaHTTP(
881       LIST_TEST(FileIO_Open)
882       LIST_TEST(FileIO_AbortCalls)
883       LIST_TEST(FileIO_ParallelReads)
884       LIST_TEST(FileIO_ParallelWrites)
885       LIST_TEST(FileIO_NotAllowMixedReadWrite)
886       LIST_TEST(FileIO_ReadWriteSetLength)
887       LIST_TEST(FileIO_ReadToArrayWriteSetLength)
888       LIST_TEST(FileIO_TouchQuery)
889       LIST_TEST(FileIO_RequestOSFileHandle)
890       LIST_TEST(FileIO_RequestOSFileHandleWithOpenExclusive)
891       LIST_TEST(FileIO_Mmap)
892   );
893 }
894
895 IN_PROC_BROWSER_TEST_F(PPAPITest, FileRef) {
896   RunTestViaHTTP(
897       LIST_TEST(FileRef_Create)
898       LIST_TEST(FileRef_GetFileSystemType)
899       LIST_TEST(FileRef_GetName)
900       LIST_TEST(FileRef_GetPath)
901       LIST_TEST(FileRef_GetParent)
902       LIST_TEST(FileRef_MakeDirectory)
903       LIST_TEST(FileRef_QueryAndTouchFile)
904       LIST_TEST(FileRef_DeleteFileAndDirectory)
905       LIST_TEST(FileRef_RenameFileAndDirectory)
906       LIST_TEST(FileRef_Query)
907       LIST_TEST(FileRef_FileNameEscaping)
908       LIST_TEST(FileRef_ReadDirectoryEntries)
909   );
910 }
911 // OutOfProcessPPAPITest.FileRef times out fairly often.
912 // http://crbug.com/241646
913 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, FileRef) {
914   RunTestViaHTTP(
915       LIST_TEST(FileRef_Create)
916       LIST_TEST(FileRef_GetFileSystemType)
917       LIST_TEST(FileRef_GetName)
918       LIST_TEST(FileRef_GetPath)
919       LIST_TEST(FileRef_GetParent)
920       LIST_TEST(FileRef_MakeDirectory)
921       LIST_TEST(FileRef_QueryAndTouchFile)
922       LIST_TEST(FileRef_DeleteFileAndDirectory)
923       LIST_TEST(FileRef_RenameFileAndDirectory)
924       LIST_TEST(FileRef_Query)
925       LIST_TEST(FileRef_FileNameEscaping)
926       LIST_TEST(DISABLED_FileRef_ReadDirectoryEntries)
927   );
928 }
929 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, FileRef) {
930   RunTestViaHTTP(
931       LIST_TEST(FileRef_Create)
932       LIST_TEST(FileRef_GetFileSystemType)
933       LIST_TEST(FileRef_GetName)
934       LIST_TEST(FileRef_GetPath)
935       LIST_TEST(FileRef_GetParent)
936       LIST_TEST(FileRef_MakeDirectory)
937       LIST_TEST(FileRef_QueryAndTouchFile)
938       LIST_TEST(FileRef_DeleteFileAndDirectory)
939       LIST_TEST(FileRef_RenameFileAndDirectory)
940       LIST_TEST(FileRef_Query)
941       LIST_TEST(FileRef_FileNameEscaping)
942       LIST_TEST(DISABLED_FileRef_ReadDirectoryEntries)
943   );
944 }
945 // Flaky on 32-bit linux bot; http://crbug.com/308908
946 #if defined(OS_LINUX) && defined(ARCH_CPU_X86)
947 #define MAYBE_NaCl_Glibc_FileRef DISABLED_FileRef
948 #else
949 #define MAYBE_NaCl_Glibc_FileRef FileRef
950 #endif
951 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_NaCl_Glibc_FileRef) {
952   RunTestViaHTTP(
953       LIST_TEST(FileRef_Create)
954       LIST_TEST(FileRef_GetFileSystemType)
955       LIST_TEST(FileRef_GetName)
956       LIST_TEST(FileRef_GetPath)
957       LIST_TEST(FileRef_GetParent)
958       LIST_TEST(FileRef_MakeDirectory)
959       LIST_TEST(FileRef_QueryAndTouchFile)
960       LIST_TEST(FileRef_DeleteFileAndDirectory)
961       LIST_TEST(FileRef_RenameFileAndDirectory)
962       LIST_TEST(FileRef_Query)
963       LIST_TEST(FileRef_FileNameEscaping)
964       LIST_TEST(DISABLED_FileRef_ReadDirectoryEntries)
965   );
966 }
967 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, FileRef) {
968   RunTestViaHTTP(
969       LIST_TEST(FileRef_Create)
970       LIST_TEST(FileRef_GetFileSystemType)
971       LIST_TEST(FileRef_GetName)
972       LIST_TEST(FileRef_GetPath)
973       LIST_TEST(FileRef_GetParent)
974       LIST_TEST(FileRef_MakeDirectory)
975       LIST_TEST(FileRef_QueryAndTouchFile)
976       LIST_TEST(FileRef_DeleteFileAndDirectory)
977       LIST_TEST(FileRef_RenameFileAndDirectory)
978       LIST_TEST(FileRef_Query)
979       LIST_TEST(FileRef_FileNameEscaping)
980       LIST_TEST(DISABLED_FileRef_ReadDirectoryEntries)
981   );
982 }
983
984 TEST_PPAPI_IN_PROCESS_VIA_HTTP(FileSystem)
985 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(FileSystem)
986
987 // PPAPINaClTest.FileSystem times out consistently on Windows and Mac.
988 // http://crbug.com/130372
989 #if defined(OS_MACOSX) || defined(OS_WIN)
990 #define MAYBE_FileSystem DISABLED_FileSystem
991 #else
992 #define MAYBE_FileSystem FileSystem
993 #endif
994
995 TEST_PPAPI_NACL(MAYBE_FileSystem)
996
997 #if defined(OS_MACOSX)
998 // http://crbug.com/103912
999 #define MAYBE_Fullscreen DISABLED_Fullscreen
1000 #elif defined(OS_LINUX)
1001 // http://crbug.com/146008
1002 #define MAYBE_Fullscreen DISABLED_Fullscreen
1003 #else
1004 #define MAYBE_Fullscreen Fullscreen
1005 #endif
1006
1007 TEST_PPAPI_IN_PROCESS_VIA_HTTP(MAYBE_Fullscreen)
1008 TEST_PPAPI_OUT_OF_PROCESS_VIA_HTTP(MAYBE_Fullscreen)
1009 TEST_PPAPI_NACL(MAYBE_Fullscreen)
1010
1011 TEST_PPAPI_OUT_OF_PROCESS(X509CertificatePrivate)
1012
1013 // There is no proxy. This is used for PDF metrics reporting, and PDF only
1014 // runs in process, so there's currently no need for a proxy.
1015 TEST_PPAPI_IN_PROCESS(UMA)
1016
1017 // NetAddress tests
1018 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, NetAddress) {
1019   RunTestViaHTTP(
1020       LIST_TEST(NetAddress_IPv4Address)
1021       LIST_TEST(NetAddress_IPv6Address)
1022       LIST_TEST(NetAddress_DescribeAsString)
1023   );
1024 }
1025 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, NetAddress) {
1026   RunTestViaHTTP(
1027       LIST_TEST(NetAddress_IPv4Address)
1028       LIST_TEST(NetAddress_IPv6Address)
1029       LIST_TEST(NetAddress_DescribeAsString)
1030   );
1031 }
1032 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(NetAddress)) {
1033   RunTestViaHTTP(
1034       LIST_TEST(NetAddress_IPv4Address)
1035       LIST_TEST(NetAddress_IPv6Address)
1036       LIST_TEST(NetAddress_DescribeAsString)
1037   );
1038 }
1039 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, NetAddress) {
1040   RunTestViaHTTP(
1041       LIST_TEST(NetAddress_IPv4Address)
1042       LIST_TEST(NetAddress_IPv6Address)
1043       LIST_TEST(NetAddress_DescribeAsString)
1044   );
1045 }
1046
1047 IN_PROC_BROWSER_TEST_F(PPAPITest, NetAddressPrivate) {
1048   RunTestViaHTTP(
1049       LIST_TEST(NetAddressPrivate_AreEqual)
1050       LIST_TEST(NetAddressPrivate_AreHostsEqual)
1051       LIST_TEST(NetAddressPrivate_Describe)
1052       LIST_TEST(NetAddressPrivate_ReplacePort)
1053       LIST_TEST(NetAddressPrivate_GetAnyAddress)
1054       LIST_TEST(NetAddressPrivate_DescribeIPv6)
1055       LIST_TEST(NetAddressPrivate_GetFamily)
1056       LIST_TEST(NetAddressPrivate_GetPort)
1057       LIST_TEST(NetAddressPrivate_GetAddress)
1058       LIST_TEST(NetAddressPrivate_GetScopeID)
1059   );
1060 }
1061 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, NetAddressPrivate) {
1062   RunTestViaHTTP(
1063       LIST_TEST(NetAddressPrivate_AreEqual)
1064       LIST_TEST(NetAddressPrivate_AreHostsEqual)
1065       LIST_TEST(NetAddressPrivate_Describe)
1066       LIST_TEST(NetAddressPrivate_ReplacePort)
1067       LIST_TEST(NetAddressPrivate_GetAnyAddress)
1068       LIST_TEST(NetAddressPrivate_DescribeIPv6)
1069       LIST_TEST(NetAddressPrivate_GetFamily)
1070       LIST_TEST(NetAddressPrivate_GetPort)
1071       LIST_TEST(NetAddressPrivate_GetAddress)
1072       LIST_TEST(NetAddressPrivate_GetScopeID)
1073   );
1074 }
1075 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, NetAddressPrivate) {
1076   RunTestViaHTTP(
1077       LIST_TEST(NetAddressPrivateUntrusted_AreEqual)
1078       LIST_TEST(NetAddressPrivateUntrusted_AreHostsEqual)
1079       LIST_TEST(NetAddressPrivateUntrusted_Describe)
1080       LIST_TEST(NetAddressPrivateUntrusted_ReplacePort)
1081       LIST_TEST(NetAddressPrivateUntrusted_GetAnyAddress)
1082       LIST_TEST(NetAddressPrivateUntrusted_GetFamily)
1083       LIST_TEST(NetAddressPrivateUntrusted_GetPort)
1084       LIST_TEST(NetAddressPrivateUntrusted_GetAddress)
1085   );
1086 }
1087 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(NetAddressPrivate)) {
1088   RunTestViaHTTP(
1089       LIST_TEST(NetAddressPrivateUntrusted_AreEqual)
1090       LIST_TEST(NetAddressPrivateUntrusted_AreHostsEqual)
1091       LIST_TEST(NetAddressPrivateUntrusted_Describe)
1092       LIST_TEST(NetAddressPrivateUntrusted_ReplacePort)
1093       LIST_TEST(NetAddressPrivateUntrusted_GetAnyAddress)
1094       LIST_TEST(NetAddressPrivateUntrusted_GetFamily)
1095       LIST_TEST(NetAddressPrivateUntrusted_GetPort)
1096       LIST_TEST(NetAddressPrivateUntrusted_GetAddress)
1097   );
1098 }
1099 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, NetAddressPrivate) {
1100   RunTestViaHTTP(
1101       LIST_TEST(NetAddressPrivateUntrusted_AreEqual)
1102       LIST_TEST(NetAddressPrivateUntrusted_AreHostsEqual)
1103       LIST_TEST(NetAddressPrivateUntrusted_Describe)
1104       LIST_TEST(NetAddressPrivateUntrusted_ReplacePort)
1105       LIST_TEST(NetAddressPrivateUntrusted_GetAnyAddress)
1106       LIST_TEST(NetAddressPrivateUntrusted_GetFamily)
1107       LIST_TEST(NetAddressPrivateUntrusted_GetPort)
1108       LIST_TEST(NetAddressPrivateUntrusted_GetAddress)
1109   );
1110 }
1111
1112 // NetworkMonitor tests.
1113 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, NetworkMonitor) {
1114   RunTestViaHTTP(
1115       LIST_TEST(NetworkMonitor_Basic)
1116       LIST_TEST(NetworkMonitor_2Monitors)
1117       LIST_TEST(NetworkMonitor_DeleteInCallback)
1118   );
1119 }
1120 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, NetworkMonitor) {
1121   RunTestViaHTTP(
1122       LIST_TEST(NetworkMonitor_Basic)
1123       LIST_TEST(NetworkMonitor_2Monitors)
1124       LIST_TEST(NetworkMonitor_DeleteInCallback)
1125   );
1126 }
1127 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(NetworkMonitor)) {
1128   RunTestViaHTTP(
1129       LIST_TEST(NetworkMonitor_Basic)
1130       LIST_TEST(NetworkMonitor_2Monitors)
1131       LIST_TEST(NetworkMonitor_DeleteInCallback)
1132   );
1133 }
1134 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, NetworkMonitor) {
1135   RunTestViaHTTP(
1136       LIST_TEST(NetworkMonitor_Basic)
1137       LIST_TEST(NetworkMonitor_2Monitors)
1138       LIST_TEST(NetworkMonitor_DeleteInCallback)
1139   );
1140 }
1141
1142 // Flash tests.
1143 IN_PROC_BROWSER_TEST_F(PPAPITest, Flash) {
1144   RunTestViaHTTP(
1145       LIST_TEST(Flash_SetInstanceAlwaysOnTop)
1146       LIST_TEST(Flash_GetCommandLineArgs)
1147   );
1148 }
1149 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, Flash) {
1150   RunTestViaHTTP(
1151       LIST_TEST(Flash_SetInstanceAlwaysOnTop)
1152       LIST_TEST(Flash_GetCommandLineArgs)
1153   );
1154 }
1155
1156 // In-process WebSocket tests
1157 IN_PROC_BROWSER_TEST_F(PPAPITest, WebSocket) {
1158   RunTestWithWebSocketServer(
1159       LIST_TEST(WebSocket_IsWebSocket)
1160       LIST_TEST(WebSocket_UninitializedPropertiesAccess)
1161       LIST_TEST(WebSocket_InvalidConnect)
1162       LIST_TEST(WebSocket_Protocols)
1163       LIST_TEST(WebSocket_GetURL)
1164       LIST_TEST(WebSocket_ValidConnect)
1165       LIST_TEST(WebSocket_InvalidClose)
1166       LIST_TEST(WebSocket_ValidClose)
1167       LIST_TEST(WebSocket_GetProtocol)
1168       LIST_TEST(WebSocket_TextSendReceive)
1169       LIST_TEST(WebSocket_BinarySendReceive)
1170       LIST_TEST(WebSocket_StressedSendReceive)
1171       LIST_TEST(WebSocket_BufferedAmount)
1172       LIST_TEST(WebSocket_AbortCallsWithCallback)
1173       LIST_TEST(WebSocket_AbortSendMessageCall)
1174       LIST_TEST(WebSocket_AbortCloseCall)
1175       LIST_TEST(WebSocket_AbortReceiveMessageCall)
1176       LIST_TEST(WebSocket_CcInterfaces)
1177       LIST_TEST(WebSocket_UtilityInvalidConnect)
1178       LIST_TEST(WebSocket_UtilityProtocols)
1179       LIST_TEST(WebSocket_UtilityGetURL)
1180       LIST_TEST(WebSocket_UtilityValidConnect)
1181       LIST_TEST(WebSocket_UtilityInvalidClose)
1182       LIST_TEST(WebSocket_UtilityValidClose)
1183       LIST_TEST(WebSocket_UtilityGetProtocol)
1184       LIST_TEST(WebSocket_UtilityTextSendReceive)
1185       LIST_TEST(WebSocket_UtilityBinarySendReceive)
1186       LIST_TEST(WebSocket_UtilityBufferedAmount));
1187 }
1188
1189 // Out-of-process WebSocket tests
1190 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, WebSocket) {
1191   RunTestWithWebSocketServer(
1192       LIST_TEST(WebSocket_IsWebSocket)
1193       LIST_TEST(WebSocket_UninitializedPropertiesAccess)
1194       LIST_TEST(WebSocket_InvalidConnect)
1195       LIST_TEST(WebSocket_Protocols)
1196       LIST_TEST(WebSocket_GetURL)
1197       LIST_TEST(WebSocket_ValidConnect)
1198       LIST_TEST(WebSocket_InvalidClose)
1199       LIST_TEST(WebSocket_ValidClose)
1200       LIST_TEST(WebSocket_GetProtocol)
1201       LIST_TEST(WebSocket_TextSendReceive)
1202       LIST_TEST(WebSocket_BinarySendReceive)
1203       LIST_TEST(WebSocket_StressedSendReceive)
1204       LIST_TEST(WebSocket_BufferedAmount)
1205       LIST_TEST(WebSocket_AbortCallsWithCallback)
1206       LIST_TEST(WebSocket_AbortSendMessageCall)
1207       LIST_TEST(WebSocket_AbortCloseCall)
1208       LIST_TEST(WebSocket_AbortReceiveMessageCall)
1209       LIST_TEST(WebSocket_CcInterfaces)
1210       LIST_TEST(WebSocket_UtilityInvalidConnect)
1211       LIST_TEST(WebSocket_UtilityProtocols)
1212       LIST_TEST(WebSocket_UtilityGetURL)
1213       LIST_TEST(WebSocket_UtilityValidConnect)
1214       LIST_TEST(WebSocket_UtilityInvalidClose)
1215       LIST_TEST(WebSocket_UtilityValidClose)
1216       LIST_TEST(WebSocket_UtilityGetProtocol)
1217       LIST_TEST(WebSocket_UtilityTextSendReceive)
1218       LIST_TEST(WebSocket_UtilityBinarySendReceive)
1219       LIST_TEST(WebSocket_UtilityBufferedAmount));
1220 }
1221
1222 // NaClNewlib WebSocket tests
1223 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, WebSocket) {
1224   RunTestWithWebSocketServer(
1225       LIST_TEST(WebSocket_IsWebSocket)
1226       LIST_TEST(WebSocket_UninitializedPropertiesAccess)
1227       LIST_TEST(WebSocket_InvalidConnect)
1228       LIST_TEST(WebSocket_Protocols)
1229       LIST_TEST(WebSocket_GetURL)
1230       LIST_TEST(WebSocket_ValidConnect)
1231       LIST_TEST(WebSocket_InvalidClose)
1232       LIST_TEST(WebSocket_ValidClose)
1233       LIST_TEST(WebSocket_GetProtocol)
1234       LIST_TEST(WebSocket_TextSendReceive)
1235       LIST_TEST(WebSocket_BinarySendReceive)
1236       LIST_TEST(WebSocket_StressedSendReceive)
1237       LIST_TEST(WebSocket_BufferedAmount)
1238       LIST_TEST(WebSocket_AbortCallsWithCallback)
1239       LIST_TEST(WebSocket_AbortSendMessageCall)
1240       LIST_TEST(WebSocket_AbortCloseCall)
1241       LIST_TEST(WebSocket_AbortReceiveMessageCall)
1242       LIST_TEST(WebSocket_CcInterfaces)
1243       LIST_TEST(WebSocket_UtilityInvalidConnect)
1244       LIST_TEST(WebSocket_UtilityProtocols)
1245       LIST_TEST(WebSocket_UtilityGetURL)
1246       LIST_TEST(WebSocket_UtilityValidConnect)
1247       LIST_TEST(WebSocket_UtilityInvalidClose)
1248       LIST_TEST(WebSocket_UtilityValidClose)
1249       LIST_TEST(WebSocket_UtilityGetProtocol)
1250       LIST_TEST(WebSocket_UtilityTextSendReceive)
1251       LIST_TEST(WebSocket_UtilityBinarySendReceive)
1252       LIST_TEST(WebSocket_UtilityBufferedAmount));
1253 }
1254
1255 // NaClGLibc WebSocket tests
1256 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(WebSocket)) {
1257   RunTestWithWebSocketServer(
1258       LIST_TEST(WebSocket_IsWebSocket)
1259       LIST_TEST(WebSocket_UninitializedPropertiesAccess)
1260       LIST_TEST(WebSocket_InvalidConnect)
1261       LIST_TEST(WebSocket_Protocols)
1262       LIST_TEST(WebSocket_GetURL)
1263       LIST_TEST(WebSocket_ValidConnect)
1264       LIST_TEST(WebSocket_InvalidClose)
1265       LIST_TEST(WebSocket_ValidClose)
1266       LIST_TEST(WebSocket_GetProtocol)
1267       LIST_TEST(WebSocket_TextSendReceive)
1268       LIST_TEST(WebSocket_BinarySendReceive)
1269       LIST_TEST(WebSocket_StressedSendReceive)
1270       LIST_TEST(WebSocket_BufferedAmount)
1271       LIST_TEST(WebSocket_AbortCallsWithCallback)
1272       LIST_TEST(WebSocket_AbortSendMessageCall)
1273       LIST_TEST(WebSocket_AbortCloseCall)
1274       LIST_TEST(WebSocket_AbortReceiveMessageCall)
1275       LIST_TEST(WebSocket_CcInterfaces)
1276       LIST_TEST(WebSocket_UtilityInvalidConnect)
1277       LIST_TEST(WebSocket_UtilityProtocols)
1278       LIST_TEST(WebSocket_UtilityGetURL)
1279       LIST_TEST(WebSocket_UtilityValidConnect)
1280       LIST_TEST(WebSocket_UtilityInvalidClose)
1281       LIST_TEST(WebSocket_UtilityValidClose)
1282       LIST_TEST(WebSocket_UtilityGetProtocol)
1283       LIST_TEST(WebSocket_UtilityTextSendReceive)
1284       LIST_TEST(WebSocket_UtilityBinarySendReceive)
1285       LIST_TEST(WebSocket_UtilityBufferedAmount));
1286 }
1287
1288 // PNaCl WebSocket tests
1289 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, WebSocket) {
1290   RunTestWithWebSocketServer(
1291       LIST_TEST(WebSocket_IsWebSocket)
1292       LIST_TEST(WebSocket_UninitializedPropertiesAccess)
1293       LIST_TEST(WebSocket_InvalidConnect)
1294       LIST_TEST(WebSocket_Protocols)
1295       LIST_TEST(WebSocket_GetURL)
1296       LIST_TEST(WebSocket_ValidConnect)
1297       LIST_TEST(WebSocket_InvalidClose)
1298       LIST_TEST(WebSocket_ValidClose)
1299       LIST_TEST(WebSocket_GetProtocol)
1300       LIST_TEST(WebSocket_TextSendReceive)
1301       LIST_TEST(WebSocket_BinarySendReceive)
1302       LIST_TEST(WebSocket_StressedSendReceive)
1303       LIST_TEST(WebSocket_BufferedAmount)
1304       LIST_TEST(WebSocket_AbortCallsWithCallback)
1305       LIST_TEST(WebSocket_AbortSendMessageCall)
1306       LIST_TEST(WebSocket_AbortCloseCall)
1307       LIST_TEST(WebSocket_AbortReceiveMessageCall)
1308       LIST_TEST(WebSocket_CcInterfaces)
1309       LIST_TEST(WebSocket_UtilityInvalidConnect)
1310       LIST_TEST(WebSocket_UtilityProtocols)
1311       LIST_TEST(WebSocket_UtilityGetURL)
1312       LIST_TEST(WebSocket_UtilityValidConnect)
1313       LIST_TEST(WebSocket_UtilityInvalidClose)
1314       LIST_TEST(WebSocket_UtilityValidClose)
1315       LIST_TEST(WebSocket_UtilityGetProtocol)
1316       LIST_TEST(WebSocket_UtilityTextSendReceive)
1317       LIST_TEST(WebSocket_UtilityBinarySendReceive)
1318       LIST_TEST(WebSocket_UtilityBufferedAmount));
1319 }
1320
1321
1322 // In-process AudioConfig tests
1323 IN_PROC_BROWSER_TEST_F(PPAPITest, AudioConfig) {
1324   RunTest(
1325       LIST_TEST(AudioConfig_RecommendSampleRate)
1326       LIST_TEST(AudioConfig_ValidConfigs)
1327       LIST_TEST(AudioConfig_InvalidConfigs));
1328 }
1329
1330 // Out-of-process AudioConfig tests
1331 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, AudioConfig) {
1332   RunTest(
1333       LIST_TEST(AudioConfig_RecommendSampleRate)
1334       LIST_TEST(AudioConfig_ValidConfigs)
1335       LIST_TEST(AudioConfig_InvalidConfigs));
1336 }
1337
1338 // NaClNewlib AudioConfig tests
1339 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, AudioConfig) {
1340   RunTestViaHTTP(
1341       LIST_TEST(AudioConfig_RecommendSampleRate)
1342       LIST_TEST(AudioConfig_ValidConfigs)
1343       LIST_TEST(AudioConfig_InvalidConfigs));
1344 }
1345
1346 // NaClGLibc AudioConfig tests
1347 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(AudioConfig)) {
1348   RunTestViaHTTP(
1349       LIST_TEST(AudioConfig_RecommendSampleRate)
1350       LIST_TEST(AudioConfig_ValidConfigs)
1351       LIST_TEST(AudioConfig_InvalidConfigs));
1352 }
1353
1354 // PNaCl AudioConfig tests
1355 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, AudioConfig) {
1356   RunTestViaHTTP(
1357       LIST_TEST(AudioConfig_RecommendSampleRate)
1358       LIST_TEST(AudioConfig_ValidConfigs)
1359       LIST_TEST(AudioConfig_InvalidConfigs));
1360 }
1361
1362 // Flaky on ChromeOS dbg, http://crbug.com/277564.
1363 #if defined(OS_CHROMEOS) && !defined(NDEBUG)
1364 #define MAYBE_Audio DISABLED_Audio
1365 #else
1366 #define MAYBE_Audio Audio
1367 #endif
1368 IN_PROC_BROWSER_TEST_F(PPAPITest, MAYBE_Audio) {
1369   RunTest(LIST_TEST(Audio_Creation)
1370           LIST_TEST(Audio_DestroyNoStop)
1371           LIST_TEST(Audio_Failures)
1372           LIST_TEST(Audio_AudioCallback1)
1373           LIST_TEST(Audio_AudioCallback2)
1374           LIST_TEST(Audio_AudioCallback3)
1375           LIST_TEST(Audio_AudioCallback4));
1376 }
1377 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, Audio) {
1378   RunTest(LIST_TEST(Audio_Creation)
1379           LIST_TEST(Audio_DestroyNoStop)
1380           LIST_TEST(Audio_Failures)
1381           LIST_TEST(Audio_AudioCallback1)
1382           LIST_TEST(Audio_AudioCallback2)
1383           LIST_TEST(Audio_AudioCallback3)
1384           LIST_TEST(Audio_AudioCallback4));
1385 }
1386 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, Audio) {
1387   RunTestViaHTTP(LIST_TEST(Audio_Creation)
1388                  LIST_TEST(Audio_DestroyNoStop)
1389                  LIST_TEST(Audio_Failures)
1390                  LIST_TEST(Audio_AudioCallback1)
1391                  LIST_TEST(Audio_AudioCallback2)
1392                  LIST_TEST(Audio_AudioCallback3)
1393                  LIST_TEST(Audio_AudioCallback4));
1394 }
1395 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(Audio)) {
1396   RunTestViaHTTP(LIST_TEST(Audio_Creation)
1397                  LIST_TEST(Audio_DestroyNoStop)
1398                  LIST_TEST(Audio_Failures)
1399                  LIST_TEST(Audio_AudioCallback1)
1400                  LIST_TEST(Audio_AudioCallback2)
1401                  LIST_TEST(Audio_AudioCallback3)
1402                  LIST_TEST(Audio_AudioCallback4));
1403 }
1404 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, Audio) {
1405   RunTestViaHTTP(LIST_TEST(Audio_Creation)
1406                  LIST_TEST(Audio_DestroyNoStop)
1407                  LIST_TEST(Audio_Failures)
1408                  LIST_TEST(Audio_AudioCallback1)
1409                  LIST_TEST(Audio_AudioCallback2)
1410                  LIST_TEST(Audio_AudioCallback3)
1411                  LIST_TEST(Audio_AudioCallback4));
1412 }
1413
1414 TEST_PPAPI_IN_PROCESS(View_CreatedVisible);
1415 TEST_PPAPI_OUT_OF_PROCESS(View_CreatedVisible);
1416 TEST_PPAPI_NACL(View_CreatedVisible);
1417 // This test ensures that plugins created in a background tab have their
1418 // initial visibility set to false. We don't bother testing in-process for this
1419 // custom test since the out of process code also exercises in-process.
1420
1421 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, View_CreateInvisible) {
1422   // Make a second tab in the foreground.
1423   GURL url = GetTestFileUrl("View_CreatedInvisible");
1424   chrome::NavigateParams params(browser(), url, content::PAGE_TRANSITION_LINK);
1425   params.disposition = NEW_BACKGROUND_TAB;
1426   ui_test_utils::NavigateToURL(&params);
1427 }
1428
1429 // This test messes with tab visibility so is custom.
1430 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, View_PageHideShow) {
1431   // The plugin will be loaded in the foreground tab and will send us a message.
1432   PPAPITestMessageHandler handler;
1433   JavascriptTestObserver observer(
1434       browser()->tab_strip_model()->GetActiveWebContents()->GetRenderViewHost(),
1435       &handler);
1436
1437   GURL url = GetTestFileUrl("View_PageHideShow");
1438   ui_test_utils::NavigateToURL(browser(), url);
1439
1440   ASSERT_TRUE(observer.Run()) << handler.error_message();
1441   EXPECT_STREQ("TestPageHideShow:Created", handler.message().c_str());
1442   observer.Reset();
1443
1444   // Make a new tab to cause the original one to hide, this should trigger the
1445   // next phase of the test.
1446   chrome::NavigateParams params(browser(), GURL(content::kAboutBlankURL),
1447                                 content::PAGE_TRANSITION_LINK);
1448   params.disposition = NEW_FOREGROUND_TAB;
1449   ui_test_utils::NavigateToURL(&params);
1450
1451   // Wait until the test acks that it got hidden.
1452   ASSERT_TRUE(observer.Run()) << handler.error_message();
1453   EXPECT_STREQ("TestPageHideShow:Hidden", handler.message().c_str());
1454   observer.Reset();
1455
1456   // Switch back to the test tab.
1457   browser()->tab_strip_model()->ActivateTabAt(0, true);
1458
1459   ASSERT_TRUE(observer.Run()) << handler.error_message();
1460   EXPECT_STREQ("PASS", handler.message().c_str());
1461 }
1462
1463 // Tests that if a plugin accepts touch events, the browser knows to send touch
1464 // events to the renderer.
1465 IN_PROC_BROWSER_TEST_F(PPAPITest, InputEvent_AcceptTouchEvent) {
1466   std::string positive_tests[] = { "InputEvent_AcceptTouchEvent_1",
1467                                    "InputEvent_AcceptTouchEvent_2",
1468                                    "InputEvent_AcceptTouchEvent_3",
1469                                    "InputEvent_AcceptTouchEvent_4"
1470                                  };
1471
1472   for (size_t i = 0; i < arraysize(positive_tests); ++i) {
1473     RenderViewHost* host = browser()->tab_strip_model()->
1474         GetActiveWebContents()->GetRenderViewHost();
1475     RunTest(positive_tests[i]);
1476     EXPECT_TRUE(content::RenderViewHostTester::HasTouchEventHandler(host));
1477   }
1478 }
1479
1480 IN_PROC_BROWSER_TEST_F(PPAPITest, View) {
1481   RunTest(LIST_TEST(View_SizeChange)
1482           LIST_TEST(View_ClipChange));
1483 }
1484 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, View) {
1485   RunTest(LIST_TEST(View_SizeChange)
1486           LIST_TEST(View_ClipChange));
1487 }
1488 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, View) {
1489   RunTestViaHTTP(LIST_TEST(View_SizeChange)
1490                  LIST_TEST(View_ClipChange));
1491 }
1492 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, MAYBE_GLIBC(View)) {
1493   RunTestViaHTTP(LIST_TEST(View_SizeChange)
1494                  LIST_TEST(View_ClipChange));
1495 }
1496 IN_PROC_BROWSER_TEST_F(PPAPINaClPNaClTest, View) {
1497   RunTestViaHTTP(LIST_TEST(View_SizeChange)
1498                  LIST_TEST(View_ClipChange));
1499 }
1500
1501 IN_PROC_BROWSER_TEST_F(PPAPITest, ResourceArray) {
1502   RunTest(LIST_TEST(ResourceArray_Basics)
1503           LIST_TEST(ResourceArray_OutOfRangeAccess)
1504           LIST_TEST(ResourceArray_EmptyArray)
1505           LIST_TEST(ResourceArray_InvalidElement));
1506 }
1507 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, ResourceArray) {
1508   RunTest(LIST_TEST(ResourceArray_Basics)
1509           LIST_TEST(ResourceArray_OutOfRangeAccess)
1510           LIST_TEST(ResourceArray_EmptyArray)
1511           LIST_TEST(ResourceArray_InvalidElement));
1512 }
1513
1514 IN_PROC_BROWSER_TEST_F(PPAPITest, FlashMessageLoop) {
1515   RunTest(LIST_TEST(FlashMessageLoop_Basics)
1516           LIST_TEST(FlashMessageLoop_RunWithoutQuit));
1517 }
1518 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, FlashMessageLoop) {
1519   RunTest(LIST_TEST(FlashMessageLoop_Basics)
1520           LIST_TEST(FlashMessageLoop_RunWithoutQuit));
1521 }
1522
1523 TEST_PPAPI_IN_PROCESS(MouseCursor)
1524 TEST_PPAPI_OUT_OF_PROCESS(MouseCursor)
1525 TEST_PPAPI_NACL(MouseCursor)
1526
1527 // PPB_NetworkProxy is not supported in-process.
1528 TEST_PPAPI_OUT_OF_PROCESS(NetworkProxy)
1529 TEST_PPAPI_NACL(NetworkProxy)
1530
1531 TEST_PPAPI_OUT_OF_PROCESS(TrueTypeFont)
1532 TEST_PPAPI_NACL(TrueTypeFont)
1533
1534 TEST_PPAPI_OUT_OF_PROCESS(VideoDestination)
1535 TEST_PPAPI_NACL(VideoDestination)
1536
1537 TEST_PPAPI_OUT_OF_PROCESS(VideoSource)
1538 TEST_PPAPI_NACL(VideoSource)
1539
1540 // PPB_Printing only implemented for out of process.
1541 TEST_PPAPI_OUT_OF_PROCESS(Printing)
1542
1543 // PPB_MessageLoop is only supported out-of-process.
1544 // TODO(dmichael): Enable for NaCl with the IPC proxy. crbug.com/116317
1545 TEST_PPAPI_OUT_OF_PROCESS(MessageLoop_Basics)
1546 // MessageLoop_Post starts a thread so only run it if pepper threads are
1547 // enabled.
1548 #ifdef ENABLE_PEPPER_THREADING
1549 TEST_PPAPI_OUT_OF_PROCESS(MessageLoop_Post)
1550 #endif
1551
1552 // Going forward, Flash APIs will only work out-of-process.
1553 TEST_PPAPI_OUT_OF_PROCESS(Flash_GetLocalTimeZoneOffset)
1554 TEST_PPAPI_OUT_OF_PROCESS(Flash_GetProxyForURL)
1555 TEST_PPAPI_OUT_OF_PROCESS(Flash_GetSetting)
1556 TEST_PPAPI_OUT_OF_PROCESS(Flash_SetCrashData)
1557 // http://crbug.com/176822
1558 #if !defined(OS_WIN)
1559 TEST_PPAPI_OUT_OF_PROCESS(FlashClipboard)
1560 #endif
1561 TEST_PPAPI_OUT_OF_PROCESS(FlashFile)
1562 // Mac/Aura reach NOTIMPLEMENTED/time out.
1563 // mac: http://crbug.com/96767
1564 // aura: http://crbug.com/104384
1565 #if defined(OS_MACOSX)
1566 #define MAYBE_FlashFullscreen DISABLED_FlashFullscreen
1567 #else
1568 #define MAYBE_FlashFullscreen FlashFullscreen
1569 #endif
1570 TEST_PPAPI_OUT_OF_PROCESS(MAYBE_FlashFullscreen)
1571
1572 TEST_PPAPI_OUT_OF_PROCESS(PDF)
1573
1574 // TODO(dalecurtis): Renable once the platform verification infobar has been
1575 // implemented; see http://crbug.com/270908
1576 // #if defined(OS_CHROMEOS)
1577 // TEST_PPAPI_OUT_OF_PROCESS(PlatformVerificationPrivate)
1578 // #endif
1579
1580 IN_PROC_BROWSER_TEST_F(OutOfProcessPPAPITest, FlashDRM) {
1581   RunTest(
1582 #if (defined(OS_WIN) && defined(ENABLE_RLZ)) || defined(OS_CHROMEOS)
1583           // Only implemented on Windows and ChromeOS currently.
1584           LIST_TEST(FlashDRM_GetDeviceID)
1585 #endif
1586           LIST_TEST(FlashDRM_GetHmonitor)
1587           LIST_TEST(FlashDRM_GetVoucherFile));
1588 }
1589
1590 TEST_PPAPI_IN_PROCESS(TalkPrivate)
1591 TEST_PPAPI_OUT_OF_PROCESS(TalkPrivate)
1592
1593 #if defined(OS_CHROMEOS)
1594 TEST_PPAPI_OUT_OF_PROCESS(OutputProtectionPrivate)
1595 #endif