media_canplaytype_browsertest.cc revision c5cede9ae108bb15f6b7a8aea21c7e1fefa2834c
1// Copyright 2014 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 <string>
6
7#include "content/browser/media/media_browsertest.h"
8#include "content/public/test/browser_test_utils.h"
9#include "content/public/test/content_browser_test_utils.h"
10#include "content/shell/browser/shell.h"
11
12const char* kProbably = "probably";
13const char* kMaybe = "maybe";
14const char* kNot = "";
15
16#if defined(USE_PROPRIETARY_CODECS)
17const char* kPropProbably = "probably";
18const char* kPropMaybe = "maybe";
19const char* kPropProbablyElseMaybe = "probably";
20#else
21const char* kPropProbably = "";
22const char* kPropMaybe = "";
23const char* kPropProbablyElseMaybe = "maybe";
24#endif  // USE_PROPRIETARY_CODECS
25
26// TODO(amogh.bihani): Change the opus tests when opus is  on
27// Android. (http://crbug.com/318436).
28#if !defined(OS_ANDROID)
29const char* kOggVideoProbably = "probably";
30const char* kOggVideoMaybe = "maybe";
31const char* kTheoraProbably = "probably";
32const char* kOpusProbably = "probably";
33const char* kOpusProbablyElseMaybe = "probably";
34const char* kHLSProbably = "";
35const char* kHLSMaybe = "";
36#if defined(USE_PROPRIETARY_CODECS)
37const char* kTheoraAndPropProbably = "probably";
38const char* kOpusAndPropProbably = "probably";
39#else
40const char* kTheoraAndPropProbably = "";
41const char* kOpusAndPropProbably = "";
42#endif  // USE_PROPRIETARY_CODECS
43#else
44const char* kOggVideoProbably = "";
45const char* kOggVideoMaybe = "";
46const char* kTheoraProbably = "maybe";
47const char* kOpusProbably = "";
48const char* kOpusProbablyElseMaybe = "maybe";
49const char* kTheoraAndPropProbably = "maybe";
50const char* kOpusAndPropProbably = "maybe";
51const char* kHLSProbably = "probably";
52const char* kHLSMaybe = "maybe";
53#endif  // !OS_ANDROID
54
55namespace content {
56
57class MediaCanPlayTypeTest : public MediaBrowserTest {
58public:
59  MediaCanPlayTypeTest() : url_("about:blank") { }
60
61  virtual void SetUpOnMainThread() OVERRIDE {
62    NavigateToURL(shell(), url_);
63  }
64
65  std::string CanPlay(const std::string& type) {
66    std::string command("document.createElement('video').canPlayType(");
67    command.append(type);
68    command.append(")");
69
70    std::string result;
71    EXPECT_TRUE(ExecuteScriptAndExtractString(
72        shell()->web_contents(),
73        "window.domAutomationController.send(" + command + ");",
74        &result));
75    return result;
76  }
77
78private:
79  GURL url_;
80  DISALLOW_COPY_AND_ASSIGN(MediaCanPlayTypeTest);
81};
82
83// TODO(amogh.bihani): http://crbug.com/357665
84#if !defined(OS_ANDROID)
85
86IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_wav) {
87  EXPECT_EQ(kMaybe, CanPlay("'audio/wav'"));
88  EXPECT_EQ(kProbably, CanPlay("'audio/wav; codecs=\"1\"'"));
89
90  EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"vorbis\"'"));
91  EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"theora\"'"));
92
93  EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"vp8\"'"));
94  EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"vp8.0\"'"));
95  EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"vp9\"'"));
96  EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"vp9.0\"'"));
97  EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"opus\"'"));
98
99  EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"avc1\"'"));
100  EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"avc3\"'"));
101  EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"mp4a\"'"));
102  EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"avc1.4D401E\"'"));
103  EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"avc3.64001F\"'"));
104  EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"mp4a.40.5\"'"));
105
106  EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"1, mp4a\"'"));
107  EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"1, opus\"'"));
108  EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"1, theora\"'"));
109  EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"1, vorbis\"'"));
110  EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"opus, vorbis\"'"));
111  EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"opus, theora\"'"));
112  EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"vorbis, mp4a\"'"));
113
114  EXPECT_EQ(kNot, CanPlay("'audio/wav; codecs=\"unknown\"'"));
115
116  EXPECT_EQ(kMaybe, CanPlay("'audio/x-wav'"));
117  EXPECT_EQ(kProbably, CanPlay("'audio/x-wav; codecs=\"1\"'"));
118
119  EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"vorbis\"'"));
120  EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"theora\"'"));
121
122  EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"vp8\"'"));
123  EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"vp8.0\"'"));
124  EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"vp9\"'"));
125  EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"vp9.0\"'"));
126  EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"opus\"'"));
127
128  EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"avc1\"'"));
129  EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"avc3\"'"));
130  EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"mp4a\"'"));
131  EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"avc1.4D401E\"'"));
132  EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"avc3.64001F\"'"));
133  EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"mp4a.40.5\"'"));
134
135  EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"1, mp4a\"'"));
136  EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"1, opus\"'"));
137  EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"1, theora\"'"));
138  EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"1, vorbis\"'"));
139  EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"opus, vorbis\"'"));
140  EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"opus, theora\"'"));
141  EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"vorbis, mp4a\"'"));
142
143  EXPECT_EQ(kNot, CanPlay("'audio/x-wav; codecs=\"unknown\"'"));
144}
145
146IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_webm) {
147  EXPECT_EQ(kMaybe, CanPlay("'video/webm'"));
148
149  EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp8\"'"));
150  EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp8.0\"'"));
151  EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp8, vorbis\"'"));
152  EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp8.0, vorbis\"'"));
153  EXPECT_EQ(kOpusProbably, CanPlay("'video/webm; codecs=\"vp8, opus\"'"));
154  EXPECT_EQ(kOpusProbably, CanPlay("'video/webm; codecs=\"vp8.0, opus\"'"));
155
156  EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp9\"'"));
157  EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp9.0\"'"));
158  EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp9, vorbis\"'"));
159  EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp9.0, vorbis\"'"));
160  EXPECT_EQ(kOpusProbably, CanPlay("'video/webm; codecs=\"vp9, opus\"'"));
161  EXPECT_EQ(kOpusProbably, CanPlay("'video/webm; codecs=\"vp9.0, opus\"'"));
162
163  EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp8, vp9\"'"));
164  EXPECT_EQ(kProbably, CanPlay("'video/webm; codecs=\"vp8.0, vp9.0\"'"));
165  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp8, theora\"'"));
166  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp8, avc1\"'"));
167  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp9, avc3\"'"));
168
169  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp8, 1\"'"));
170  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp8.0, 1\"'"));
171  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp8, mp4a.40.2\"'"));
172  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp8.0, mp4a.40.2\"'"));
173
174  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp9, 1\"'"));
175  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp9.0, 1\"'"));
176  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp9, mp4a.40.2\"'"));
177  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp9.0, mp4a.40.2\"'"));
178
179  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"theora\"'"));
180  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"1\"'"));
181
182  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"avc1\"'"));
183  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"avc3\"'"));
184  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"mp4a\"'"));
185  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"avc1.4D401E\"'"));
186  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"avc3.64001F\"'"));
187  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"mp4a.40.2\"'"));
188
189  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"VP8\"'"));
190  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"VP8.0\"'"));
191  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"VP9\"'"));
192  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"Vp9.0\"'"));
193
194  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"VP8, Vorbis\"'"));
195  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp8, Vorbis\"'"));
196  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"VP9, Opus\"'"));
197  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"vp9, Opus\"'"));
198
199  EXPECT_EQ(kNot, CanPlay("'video/webm; codecs=\"unknown\"'"));
200
201  EXPECT_EQ(kMaybe, CanPlay("'audio/webm'"));
202  EXPECT_EQ(kProbably, CanPlay("'audio/webm; codecs=\"vorbis\"'"));
203  EXPECT_EQ(kOpusProbably, CanPlay("'audio/webm; codecs=\"opus\"'"));
204  EXPECT_EQ(kOpusProbably, CanPlay("'audio/webm; codecs=\"opus, vorbis\"'"));
205
206  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp8\"'"));
207  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp8.0\"'"));
208  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp8, vorbis\"'"));
209  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp8.0, vorbis\"'"));
210  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp8, opus\"'"));
211  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp8.0, opus\"'"));
212
213  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp9\"'"));
214  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp9.0\"'"));
215  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp9, vorbis\"'"));
216  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp9.0, vorbis\"'"));
217  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp9, opus\"'"));
218  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vp9.0, opus\"'"));
219
220  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"1\"'"));
221  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"1, opus\"'"));
222  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"1, vorbis\"'"));
223  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"vorbis, mp4a\"'"));
224
225  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"avc1\"'"));
226  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"avc3\"'"));
227  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"mp4a\"'"));
228  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"avc1.4D401E\"'"));
229  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"avc3.64001F\"'"));
230  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"mp4a.40.2\"'"));
231
232  EXPECT_EQ(kNot, CanPlay("'audio/webm; codecs=\"unknown\"'"));
233}
234
235IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_ogg) {
236  EXPECT_EQ(kOggVideoMaybe, CanPlay("'video/ogg'"));
237  EXPECT_EQ(kOggVideoProbably, CanPlay("'video/ogg; codecs=\"theora\"'"));
238  EXPECT_EQ(kOggVideoProbably,
239            CanPlay("'video/ogg; codecs=\"theora, vorbis\"'"));
240  EXPECT_EQ(kOggVideoProbably,
241            CanPlay("'video/ogg; codecs=\"theora, opus\"'"));
242  EXPECT_EQ(kOggVideoProbably,
243            CanPlay("'video/ogg; codecs=\"opus, vorbis\"'"));
244
245  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"vp8\"'"));
246  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"vp8.0\"'"));
247  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"vp9\"'"));
248  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"vp9.0\"'"));
249
250  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc1\"'"));
251  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc3\"'"));
252  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"mp4a\"'"));
253  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc1, mp4a\"'"));
254  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc1, vorbis\"'"));
255  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc3, mp4a\"'"));
256  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc3, vorbis\"'"));
257  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc1, vp8\"'"));
258  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc3, vp9\"'"));
259  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc1, avc3\"'"));
260
261  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc1.4D401E\"'"));
262  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc3.64001F\"'"));
263  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"mp4a.4.02\"'"));
264  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc1.4D401E, mp4a.40.2\"'"));
265  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc3.64001F, mp4a.40.2\"'"));
266  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc1.4D401E, vorbis\"'"));
267  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"avc3.64001F, vorbis\"'"));
268
269  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"Theora\"'"));
270  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"Opus\"'"));
271  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"Vorbis\"'"));
272  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"Theora, Opus\"'"));
273  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"Theora, Vorbis\"'"));
274
275  EXPECT_EQ(kNot, CanPlay("'video/ogg; codecs=\"unknown\"'"));
276
277  EXPECT_EQ(kMaybe, CanPlay("'audio/ogg'"));
278  EXPECT_EQ(kProbably, CanPlay("'audio/ogg; codecs=\"vorbis\"'"));
279  EXPECT_EQ(kOpusProbablyElseMaybe, CanPlay("'audio/ogg; codecs=\"opus\"'"));
280  EXPECT_EQ(kOpusProbablyElseMaybe,
281            CanPlay("'audio/ogg; codecs=\"vorbis, opus\"'"));
282
283  EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"theora\"'"));
284  EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"theora, vorbis\"'"));
285  EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"theora, opus\"'"));
286  EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"opus, 1\"'"));
287  EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"vorbis, 1\"'"));
288
289  EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"vp8\"'"));
290  EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"vp8.0\"'"));
291  EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"vp9\"'"));
292  EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"vp9.0\"'"));
293
294  EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"avc1\"'"));
295  EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"avc3\"'"));
296  EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"mp4a\"'"));
297  EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"avc1.4D401E\"'"));
298  EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"avc3.64001F\"'"));
299  EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"mp4a.40.2\"'"));
300
301  EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"Theora\"'"));
302  EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"Opus\"'"));
303  EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"Vorbis\"'"));
304  EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"Theora, Vorbis\"'"));
305  EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"Theora, Opus\"'"));
306
307  EXPECT_EQ(kNot, CanPlay("'audio/ogg; codecs=\"unknown\"'"));
308
309  EXPECT_EQ(kMaybe, CanPlay("'application/ogg'"));
310  EXPECT_EQ(kProbably, CanPlay("'application/ogg; codecs=\"vorbis\"'"));
311  EXPECT_EQ(kTheoraProbably, CanPlay("'application/ogg; codecs=\"theora\"'"));
312  EXPECT_EQ(kOpusProbablyElseMaybe,
313            CanPlay("'application/ogg; codecs=\"opus\"'"));
314  EXPECT_EQ(kTheoraProbably,
315            CanPlay("'application/ogg; codecs=\"theora, vorbis\"'"));
316  EXPECT_EQ(kTheoraProbably,
317            CanPlay("'application/ogg; codecs=\"theora, opus\"'"));
318  EXPECT_EQ(kOpusProbablyElseMaybe,
319            CanPlay("'application/ogg; codecs=\"opus, vorbis\"'"));
320
321  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"vp8\"'"));
322  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"vp8.0\"'"));
323  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"vp9\"'"));
324  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"vp9.0\"'"));
325
326  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc1\"'"));
327  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc3\"'"));
328  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"mp4a\"'"));
329  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc1, mp4a\"'"));
330  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc1, vorbis\"'"));
331  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc3, mp4a\"'"));
332  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc3, vorbis\"'"));
333  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc1, vp8\"'"));
334  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc3, vp9\"'"));
335  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc1, avc3\"'"));
336
337  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc1.4D401E\"'"));
338  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc3.64001F\"'"));
339  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"mp4a.40.2\"'"));
340  EXPECT_EQ(kNot,
341            CanPlay("'application/ogg; codecs=\"avc1.4D401E, mp4a.40.2\"'"));
342  EXPECT_EQ(kNot,
343            CanPlay("'application/ogg; codecs=\"avc3.64001F, mp4a.40.2\"'"));
344  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc1.4D401E, vorbis\"'"));
345  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"avc3.64001F, vorbis\"'"));
346
347  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"Theora\"'"));
348  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"Vorbis\"'"));
349  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"Opus\"'"));
350  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"Theora, Vorbis\"'"));
351  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"Theora, Opus\"'"));
352
353  EXPECT_EQ(kNot, CanPlay("'application/ogg; codecs=\"unknown\"'"));
354}
355
356IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_mp3) {
357  EXPECT_EQ(kNot, CanPlay("'video/mp3'"));
358  EXPECT_EQ(kNot, CanPlay("'video/mpeg'"));
359  EXPECT_EQ(kNot, CanPlay("'video/x-mp3'"));
360
361  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mpeg'"));
362
363  // audio/mpeg and audio/mp3 do not allow any codecs parameter
364  // TODO(amogh.bihani): Change these tests when bug 53193 is fixed.
365  // http://crbug.com/53193 ----------------------------------------------------
366  EXPECT_EQ(kPropProbably, CanPlay("'audio/mpeg; codecs=\"avc1\"'"));
367  EXPECT_EQ(kPropProbably, CanPlay("'audio/mpeg; codecs=\"avc3\"'"));
368
369  EXPECT_EQ(kPropProbably, CanPlay("'audio/mpeg; codecs=\"avc1.4D401E\"'"));
370  EXPECT_EQ(kPropProbably, CanPlay("'audio/mpeg; codecs=\"avc3.64001F\"'"));
371
372  EXPECT_EQ(kPropProbably, CanPlay("'audio/mpeg; codecs=\"mp4a\"'"));
373  EXPECT_EQ(kPropProbably, CanPlay("'audio/mpeg; codecs=\"mp4a.40.2\"'"));
374
375  EXPECT_EQ(kPropProbably, CanPlay("'audio/mpeg; codecs=\"avc1.unknown\"'"));
376  EXPECT_EQ(kPropProbably, CanPlay("'audio/mpeg; codecs=\"avc3.unknown\"'"));
377  EXPECT_EQ(kPropProbably, CanPlay("'audio/mpeg; codecs=\"mp4a.unknown\"'"));
378
379  EXPECT_EQ(kPropProbably, CanPlay("'audio/mpeg; codecs=\"avc1.\"'"));
380  EXPECT_EQ(kPropProbably, CanPlay("'audio/mpeg; codecs=\"avc3.\"'"));
381  EXPECT_EQ(kPropProbably, CanPlay("'audio/mpeg; codecs=\"mp4a.\"'"));
382
383  EXPECT_EQ(kPropProbably, CanPlay("'audio/mpeg; codecs=\"vorbis\"'"));
384  EXPECT_EQ(kOpusAndPropProbably, CanPlay("'audio/mpeg; codecs=\"opus\"'"));
385  EXPECT_EQ(kTheoraAndPropProbably, CanPlay("'audio/mpeg; codecs=\"theora\"'"));
386  EXPECT_EQ(kPropProbably, CanPlay("'audio/mpeg; codecs=\"vp8\"'"));
387  EXPECT_EQ(kPropProbably, CanPlay("'audio/mpeg; codecs=\"vp8.0\"'"));
388  EXPECT_EQ(kPropProbably, CanPlay("'audio/mpeg; codecs=\"vp9\"'"));
389  EXPECT_EQ(kPropProbably, CanPlay("'audio/mpeg; codecs=\"vp9.0\"'"));
390
391  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mpeg; codecs=\"AVC1\"'"));
392  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mpeg; codecs=\"AVC1.4d401e\"'"));
393  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mpeg; codecs=\"AVC3\"'"));
394  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mpeg; codecs=\"AVC3.64001f\"'"));
395  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mpeg; codecs=\"MP4A\"'"));
396  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mpeg; codecs=\"MP4A.40.2\"'"));
397  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mpeg; codecs=\"AVC1, MP4\"'"));
398  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mpeg; codecs=\"AVC3, MP4\"'"));
399  EXPECT_EQ(kPropMaybe,
400            CanPlay("'audio/mpeg; codecs=\", AVC1.4D401E, MP4.40.2\"'"));
401  EXPECT_EQ(kPropMaybe,
402            CanPlay("'audio/mpeg; codecs=\", AVC3.64001F, MP4.40.2\"'"));
403
404  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mpeg; codecs=\"avc2\"'"));
405  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mpeg; codecs=\"avc4\"'"));
406
407  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mpeg; codecs=\"avc1x\"'"));
408  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mpeg; codecs=\"avc3x\"'"));
409  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mpeg; codecs=\"mp4ax\"'"));
410
411  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mpeg; codecs=\"unknown\"'"));
412  // ---------------------------------------------------------------------------
413
414  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp3'"));
415
416  // TODO(amogh.bihani): Change these tests when bug 53193 is fixed.
417  // http://crbug.com/53193 ----------------------------------------------------
418  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp3; codecs=\"avc1\"'"));
419  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp3; codecs=\"avc3\"'"));
420
421  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp3; codecs=\"avc1.4D401E\"'"));
422  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp3; codecs=\"avc3.64001F\"'"));
423
424  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp3; codecs=\"mp4a\"'"));
425  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp3; codecs=\"mp4a.40.2\"'"));
426
427  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp3; codecs=\"avc1.unknown\"'"));
428  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp3; codecs=\"avc3.unknown\"'"));
429  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp3; codecs=\"mp4a.unknown\"'"));
430
431  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp3; codecs=\"avc1.\"'"));
432  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp3; codecs=\"avc3.\"'"));
433  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp3; codecs=\"mp4a.\"'"));
434
435  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp3; codecs=\"vorbis\"'"));
436  EXPECT_EQ(kOpusAndPropProbably, CanPlay("'audio/mp3; codecs=\"opus\"'"));
437  EXPECT_EQ(kTheoraAndPropProbably, CanPlay("'audio/mp3; codecs=\"theora\"'"));
438  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp3; codecs=\"vp8\"'"));
439  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp3; codecs=\"vp8.0\"'"));
440  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp3; codecs=\"vp9\"'"));
441  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp3; codecs=\"vp9.0\"'"));
442
443  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp3; codecs=\"AVC1\"'"));
444  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp3; codecs=\"AVC1.4d401e\"'"));
445  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp3; codecs=\"AVC3\"'"));
446  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp3; codecs=\"AVC3.64001f\"'"));
447  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp3; codecs=\"MP4A\"'"));
448  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp3; codecs=\"MP4A.40.2\"'"));
449  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp3; codecs=\"AVC1, MP4\"'"));
450  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp3; codecs=\"AVC3, MP4\"'"));
451  EXPECT_EQ(kPropMaybe,
452            CanPlay("'audio/mp3; codecs=\", AVC1.4D401E, MP4.40.2\"'"));
453  EXPECT_EQ(kPropMaybe,
454            CanPlay("'audio/mp3; codecs=\", AVC3.64001F, MP4.40.2\"'"));
455
456  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp3; codecs=\"avc2\"'"));
457  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp3; codecs=\"avc4\"'"));
458
459  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp3; codecs=\"avc1x\"'"));
460  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp3; codecs=\"avc3x\"'"));
461  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp3; codecs=\"mp4ax\"'"));
462
463  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp3; codecs=\"unknown\"'"));
464  // ---------------------------------------------------------------------------
465
466  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-mp3'"));
467
468  // TODO(amogh.bihani): Change these tests when bug 53193 is fixed.
469  // http://crbug.com/53193 ----------------------------------------------------
470  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-mp3; codecs=\"avc1\"'"));
471  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-mp3; codecs=\"avc3\"'"));
472
473  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-mp3; codecs=\"avc1.4D401E\"'"));
474  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-mp3; codecs=\"avc3.64001F\"'"));
475
476  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-mp3; codecs=\"mp4a\"'"));
477  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-mp3; codecs=\"mp4a.40.2\"'"));
478
479  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-mp3; codecs=\"avc1.unknown\"'"));
480  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-mp3; codecs=\"avc3.unknown\"'"));
481  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-mp3; codecs=\"mp4a.unknown\"'"));
482
483  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-mp3; codecs=\"vorbis\"'"));
484  EXPECT_EQ(kOpusAndPropProbably, CanPlay("'audio/x-mp3; codecs=\"opus\"'"));
485  EXPECT_EQ(kTheoraAndPropProbably,
486            CanPlay("'audio/x-mp3; codecs=\"theora\"'"));
487  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-mp3; codecs=\"vp8\"'"));
488  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-mp3; codecs=\"vp8.0\"'"));
489  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-mp3; codecs=\"vp9\"'"));
490  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-mp3; codecs=\"vp9.0\"'"));
491
492  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-mp3; codecs=\"AVC1\"'"));
493  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-mp3; codecs=\"AVC1.4d401e\"'"));
494  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-mp3; codecs=\"AVC3\"'"));
495  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-mp3; codecs=\"AVC3.64001f\"'"));
496  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-mp3; codecs=\"MP4A\"'"));
497  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-mp3; codecs=\"MP4A.40.2\"'"));
498  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-mp3; codecs=\"AVC1, MP4\"'"));
499  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-mp3; codecs=\"AVC3, MP4\"'"));
500  EXPECT_EQ(kPropMaybe,
501            CanPlay("'audio/x-mp3; codecs=\", AVC1.4D401E, MP4.40.2\"'"));
502  EXPECT_EQ(kPropMaybe,
503            CanPlay("'audio/x-mp3; codecs=\", AVC3.64001F, MP4.40.2\"'"));
504
505  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-mp3; codecs=\"avc2\"'"));
506  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-mp3; codecs=\"avc4\"'"));
507
508  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-mp3; codecs=\"avc1x\"'"));
509  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-mp3; codecs=\"avc3x\"'"));
510  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-mp3; codecs=\"mp4ax\"'"));
511
512  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-mp3; codecs=\"unknown\"'"));
513  // ---------------------------------------------------------------------------
514}
515
516IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_mp4) {
517  EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4'"));
518
519  EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc1\"'"));
520  EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc3\"'"));
521  EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"mp4a\"'"));
522  EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc1, mp4a\"'"));
523  EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc3, mp4a\"'"));
524  EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc1, avc3\"'"));
525
526  EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc1.4D401E\"'"));
527  EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc3.64001F\"'"));
528  EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"mp4a.40.2\"'"));
529  EXPECT_EQ(kPropProbably,
530            CanPlay("'video/mp4; codecs=\"avc1.4D401E, mp4a.40.2\"'"));
531  EXPECT_EQ(kPropProbably,
532            CanPlay("'video/mp4; codecs=\"avc3.64001F, mp4a.40.5\"'"));
533
534  // TODO(amogh.bihani): Change these tests when bug 53193 is fixed.
535  // http://crbug.com/53193 ----------------------------------------------------
536  EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc1.unknown\"'"));
537  EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc3.unknown\"'"));
538  EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"mp4a.unknown\"'"));
539
540  EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc1.\"'"));
541  EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc3.\"'"));
542  EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"mp4a.\"'"));
543
544  EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"vp8\"'"));
545  EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"vp9\"'"));
546
547  EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"vorbis\"'"));
548  EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc1, vorbis\"'"));
549  EXPECT_EQ(kPropProbably, CanPlay("'video/mp4; codecs=\"avc3, vorbis\"'"));
550  EXPECT_EQ(kPropProbably,
551            CanPlay("'video/mp4; codecs=\"avc1.4D401E, vorbis\"'"));
552  EXPECT_EQ(kPropProbably,
553            CanPlay("'video/mp4; codecs=\"avc3.64001F, vorbis\"'"));
554
555  EXPECT_EQ(kOpusAndPropProbably, CanPlay("'video/mp4; codecs=\"opus\"'"));
556  EXPECT_EQ(kOpusAndPropProbably, CanPlay("'video/mp4; codecs=\"vp8, opus\"'"));
557  EXPECT_EQ(kOpusAndPropProbably, CanPlay("'video/mp4; codecs=\"vp9, opus\"'"));
558
559  EXPECT_EQ(kTheoraAndPropProbably, CanPlay("'video/mp4; codecs=\"theora\"'"));
560  EXPECT_EQ(kTheoraAndPropProbably,
561            CanPlay("'video/mp4; codecs=\"theora, vorbis\"'"));
562  EXPECT_EQ(kTheoraAndPropProbably,
563            CanPlay("'video/mp4; codecs=\"theora, mp4a\"'"));
564  EXPECT_EQ(kTheoraAndPropProbably,
565            CanPlay("'video/mp4; codecs=\"theora, mp4a.40.2\"'"));
566  EXPECT_EQ(kTheoraAndPropProbably,
567            CanPlay("'video/mp4; codecs=\"theora, avc1\"'"));
568  EXPECT_EQ(kTheoraAndPropProbably,
569            CanPlay("'video/mp4; codecs=\"theora, avc3\"'"));
570  EXPECT_EQ(kTheoraAndPropProbably,
571            CanPlay("'video/mp4; codecs=\"theora, avc1.4D401E\"'"));
572  EXPECT_EQ(kTheoraAndPropProbably,
573            CanPlay("'video/mp4; codecs=\"theora, avc3.64001F\"'"));
574
575  EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"AVC1\"'"));
576  EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"AVC1.4d401e\"'"));
577  EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"AVC3\"'"));
578  EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"AVC3.64001f\"'"));
579  EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"MP4A\"'"));
580  EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"MP4A.40.2\"'"));
581  EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"AVC1, MP4\"'"));
582  EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"AVC3, MP4\"'"));
583  EXPECT_EQ(kPropMaybe,
584            CanPlay("'video/mp4; codecs=\", AVC1.4D401E, MP4.40.2\"'"));
585  EXPECT_EQ(kPropMaybe,
586            CanPlay("'video/mp4; codecs=\", AVC3.64001F, MP4.40.2\"'"));
587
588  EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc2\"'"));
589  EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc4\"'"));
590
591  EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc1x\"'"));
592  EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"avc3x\"'"));
593  EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"mp4ax\"'"));
594
595  EXPECT_EQ(kPropMaybe, CanPlay("'video/mp4; codecs=\"unknown\"'"));
596  // ---------------------------------------------------------------------------
597
598  EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v'"));
599
600  EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc1\"'"));
601  EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc3\"'"));
602  EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"mp4a\"'"));
603  EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc1, mp4a\"'"));
604  EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc3, mp4a\"'"));
605  EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc1, avc3\"'"));
606
607  EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc1.4D401E\"'"));
608  EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc3.64001F\"'"));
609  EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"mp4a.40.2\"'"));
610  EXPECT_EQ(kPropProbably,
611            CanPlay("'video/x-m4v; codecs=\"avc1.4D401E, mp4a.40.2\"'"));
612  EXPECT_EQ(kPropProbably,
613            CanPlay("'video/x-m4v; codecs=\"avc3.64001F, mp4a.40.5\"'"));
614
615  // TODO(amogh.bihani): Change these tests when bug 53193 is fixed.
616  // http://crbug.com/53193 ----------------------------------------------------
617  EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc1.unknown\"'"));
618  EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc3.unknown\"'"));
619  EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"mp4a.unknown\"'"));
620
621  EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc1.\"'"));
622  EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc3.\"'"));
623  EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"mp4a.\"'"));
624
625  EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"vp8\"'"));
626  EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"vp9\"'"));
627
628  EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"vorbis\"'"));
629  EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc1, vorbis\"'"));
630  EXPECT_EQ(kPropProbably, CanPlay("'video/x-m4v; codecs=\"avc3, vorbis\"'"));
631  EXPECT_EQ(kPropProbably,
632            CanPlay("'video/x-m4v; codecs=\"avc1.4D401E, vorbis\"'"));
633  EXPECT_EQ(kPropProbably,
634            CanPlay("'video/x-m4v; codecs=\"avc3.64001F, vorbis\"'"));
635
636  EXPECT_EQ(kOpusAndPropProbably, CanPlay("'video/x-m4v; codecs=\"opus\"'"));
637  EXPECT_EQ(kOpusAndPropProbably,
638            CanPlay("'video/x-m4v; codecs=\"vp8, opus\"'"));
639  EXPECT_EQ(kOpusAndPropProbably,
640            CanPlay("'video/x-m4v; codecs=\"vp9, opus\"'"));
641
642  EXPECT_EQ(kTheoraAndPropProbably,
643            CanPlay("'video/x-m4v; codecs=\"theora\"'"));
644  EXPECT_EQ(kTheoraAndPropProbably,
645            CanPlay("'video/x-m4v; codecs=\"theora, vorbis\"'"));
646  EXPECT_EQ(kTheoraAndPropProbably,
647            CanPlay("'video/x-m4v; codecs=\"theora, mp4a\"'"));
648  EXPECT_EQ(kTheoraAndPropProbably,
649            CanPlay("'video/x-m4v; codecs=\"theora, mp4a.40.2\"'"));
650  EXPECT_EQ(kTheoraAndPropProbably,
651            CanPlay("'video/x-m4v; codecs=\"theora, avc1\"'"));
652  EXPECT_EQ(kTheoraAndPropProbably,
653            CanPlay("'video/x-m4v; codecs=\"theora, avc3\"'"));
654  EXPECT_EQ(kTheoraAndPropProbably,
655            CanPlay("'video/x-m4v; codecs=\"theora, avc1.4D401E\"'"));
656  EXPECT_EQ(kTheoraAndPropProbably,
657            CanPlay("'video/x-m4v; codecs=\"theora, avc3.64001F\"'"));
658
659  EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"AVC1\"'"));
660  EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"AVC1.4d401e\"'"));
661  EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"AVC3\"'"));
662  EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"AVC3.64001f\"'"));
663  EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"MP4A\"'"));
664  EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"MP4A.40.2\"'"));
665  EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"AVC1, MP4\"'"));
666  EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"AVC3, MP4\"'"));
667  EXPECT_EQ(kPropMaybe,
668            CanPlay("'video/x-m4v; codecs=\", AVC1.4D401E, MP4.40.2\"'"));
669  EXPECT_EQ(kPropMaybe,
670            CanPlay("'video/x-m4v; codecs=\", AVC3.64001F, MP4.40.2\"'"));
671
672  EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc2\"'"));
673  EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc4\"'"));
674
675  EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc1x\"'"));
676  EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"avc3x\"'"));
677  EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"mp4ax\"'"));
678
679  EXPECT_EQ(kPropMaybe, CanPlay("'video/x-m4v; codecs=\"unknown\"'"));
680  // ---------------------------------------------------------------------------
681
682  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4'"));
683  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a\"'"));
684  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.40.2\"'"));
685
686  // TODO(amogh.bihani): Change these tests when bug 53193 is fixed.
687  // http://crbug.com/53193 ----------------------------------------------------
688  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc1\"'"));
689  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc3\"'"));
690  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc1, mp4a\"'"));
691  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc3, mp4a\"'"));
692
693  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc1.4D401E\"'"));
694  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc3.64001F\"'"));
695
696  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc1.unknown\"'"));
697  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc3.unknown\"'"));
698  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.unknown\"'"));
699
700  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc1.\"'"));
701  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc3.\"'"));
702  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"mp4a.\"'"));
703
704  EXPECT_EQ(kPropProbably,
705            CanPlay("'audio/mp4; codecs=\"avc1.4D401E, mp4a.40.2\"'"));
706  EXPECT_EQ(kPropProbably,
707            CanPlay("'audio/mp4; codecs=\"avc3.64001F mp4a.40.2\"'"));
708  EXPECT_EQ(kPropProbably,
709            CanPlay("'audio/mp4; codecs=\"mp4a, vorbis\"'"));
710  EXPECT_EQ(kPropProbably,
711            CanPlay("'audio/mp4; codecs=\"mp4a.40.2, vorbis\"'"));
712
713  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"vorbis\"'"));
714
715  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"vp8\"'"));
716  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"vp8.0\"'"));
717  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"vp9\"'"));
718  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"vp9.0\"'"));
719
720  EXPECT_EQ(kOpusAndPropProbably, CanPlay("'audio/mp4; codecs=\"opus\"'"));
721  EXPECT_EQ(kOpusAndPropProbably,
722            CanPlay("'audio/mp4; codecs=\"mp4a, opus\"'"));
723  EXPECT_EQ(kOpusAndPropProbably,
724            CanPlay("'audio/mp4; codecs=\"vorbis, opus\"'"));
725  EXPECT_EQ(kOpusAndPropProbably, CanPlay("'audio/mp4; codecs=\"vp8, opus\"'"));
726  EXPECT_EQ(kOpusAndPropProbably, CanPlay("'audio/mp4; codecs=\"vp9, opus\"'"));
727
728  EXPECT_EQ(kTheoraAndPropProbably, CanPlay("'audio/mp4; codecs=\"theora\"'"));
729  EXPECT_EQ(kTheoraAndPropProbably,
730            CanPlay("'audio/mp4; codecs=\"theora, vorbis\"'"));
731  EXPECT_EQ(kTheoraAndPropProbably,
732            CanPlay("'audio/mp4; codecs=\"theora, mp4a\"'"));
733  EXPECT_EQ(kPropProbably, CanPlay("'audio/mp4; codecs=\"avc1, vorbis\"'"));
734
735  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"AVC1\"'"));
736  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"AVC1.4d401e\"'"));
737  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"AVC3\"'"));
738  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"AVC3.64001f\"'"));
739  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"MP4A\"'"));
740  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"MP4A.40.2\"'"));
741  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"AVC1, MP4\"'"));
742  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"AVC3, MP4\"'"));
743  EXPECT_EQ(kPropMaybe,
744            CanPlay("'audio/mp4; codecs=\", AVC1.4D401E, MP4.40.2\"'"));
745  EXPECT_EQ(kPropMaybe,
746            CanPlay("'audio/mp4; codecs=\", AVC3.64001F, MP4.40.2\"'"));
747
748  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"avc2\"'"));
749  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"avc4\"'"));
750
751  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"avc1x\"'"));
752  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"avc3x\"'"));
753  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"mp4ax\"'"));
754
755  EXPECT_EQ(kPropMaybe, CanPlay("'audio/mp4; codecs=\"unknown\"'"));
756  // ---------------------------------------------------------------------------
757
758  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a'"));
759  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a\"'"));
760  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.40.2\"'"));
761
762  // TODO(amogh.bihani): Change these tests when bug 53193 is fixed.
763  // http://crbug.com/53193 ----------------------------------------------------
764  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc1\"'"));
765  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc3\"'"));
766  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc1, mp4a\"'"));
767  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc3, mp4a\"'"));
768
769  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc1.4D401E\"'"));
770  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc3.64001F\"'"));
771
772  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc1.unknown\"'"));
773  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc3.unknown\"'"));
774  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.unknown\"'"));
775
776  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc1.\"'"));
777  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc3.\"'"));
778  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"mp4a.\"'"));
779
780  EXPECT_EQ(kPropProbably,
781            CanPlay("'audio/x-m4a; codecs=\"avc1.4D401E, mp4a.40.2\"'"));
782  EXPECT_EQ(kPropProbably,
783            CanPlay("'audio/x-m4a; codecs=\"avc3.64001F mp4a.40.2\"'"));
784  EXPECT_EQ(kPropProbably,
785            CanPlay("'audio/x-m4a; codecs=\"mp4a, vorbis\"'"));
786  EXPECT_EQ(kPropProbably,
787            CanPlay("'audio/x-m4a; codecs=\"mp4a.40.2, vorbis\"'"));
788
789  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"vorbis\"'"));
790
791  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"vp8\"'"));
792  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"vp8.0\"'"));
793  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"vp9\"'"));
794  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"vp9.0\"'"));
795
796  EXPECT_EQ(kOpusAndPropProbably, CanPlay("'audio/x-m4a; codecs=\"opus\"'"));
797  EXPECT_EQ(kOpusAndPropProbably,
798            CanPlay("'audio/x-m4a; codecs=\"mp4a, opus\"'"));
799  EXPECT_EQ(kOpusAndPropProbably,
800            CanPlay("'audio/x-m4a; codecs=\"vorbis, opus\"'"));
801  EXPECT_EQ(kOpusAndPropProbably,
802            CanPlay("'audio/x-m4a; codecs=\"vp8, opus\"'"));
803  EXPECT_EQ(kOpusAndPropProbably,
804            CanPlay("'audio/x-m4a; codecs=\"vp9, opus\"'"));
805
806  EXPECT_EQ(kTheoraAndPropProbably,
807            CanPlay("'audio/x-m4a; codecs=\"theora\"'"));
808  EXPECT_EQ(kTheoraAndPropProbably,
809            CanPlay("'audio/x-m4a; codecs=\"theora, vorbis\"'"));
810  EXPECT_EQ(kTheoraAndPropProbably,
811            CanPlay("'audio/x-m4a; codecs=\"theora, mp4a\"'"));
812  EXPECT_EQ(kPropProbably, CanPlay("'audio/x-m4a; codecs=\"avc1, vorbis\"'"));
813
814  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"AVC1\"'"));
815  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"AVC1.4d401e\"'"));
816  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"AVC3\"'"));
817  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"AVC3.64001f\"'"));
818  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"MP4A\"'"));
819  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"MP4A.40.2\"'"));
820  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"AVC1, MP4\"'"));
821  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"AVC3, MP4\"'"));
822  EXPECT_EQ(kPropMaybe,
823            CanPlay("'audio/x-m4a; codecs=\", AVC1.4D401E, MP4.40.2\"'"));
824  EXPECT_EQ(kPropMaybe,
825            CanPlay("'audio/x-m4a; codecs=\", AVC3.64001F, MP4.40.2\"'"));
826
827  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"avc2\"'"));
828  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"avc4\"'"));
829
830  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"avc1x\"'"));
831  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"avc3x\"'"));
832  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"mp4ax\"'"));
833
834  EXPECT_EQ(kPropMaybe, CanPlay("'audio/x-m4a; codecs=\"unknown\"'"));
835  // ---------------------------------------------------------------------------
836}
837
838IN_PROC_BROWSER_TEST_F(MediaCanPlayTypeTest, CodecSupportTest_HLS) {
839  EXPECT_EQ(kHLSMaybe, CanPlay("'application/x-mpegurl'"));
840
841  EXPECT_EQ(kHLSProbably,
842            CanPlay("'application/x-mpegurl; codecs=\"avc1\"'"));
843  EXPECT_EQ(kHLSProbably,
844            CanPlay("'application/x-mpegurl; codecs=\"avc3\"'"));
845  EXPECT_EQ(kHLSProbably,
846            CanPlay("'application/x-mpegurl; codecs=\"mp4a\"'"));
847  EXPECT_EQ(kHLSProbably,
848            CanPlay("'application/x-mpegurl; codecs=\"avc1, mp4a\"'"));
849  EXPECT_EQ(kHLSProbably,
850            CanPlay("'application/x-mpegurl; codecs=\"avc3, mp4a\"'"));
851
852  EXPECT_EQ(kHLSProbably,
853            CanPlay("'application/x-mpegurl; codecs=\"avc1.4D401E\"'"));
854  EXPECT_EQ(kHLSProbably,
855            CanPlay("'application/x-mpegurl; codecs=\"avc3.64001F\"'"));
856  EXPECT_EQ(kHLSProbably,
857            CanPlay("'application/x-mpegurl; codecs=\"mp4a.40.2\"'"));
858  EXPECT_EQ(kHLSProbably,
859        CanPlay("'application/x-mpegurl; codecs=\"avc1.4D401E, mp4a.40.2\"'"));
860  EXPECT_EQ(kHLSProbably,
861        CanPlay("'application/x-mpegurl; codecs=\"avc3.64001F, mp4a.40.5\"'"));
862
863  // TODO(amogh.bihani): Change these tests when bug 53193 is fixed.
864  // http://crbug.com/53193 ----------------------------------------------------
865  EXPECT_EQ(kHLSProbably,
866            CanPlay("'application/x-mpegurl; codecs=\"avc1.unknown\"'"));
867  EXPECT_EQ(kHLSProbably,
868            CanPlay("'application/x-mpegurl; codecs=\"avc3.unknown\"'"));
869  EXPECT_EQ(kHLSProbably,
870            CanPlay("'application/x-mpegurl; codecs=\"mp4a.unknown\"'"));
871
872  EXPECT_EQ(kHLSProbably, CanPlay("'application/x-mpegurl; codecs=\"avc1.\"'"));
873  EXPECT_EQ(kHLSProbably, CanPlay("'application/x-mpegurl; codecs=\"avc3.\"'"));
874  EXPECT_EQ(kHLSProbably, CanPlay("'application/x-mpegurl; codecs=\"mp4a.\"'"));
875
876  EXPECT_EQ(kHLSProbably, CanPlay("'application/x-mpegurl; codecs=\"vp8\"'"));
877  EXPECT_EQ(kHLSProbably, CanPlay("'application/x-mpegurl; codecs=\"vp9\"'"));
878  EXPECT_EQ(kHLSProbably,
879            CanPlay("'application/x-mpegurl; codecs=\"vorbis\"'"));
880
881  EXPECT_EQ(kHLSProbably,
882            CanPlay("'application/x-mpegurl; codecs=\"avc1, vorbis\"'"));
883  EXPECT_EQ(kHLSProbably,
884            CanPlay("'application/x-mpegurl; codecs=\"avc3, vorbis\"'"));
885  EXPECT_EQ(kHLSProbably,
886            CanPlay("'application/x-mpegurl; codecs=\"avc1.4D401E, vorbis\"'"));
887  EXPECT_EQ(kHLSProbably,
888            CanPlay("'application/x-mpegurl; codecs=\"avc3.64001F, vorbis\"'"));
889
890  EXPECT_EQ(kHLSMaybe, CanPlay("'application/x-mpegurl; codecs=\"opus\"'"));
891  EXPECT_EQ(kHLSMaybe,
892            CanPlay("'application/x-mpegurl; codecs=\"vp8, opus\"'"));
893  EXPECT_EQ(kHLSMaybe,
894            CanPlay("'application/x-mpegurl; codecs=\"vp9, opus\"'"));
895
896  EXPECT_EQ(kHLSMaybe,
897            CanPlay("'application/x-mpegurl; codecs=\"theora\"'"));
898  EXPECT_EQ(kHLSMaybe,
899            CanPlay("'application/x-mpegurl; codecs=\"theora, vorbis\"'"));
900  EXPECT_EQ(kHLSMaybe,
901            CanPlay("'application/x-mpegurl; codecs=\"theora, mp4a\"'"));
902  EXPECT_EQ(kHLSMaybe,
903            CanPlay("'application/x-mpegurl; codecs=\"theora, mp4a.40.2\"'"));
904
905  EXPECT_EQ(kHLSMaybe, CanPlay("'application/x-mpegurl; codecs=\"AVC1\"'"));
906  EXPECT_EQ(kHLSMaybe,
907            CanPlay("'application/x-mpegurl; codecs=\"AVC1.4d401e\"'"));
908  EXPECT_EQ(kHLSMaybe, CanPlay("'application/x-mpegurl; codecs=\"AVC3\"'"));
909  EXPECT_EQ(kHLSMaybe,
910            CanPlay("'application/x-mpegurl; codecs=\"AVC3.64001f\"'"));
911  EXPECT_EQ(kHLSMaybe, CanPlay("'application/x-mpegurl; codecs=\"MP4A\"'"));
912  EXPECT_EQ(kHLSMaybe,
913            CanPlay("'application/x-mpegurl; codecs=\"MP4A.40.2\"'"));
914  EXPECT_EQ(kHLSMaybe,
915            CanPlay("'application/x-mpegurl; codecs=\"AVC1, MP4\"'"));
916  EXPECT_EQ(kHLSMaybe,
917            CanPlay("'application/x-mpegurl; codecs=\"AVC3, MP4\"'"));
918  EXPECT_EQ(kHLSMaybe,
919        CanPlay("'application/x-mpegurl; codecs=\", AVC1.4D401E, MP4.40.2\"'"));
920  EXPECT_EQ(kHLSMaybe,
921        CanPlay("'application/x-mpegurl; codecs=\", AVC3.64001F, MP4.40.2\"'"));
922
923  EXPECT_EQ(kHLSMaybe,
924            CanPlay("'application/x-mpegurl; codecs=\"avc2\"'"));
925  EXPECT_EQ(kHLSMaybe,
926            CanPlay("'application/x-mpegurl; codecs=\"avc4\"'"));
927
928  EXPECT_EQ(kHLSMaybe,
929            CanPlay("'application/x-mpegurl; codecs=\"avc1x\"'"));
930  EXPECT_EQ(kHLSMaybe,
931            CanPlay("'application/x-mpegurl; codecs=\"avc3x\"'"));
932  EXPECT_EQ(kHLSMaybe,
933            CanPlay("'application/x-mpegurl; codecs=\"mp4ax\"'"));
934
935  EXPECT_EQ(kHLSMaybe,
936            CanPlay("'application/x-mpegurl; codecs=\"unknown\"'"));
937  // ---------------------------------------------------------------------------
938
939  EXPECT_EQ(kHLSMaybe, CanPlay("'application/vnd.apple.mpegurl'"));
940
941  EXPECT_EQ(kHLSProbably,
942            CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1\"'"));
943  EXPECT_EQ(kHLSProbably,
944            CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3\"'"));
945  EXPECT_EQ(kHLSProbably,
946            CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a\"'"));
947  EXPECT_EQ(kHLSProbably,
948            CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1, mp4a\"'"));
949  EXPECT_EQ(kHLSProbably,
950            CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3, mp4a\"'"));
951
952  EXPECT_EQ(kHLSProbably,
953            CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.4D401E\"'"));
954  EXPECT_EQ(kHLSProbably,
955            CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3.64001F\"'"));
956  EXPECT_EQ(kHLSProbably,
957            CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.40.2\"'"));
958
959  // TODO(amogh.bihani): Change these tests when bug 53193 is fixed.
960  // http://crbug.com/53193 ----------------------------------------------------
961  EXPECT_EQ(kHLSProbably,
962          CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.unknown\"'"));
963  EXPECT_EQ(kHLSProbably,
964          CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3.unknown\"'"));
965  EXPECT_EQ(kHLSProbably,
966          CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.unknown\"'"));
967
968  EXPECT_EQ(kHLSProbably,
969          CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.\"'"));
970  EXPECT_EQ(kHLSProbably,
971          CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3.\"'"));
972  EXPECT_EQ(kHLSProbably,
973          CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4a.\"'"));
974
975  EXPECT_EQ(kHLSProbably,
976            CanPlay("'application/vnd.apple.mpegurl; codecs=\"vp8\"'"));
977  EXPECT_EQ(kHLSProbably,
978            CanPlay("'application/vnd.apple.mpegurl; codecs=\"vp9\"'"));
979  EXPECT_EQ(kHLSProbably,
980            CanPlay("'application/vnd.apple.mpegurl; codecs=\"vorbis\"'"));
981
982  EXPECT_EQ(kHLSProbably,
983           CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1, vorbis\"'"));
984  EXPECT_EQ(kHLSProbably,
985           CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3, vorbis\"'"));
986  EXPECT_EQ(kHLSProbably,
987    CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1.4D401E, vorbis\"'"));
988  EXPECT_EQ(kHLSProbably,
989    CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3.64001F, vorbis\"'"));
990
991  EXPECT_EQ(kHLSMaybe,
992            CanPlay("'application/vnd.apple.mpegurl; codecs=\"opus\"'"));
993  EXPECT_EQ(kHLSMaybe,
994            CanPlay("'application/vnd.apple.mpegurl; codecs=\"vp8, opus\"'"));
995  EXPECT_EQ(kHLSMaybe,
996            CanPlay("'application/vnd.apple.mpegurl; codecs=\"vp9, opus\"'"));
997
998  EXPECT_EQ(kHLSMaybe,
999            CanPlay("'application/vnd.apple.mpegurl; codecs=\"theora\"'"));
1000  EXPECT_EQ(kHLSMaybe,
1001        CanPlay("'application/vnd.apple.mpegurl; codecs=\"theora, vorbis\"'"));
1002  EXPECT_EQ(kHLSMaybe,
1003          CanPlay("'application/vnd.apple.mpegurl; codecs=\"theora, mp4a\"'"));
1004  EXPECT_EQ(kHLSMaybe,
1005      CanPlay("'application/vnd.apple.mpegurl; codecs=\"theora, mp4a.40.2\"'"));
1006
1007  EXPECT_EQ(kHLSMaybe,
1008            CanPlay("'application/vnd.apple.mpegurl; codecs=\"AVC1\"'"));
1009  EXPECT_EQ(kHLSMaybe,
1010            CanPlay("'application/vnd.apple.mpegurl; codecs=\"AVC1.4d401e\"'"));
1011  EXPECT_EQ(kHLSMaybe,
1012            CanPlay("'application/vnd.apple.mpegurl; codecs=\"AVC3\"'"));
1013  EXPECT_EQ(kHLSMaybe,
1014            CanPlay("'application/vnd.apple.mpegurl; codecs=\"AVC3.64001f\"'"));
1015  EXPECT_EQ(kHLSMaybe,
1016            CanPlay("'application/vnd.apple.mpegurl; codecs=\"MP4A\"'"));
1017  EXPECT_EQ(kHLSMaybe,
1018            CanPlay("'application/vnd.apple.mpegurl; codecs=\"MP4A.40.2\"'"));
1019  EXPECT_EQ(kHLSMaybe,
1020            CanPlay("'application/vnd.apple.mpegurl; codecs=\"AVC1, MP4\"'"));
1021  EXPECT_EQ(kHLSMaybe,
1022            CanPlay("'application/vnd.apple.mpegurl; codecs=\"AVC3, MP4\"'"));
1023  EXPECT_EQ(kHLSMaybe,
1024            CanPlay("'application/vnd.apple.mpegurl; "
1025                    "codecs=\", AVC1.4D401E, MP4.40.2\"'"));
1026  EXPECT_EQ(kHLSMaybe,
1027            CanPlay("'application/vnd.apple.mpegurl; "
1028                    "codecs=\", AVC3.64001F, MP4.40.2\"'"));
1029
1030  EXPECT_EQ(kHLSMaybe,
1031            CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc2\"'"));
1032  EXPECT_EQ(kHLSMaybe,
1033            CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc4\"'"));
1034
1035  EXPECT_EQ(kHLSMaybe,
1036            CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc1x\"'"));
1037  EXPECT_EQ(kHLSMaybe,
1038            CanPlay("'application/vnd.apple.mpegurl; codecs=\"avc3x\"'"));
1039  EXPECT_EQ(kHLSMaybe,
1040            CanPlay("'application/vnd.apple.mpegurl; codecs=\"mp4ax\"'"));
1041
1042  EXPECT_EQ(kHLSMaybe,
1043            CanPlay("'application/vnd.apple.mpegurl; codecs=\"unknown\"'"));
1044  // ---------------------------------------------------------------------------
1045}
1046
1047#endif  // !OS_ANDROID
1048
1049}  // namespace content
1050