Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Unified Diff: third_party/WebKit/LayoutTests/media/preload-conditions.html

Issue 2546993003: [MediaElement] Allow preloading for non-network scheme src (Closed)
Patch Set: nits Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/media/preload-conditions.html
diff --git a/third_party/WebKit/LayoutTests/media/preload-conditions.html b/third_party/WebKit/LayoutTests/media/preload-conditions.html
deleted file mode 100644
index 8e550820cd27419fbb2a07fb3ff16293ac59718a..0000000000000000000000000000000000000000
--- a/third_party/WebKit/LayoutTests/media/preload-conditions.html
+++ /dev/null
@@ -1,180 +0,0 @@
-<!DOCTYPE html>
-<title>Test media preloading behaviour with different conditions.</title>
-<script src="../resources/testharness.js"></script>
-<script src="../resources/testharnessreport.js"></script>
-<script src="media-file.js"></script>
-<script>
-var tests = [
- {
- name: 'regular conditions',
- conditions: {
- dataSaver: false,
- cellular: false,
- lowEndDevice: false,
- },
- expectations: {
- default: 'auto',
- allowed: [ 'none', 'metadata', 'auto' ]
- }
- },
- {
- name: 'cellular connections',
- conditions: {
- dataSaver: false,
- cellular: true,
- lowEndDevice: false,
- },
- expectations: {
- default: 'metadata',
- allowed: [ 'none', 'metadata' ]
- }
- },
- {
- name: 'cellular connections with Data Saver',
- conditions: {
- dataSaver: true,
- cellular: true,
- lowEndDevice: false,
- },
- expectations: {
- default: 'none',
- allowed: [ 'none' ]
- }
- },
- {
- name: 'Data Saver',
- conditions: {
- dataSaver: true,
- cellular: false,
- lowEndDevice: false,
- },
- expectations: {
- default: 'none',
- allowed: [ 'none' ]
- }
- },
- {
- name: 'low end device',
- conditions: {
- dataSaver: false,
- cellular: false,
- lowEndDevice: true,
- },
- expectations: {
- default: 'none',
- allowed: [ 'none' ]
- }
- },
-];
-
-function checkPreloadAttribute(media, value, expected) {
- // Use IDL attribute.
- media.removeAttribute("preload");
- media.preload = value;
- assert_equals(media.getAttribute("preload"), value);
- assert_equals(media.preload, expected);
-
- // Use. content attribute.
- media.removeAttribute("preload");
- media.setAttribute("preload", value);
- assert_equals(media.preload, expected);
- assert_equals(media.getAttribute("preload"), value);
-}
-
-var asyncTests = tests.map(test => async_test('Testing autoplay behaviour for ' + test.name));
-
-var currentTest = 0;
-function runNextTest() {
- asyncTests[currentTest].done();
-
- ++currentTest;
- if (currentTest == tests.length)
- return;
-
- asyncTests[currentTest].step_func(runTest(asyncTests[currentTest], tests[currentTest]));
-}
-
-function runTest(t, test) {
- // Sanity checks for 'conditions'.
- assert_true('dataSaver' in test.conditions);
- assert_true('cellular' in test.conditions);
- assert_true('lowEndDevice' in test.conditions);
-
- internals.settings.setDataSaverEnabled(test.conditions.dataSaver);
- if (test.conditions.cellular)
- internals.setNetworkConnectionInfoOverride(true, 'cellular3g', 2.0);
- else
- internals.clearNetworkConnectionInfoOverride();
- internals.settings.setForcePreloadNoneForMediaElements(test.conditions.lowEndDevice);
-
- t.add_cleanup(() => {
- internals.settings.setDataSaverEnabled(false);
- internals.clearNetworkConnectionInfoOverride();
- internals.settings.setForcePreloadNoneForMediaElements(false);
- });
-
- var media = document.createElement('video');
-
- // Test IDL without any value.
- assert_equals(media.preload, test.expectations.default);
- assert_false(media.hasAttribute('preload'));
-
- // Test allowed values.
- [ 'none', 'metadata', 'auto' ].forEach(t.step_func(preload => {
- var expected = test.expectations.allowed.includes(preload) ? preload : test.expectations.default;
- checkPreloadAttribute(media, preload, expected);
- }));
-
- // Test not allowed values.
- [ '', 'default', 'foo' ].forEach(preload => {
- checkPreloadAttribute(media, preload, test.expectations.default);
- });
-
- // Test loading events.
- var expectedLoading = 4;
- [ '', 'none', 'metadata', 'auto' ].forEach(preload => {
- var media = document.createElement('video');
- media.preload = preload;
- media.src = findMediaFile('video', 'content/test');
- assert_equals(media.readyState, HTMLMediaElement.HAVE_NOTHING);
-
- switch (media.preload) {
- case 'none':
- media.onloadedmetadata = t.unreached_func();
- media.onprogress = t.unreached_func();
-
- media.onsuspend = t.step_func(_ => {
- assert_equals(media.readyState, HTMLMediaElement.HAVE_NOTHING);
- --expectedLoading;
- if (expectedLoading == 0)
- runNextTest();
- });
- break;
- case 'metadata':
- media.onloadedmetadata = t.step_func(_ => {
- assert_equals(media.readyState, HTMLMediaElement.HAVE_METADATA);
- --expectedLoading;
- if (expectedLoading == 0)
- runNextTest();
- });
- break;
- case 'auto':
- if (media.readyState == HTMLMediaElement.HAVE_ENOUGH_DATA) {
- --expectedLoading;
- break;
- }
-
- media.oncanplaythrough = t.step_func(_ => {
- assert_equals(media.readyState, HTMLMediaElement.HAVE_ENOUGH_DATA);
- --expectedLoading;
- if (expectedLoading == 0)
- runNextTest();
- });
- break;
- }
- });
-}
-
-asyncTests[currentTest].step_func(runTest(asyncTests[currentTest], tests[currentTest]));
-
-</script>

Powered by Google App Engine
This is Rietveld 408576698