0

appcache: remove wpt references to appcache

This is mostly a removal, but required some modifications as well.
Expectations are updated to remove references to removed tests.

Bug: 582750
Change-Id: I4e705f5888d3c8cd3d2cc4859a7a3816de5e88f5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3283191
Commit-Queue: enne <enne@chromium.org>
Reviewed-by: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/main@{#943332}
This commit is contained in:
Adrienne Walker
2021-11-18 23:43:31 +00:00
committed by Chromium LUCI CQ
parent 19e7f72f07
commit 0252e5b3f2
83 changed files with 0 additions and 1489 deletions
third_party/blink/web_tests
.gitattributesNeverFixTestsSmokeTestsTestExpectationsW3CImportExpectations
android
external
wpt
fetch
metadata
html
browsers
infrastructure
lint.ignore
service-workers
signed-exchange
storage
workers

@@ -126,7 +126,6 @@ fast/text/international/thai-baht-space.html -crlf
fast/text/resources/line-breaks-crlf.txt -crlf
fast/text/text-large-negative-letter-spacing-with-opacity.html -crlf
fast/text/text-letter-spacing.html -crlf
http/tests/appcache/max-size.html -crlf
http/tests/misc/location-test-xsl-style-sheet.xml -crlf
http/tests/misc/resources/location-test-xsl-style-sheet.xsl -crlf
http/tests/misc/single-character-pi-stylesheet.xhtml -crlf

@@ -1801,13 +1801,6 @@ crbug.com/1085129 virtual/force-eager/external/wpt/measure-memory/idlharness.win
crbug.com/1207146 virtual/force-eager/external/wpt/measure-memory/service-worker.https.any.serviceworker.html [ Skip ]
crbug.com/1207146 virtual/force-eager/external/wpt/measure-memory/shared-worker.https.any.sharedworker.html [ Skip ]
# AppCache is no longer supported.
crbug.com/582750 external/wpt/html/browsers/offline/appcache/* [ Skip ]
crbug.com/940797 external/wpt/signed-exchange/appcache/* [ Skip ]
crbug.com/582750 external/wpt/service-workers/service-worker/appcache-ordering-main.https.html [ Skip ]
crbug.com/582750 external/wpt/service-workers/service-worker/claim-fetch-with-appcache.https.html [ Skip ]
crbug.com/582750 external/wpt/storage/estimate-usage-details-application-cache.https.tentative.html [ Skip ]
# WeakRefs are under development and run in a virtual test suite
crbug.com/1016767 js/weakrefs/* [ Skip ]
virtual/weakrefs/js/weakrefs/* [ Pass ]

@@ -204,8 +204,6 @@ external/wpt/html/browsers/history/the-history-interface/history_back.html
external/wpt/html/browsers/history/the-history-interface/history_pushstate.html
external/wpt/html/browsers/history/the-history-interface/history_replacestate_err.html
external/wpt/html/browsers/history/the-history-interface/history_replacestate_nooptionalparam.html
external/wpt/html/browsers/offline/application-cache-api/api_update_error.html
external/wpt/html/browsers/offline/introduction-4/event_cached.html
external/wpt/html/browsers/the-window-object/named-access-on-the-window-object/window-null-names.html
external/wpt/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-same-origin.html
external/wpt/html/dom/documents/dom-tree-accessors/Document.getElementsByClassName-null-undef.html

@@ -1920,7 +1920,6 @@ crbug.com/1083820 [ Mac ] fast/scrolling/document-level-wheel-event-listener-pas
# expectation files. The following tests with [ Failure ] don't have failure
# expectation files because they contain local path names.
# Use crbug.com/490511 for untriaged failures.
crbug.com/490511 external/wpt/html/browsers/offline/application-cache-api/api_update.https.html [ Failure Pass ]
crbug.com/108417 external/wpt/html/rendering/non-replaced-elements/tables/table-border-1.html [ Failure ]
crbug.com/490511 external/wpt/html/rendering/non-replaced-elements/the-hr-element-0/color.html [ Failure ]
crbug.com/490511 external/wpt/html/rendering/non-replaced-elements/the-hr-element-0/width.html [ Failure ]

@@ -310,11 +310,6 @@ external/wpt/gamepad/getgamepads-polling-manual.html [ Skip ]
external/wpt/gamepad/idlharness-manual.html [ Skip ]
external/wpt/gamepad/timestamp-manual.html [ Skip ]
external/wpt/html/browsers/history/the-location-interface/non-automated [ Skip ]
external/wpt/html/browsers/offline/application-cache-api/api_status_checking-manual.html [ Skip ]
external/wpt/html/browsers/offline/application-cache-api/api_status_downloading-manual.html [ Skip ]
external/wpt/html/browsers/offline/application-cache-api/api_status_obsolete-manual.html [ Skip ]
external/wpt/html/browsers/offline/application-cache-api/api_status_updateready-manual.html [ Skip ]
external/wpt/html/browsers/offline/application-cache-api/api_swapcache-manual.html [ Skip ]
external/wpt/html/browsers/offline/introduction-4/event_downloading-manual.html [ Skip ]
external/wpt/html/browsers/offline/introduction-4/event_error-manual.html [ Skip ]
external/wpt/html/browsers/offline/introduction-4/event_obsolete-manual.html [ Skip ]

@@ -215,8 +215,6 @@ crbug.com/1198081 external/wpt/reporting/idlharness.any.html [ Failure ]
crbug.com/1198081 external/wpt/reporting/idlharness.any.worker.html [ Failure ]
# Signed Exchange failures on Android.
crbug.com/1198085 external/wpt/signed-exchange/appcache/sxg-inner-resp-over-appcache.tentative.https.html [ Failure ]
crbug.com/1198085 external/wpt/signed-exchange/appcache/sxg-served-from-appcache.tentative.https.html [ Failure ]
crbug.com/1198085 external/wpt/signed-exchange/check-cert-request.tentative.html [ Failure ]
crbug.com/1198085 external/wpt/signed-exchange/fallback-to-another-sxg.tentative.html [ Failure ]
crbug.com/1198085 external/wpt/signed-exchange/reporting/sxg-reporting-navigation-cert_fetch_error-downgraded.tentative.html [ Failure ]
@@ -846,7 +844,6 @@ crbug.com/1050754 external/wpt/html/browsers/history/the-history-interface/005.h
crbug.com/1050754 external/wpt/html/browsers/history/the-location-interface/allow_prototype_cycle_through_location.sub.html [ Failure ]
crbug.com/1050754 external/wpt/html/browsers/history/the-location-interface/location-prototype-setting-same-origin-domain.sub.html [ Pass ]
crbug.com/1050754 external/wpt/html/browsers/history/the-location-interface/scripted_click_location_assign_during_load.html [ Crash Failure ]
crbug.com/1050754 external/wpt/html/browsers/offline/appcache/workers/appcache-worker.https.html [ Failure ]
crbug.com/1050754 external/wpt/html/browsers/offline/introduction-4/event_cached.https.html [ Failure ]
crbug.com/1050754 external/wpt/html/browsers/offline/introduction-4/event_checking.https.html [ Failure ]
crbug.com/1050754 external/wpt/html/browsers/offline/introduction-4/event_noupdate.https.html [ Failure ]

@@ -265,8 +265,6 @@ crbug.com/1198081 external/wpt/reporting/idlharness.any.html [ Failure ]
crbug.com/1198081 external/wpt/reporting/idlharness.any.worker.html [ Failure ]
# Signed Exchange failures on Android.
crbug.com/1198085 external/wpt/signed-exchange/appcache/sxg-inner-resp-over-appcache.tentative.https.html [ Failure ]
crbug.com/1198085 external/wpt/signed-exchange/appcache/sxg-served-from-appcache.tentative.https.html [ Failure ]
crbug.com/1198085 external/wpt/signed-exchange/check-cert-request.tentative.html [ Failure ]
crbug.com/1198085 external/wpt/signed-exchange/fallback-to-another-sxg.tentative.html [ Failure ]
crbug.com/1198085 external/wpt/signed-exchange/reporting/sxg-reporting-navigation-cert_fetch_error-downgraded.tentative.html [ Failure ]
@@ -987,7 +985,6 @@ crbug.com/1050754 external/wpt/html/browsers/history/the-history-interface/004.h
crbug.com/1050754 external/wpt/html/browsers/history/the-history-interface/005.html [ Failure Pass ]
crbug.com/1050754 external/wpt/html/browsers/history/the-location-interface/allow_prototype_cycle_through_location.sub.html [ Failure ]
crbug.com/1050754 external/wpt/html/browsers/history/the-location-interface/location-prototype-setting-same-origin-domain.sub.html [ Pass ]
crbug.com/1050754 external/wpt/html/browsers/offline/appcache/workers/appcache-worker.https.html [ Failure ]
crbug.com/1050754 external/wpt/html/browsers/offline/introduction-4/event_cached.https.html [ Failure ]
crbug.com/1050754 external/wpt/html/browsers/offline/introduction-4/event_checking.https.html [ Failure ]
crbug.com/1050754 external/wpt/html/browsers/offline/introduction-4/event_noupdate.https.html [ Failure ]

@@ -2407,10 +2407,6 @@ crbug.com/1050754 external/wpt/html/browsers/history/the-location-interface/no-b
crbug.com/1050754 external/wpt/html/browsers/history/the-location-interface/per-global.window.html [ Failure ]
crbug.com/1050754 external/wpt/html/browsers/history/the-location-interface/reload_document_write_onload.html [ Failure Pass ]
crbug.com/1050754 external/wpt/html/browsers/history/the-location-interface/scripted_click_location_assign_during_load.html [ Failure Pass ]
crbug.com/1050754 external/wpt/html/browsers/offline/appcache/appcache-iframe.https.html [ Timeout ]
crbug.com/1050754 external/wpt/html/browsers/offline/appcache/workers/appcache-worker.https.html [ Timeout ]
crbug.com/1050754 external/wpt/html/browsers/offline/application-cache-api/api_status_idle.https.html [ Failure Pass ]
crbug.com/1050754 external/wpt/html/browsers/offline/application-cache-api/api_update.https.html [ Timeout ]
crbug.com/1050754 external/wpt/html/browsers/offline/browser-state/navigator_online_online.https.html [ Failure ]
crbug.com/1050754 external/wpt/html/browsers/offline/introduction-4/event_cached.https.html [ Pass ]
crbug.com/1050754 external/wpt/html/browsers/offline/introduction-4/event_checking.https.html [ Pass ]
@@ -2694,20 +2690,16 @@ crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-enc
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=windows-1252 [ Failure Timeout ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub.html?encoding=x-cp1251 [ Failure Timeout ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html?include=appcache [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html?include=history [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html?include=loading [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html?include=workers [ Failure ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-16le.html?include=appcache [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-16le.html?include=history [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-16le.html?include=loading [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-16le.html?include=workers [ Failure ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-8.html?include=appcache [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-8.html?include=css [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-8.html?include=history [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-8.html?include=loading [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-8.html?include=workers [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1251.html?include=appcache [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1251.html?include=base-href [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1251.html?include=css [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1251.html?include=history [ Failure Pass ]
@@ -2717,7 +2709,6 @@ crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-enc
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1251.html?include=workers [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1251.html?include=xhr [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1251.html?include=xml [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1252.html?include=appcache [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1252.html?include=base-href [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1252.html?include=css [ Failure Pass ]
crbug.com/1050754 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1252.html?include=history [ Failure Pass ]
@@ -4463,8 +4454,6 @@ crbug.com/1050754 external/wpt/service-workers/service-worker/ServiceWorkerGloba
crbug.com/1050754 external/wpt/service-workers/service-worker/ServiceWorkerGlobalScope/registration-attribute.https.html [ Failure ]
crbug.com/1050754 external/wpt/service-workers/service-worker/about-blank-replacement.https.html [ Failure Pass ]
crbug.com/1050754 external/wpt/service-workers/service-worker/active.https.html [ Failure Pass ]
crbug.com/1050754 external/wpt/service-workers/service-worker/appcache-ordering-main.https.html [ Timeout ]
crbug.com/1050754 external/wpt/service-workers/service-worker/claim-fetch-with-appcache.https.html [ Timeout ]
crbug.com/1050754 external/wpt/service-workers/service-worker/claim-shared-worker-fetch.https.html [ Failure ]
crbug.com/1050754 external/wpt/service-workers/service-worker/claim-using-registration.https.html [ Failure ]
crbug.com/1050754 external/wpt/service-workers/service-worker/claim-worker-fetch.https.html [ Failure Pass ]
@@ -4565,8 +4554,6 @@ crbug.com/1050754 external/wpt/shape-detection/idlharness.https.any.sharedworker
crbug.com/1050754 external/wpt/shape-detection/idlharness.https.any.worker.html [ Failure ]
crbug.com/1050754 external/wpt/shape-detection/shapedetection-cross-origin.sub.https.html [ Failure ]
crbug.com/1050754 external/wpt/shape-detection/shapedetection-empty-input.https.html [ Failure ]
crbug.com/1050754 external/wpt/signed-exchange/appcache/sxg-inner-resp-over-appcache.tentative.https.html [ Timeout ]
crbug.com/1050754 external/wpt/signed-exchange/appcache/sxg-served-from-appcache.tentative.https.html [ Timeout ]
crbug.com/1050754 external/wpt/signed-exchange/check-cert-request.tentative.html [ Failure ]
crbug.com/1050754 external/wpt/signed-exchange/fallback-to-another-sxg.tentative.html [ Failure ]
crbug.com/1050754 external/wpt/signed-exchange/nested-sxg.tentative.html [ Failure Pass ]
@@ -4639,7 +4626,6 @@ crbug.com/1050754 external/wpt/storage-access-api/idlharness.window.html [ Failu
crbug.com/1050754 external/wpt/storage-access-api/requestStorageAccess.sub.window.html [ Crash Failure ]
crbug.com/1050754 external/wpt/storage-access-api/sandboxAttribute.window.html [ Failure ]
crbug.com/1050754 external/wpt/storage-access-api/storageAccess.testdriver.sub.html [ Failure ]
crbug.com/1050754 external/wpt/storage/estimate-usage-details-application-cache.https.tentative.html [ Timeout ]
crbug.com/1050754 external/wpt/storage/permission-query.https.any.html [ Failure ]
crbug.com/1050754 external/wpt/storage/permission-query.https.any.worker.html [ Failure ]
crbug.com/1050754 external/wpt/streams/idlharness.any.sharedworker.html [ Failure ]

@@ -122,20 +122,6 @@ def main(request, response):
response.headers.set(b"Content-Type", b"application/javascript")
return b"self.postMessage('loaded');"
## Return an appcache manifest
if key.startswith(b"appcache-manifest"):
response.headers.set(b"Content-Type", b"text/cache-manifest")
return b"""CACHE MANIFEST
/fetch/metadata/resources/record-header.py?file=appcache-resource%s
NETWORK:
*""" % key[17:]
## Return an appcache resource
if key.startswith(b"appcache-resource"):
response.headers.set(b"Content-Type", b"text/html")
return b"<html>Appcache!</html>"
## Return a valid XSLT
if key.startswith(b"xslt"):
response.headers.set(b"Content-Type", b"text/xsl")

@@ -1,5 +0,0 @@
This is a testharness.js-based test.
FAIL iframe should be loaded from application caches. promise_test: Unhandled rejection with value: object "ReferenceError: applicationCache is not defined"
FAIL iframe should be loaded from application caches for fallback. promise_test: Unhandled rejection with value: object "ReferenceError: applicationCache is not defined"
Harness: the test ran to completion.

@@ -1,37 +0,0 @@
<html manifest="resources/appcache-iframe.manifest">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
const initPromise = new Promise(resolve => {
applicationCache.addEventListener('cached', resolve, false);
applicationCache.addEventListener('noupdate', resolve, false);
});
function with_iframe(url) {
return new Promise(resolve => {
let frame = document.createElement('iframe');
frame.src = url;
frame.onload = () => { resolve(frame); };
document.body.appendChild(frame);
add_result_callback(() => frame.remove());
});
}
promise_test(async t => {
await initPromise;
const frame =
await with_iframe('resources/appcache-iframe.py?type=cached');
const msgEvent = await new Promise(r => window.onmessage = r);
assert_equals(msgEvent.data, 'Done: cached');
}, 'iframe should be loaded from application caches.');
promise_test(async t => {
await initPromise;
const frame =
await with_iframe('resources/appcache-iframe.py?type=fallingback');
const msgEvent = await new Promise(r => window.onmessage = r);
assert_equals(msgEvent.data, 'Done: fallbacked');
}, 'iframe should be loaded from application caches for fallback.');
</script>
</html>

@@ -1,5 +0,0 @@
def main(request, response):
type = request.GET[b'type']
if request.GET[b'type'] == b'fallingback':
return 404, [(b'Content-Type', b'text/plain')], u"Page not found"
return [(b'Content-Type', b'text/plain')], type

@@ -1,8 +0,0 @@
CACHE MANIFEST
appcache-iframe.py?type=cached
appcache-data.py?type=cached
FALLBACK:
appcache-iframe.py?type=fallingback appcache-iframe.py?type=fallbacked
appcache-data.py?type=fallingback appcache-data.py?type=fallbacked

@@ -1,43 +0,0 @@
script = b'''
<script>
function fetchCachedFileTest() {
return fetch('appcache-data.py?type=cached')
.then(res => res.text(),
_ => { throw new Error('Failed to fetch cached file'); })
.then(text => {
if (text != 'cached') {
throw new Error('cached file missmatch');
}
});
}
function fetchNotInCacheFileTest() {
return fetch('appcache-data.py?type=not-in-cache')
.then(_ => { throw new Error('Fetching not-in-cache file must fail'); },
_ => {});
}
function fetchFallbackFileTest() {
return fetch('appcache-data.py?type=fallingback')
.then(res => res.text(),
_ => { throw new Error('Failed to fetch fallingback file'); })
.then(text => {
if (text != 'fallbacked') {
throw new Error('fallbacked file miss match');
}
});
}
fetchCachedFileTest()
.then(fetchNotInCacheFileTest)
.then(fetchFallbackFileTest)
.then(_ => window.parent.postMessage('Done: %s'),
error => window.parent.postMessage(error.toString()));
</script>
'''
def main(request, response):
type = request.GET[b'type']
if request.GET[b'type'] == b'fallingback':
return 404, [(b'Content-Type', b'text/plain')], u"Page not found"
return [(b'Content-Type', b'text/html')], script % type

@@ -1,4 +0,0 @@
This is a testharness.js-based test.
Harness Error. harness_status.status = 1 , harness_status.message = Uncaught ReferenceError: applicationCache is not defined
Harness: the test ran to completion.

@@ -1,81 +0,0 @@
<html manifest="resources/appcache-worker.manifest">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
var resolveInitPromise;
var initPromise = new Promise(r => { resolveInitPromise = r; });
applicationCache.addEventListener('cached', resolveInitPromise, false);
applicationCache.addEventListener('noupdate', resolveInitPromise, false);
promise_test(t => {
return initPromise.then(_ => {
var worker =
new Worker('resources/appcache-worker.py?type=cached');
return new Promise(r => { worker.onmessage = r; });
}).then(event => {
assert_equals(event.data, 'Done: cached');
});
}, 'Dedicated worker of the cached script');
promise_test(t => {
return initPromise.then(_ => {
var worker =
new Worker('resources/appcache-worker.py?type=fallingback');
return new Promise(r => { worker.onmessage = r; });
}).then(event => {
assert_equals(event.data, 'Done: fallbacked');
});
}, 'Dedicated worker of the fallbacked script');
promise_test(t => {
return initPromise.then(_ => {
var worker =
new Worker('resources/appcache-dedicated-worker-not-in-cache.js');
return new Promise((resolve, reject) => {
worker.onerror = resolve;
worker.onmessage = _ => {
reject('The worker not in the AppCache must not be executed.');
};
});
});
}, 'Dedicated worker of the not-in-cache script');
promise_test(t => {
return initPromise.then(_ => {
var worker =
new SharedWorker('resources/appcache-worker.py?type=cached');
var promise = new Promise(r => { worker.port.onmessage = r; });
worker.port.start();
return promise;
}).then(event => {
assert_equals(event.data, 'Done: cached');
});
}, 'Shared worker of the cached script');
promise_test(t => {
return initPromise.then(_ => {
var worker =
new SharedWorker('resources/appcache-worker.py?type=fallingback');
var promise = new Promise(r => { worker.port.onmessage = r; });
worker.port.start();
return promise;
}).then(event => {
assert_equals(event.data, 'Done: fallbacked');
});
}, 'Shared worker of the fallbacked script');
promise_test(t => {
return initPromise.then(_ => {
var worker =
new SharedWorker(
'resources/appcache-shared-worker-not-in-cache.js');
var promise = new Promise(r => { worker.port.onmessage = r; });
worker.port.start();
return promise;
}).then(event => {
assert_equals(event.data, 'Done');
});
}, 'Shared worker of the not-in-cache script');
</script>
</html>

@@ -1,64 +0,0 @@
var info = '';
var initPromise = new Promise(resolve => {
self.addEventListener('connect', event => {
self.postMessage = msg => { event.ports[0].postMessage(msg); };
resolve();
});
});
function importNotInCacheSciptTest() {
return new Promise((resolve, reject) => {
try {
importScripts('appcache-worker-import.py?type=not-in-cache');
} catch(e) {
reject(new Error('Error while importing the not-in-cache script: ' +
e.toString()));
return;
}
if (info != 'Set by the not-in-cache script') {
reject(new Error('The not-in-cache script was not correctly executed'));
}
resolve();
});
}
function importFallbackSciptTest() {
return new Promise((resolve, reject) => {
try {
importScripts('appcache-worker-import.py?type=fallingback');
reject(new Error('Importing a fallback script must fail.'));
} catch(e) {
resolve();
}
});
}
function fetchNotInCacheFileTest() {
return fetch('appcache-worker-data.py?type=not-in-cache')
.then(res => res.text(),
_ => { throw new Error('Failed to fetch not-in-cache file'); })
.then(text => {
if (text != 'not-in-cache') {
throw new Error('not-in-cache file mismatch');
}
})
}
function fetchFallbackFileTest() {
return fetch('appcache-worker-data.py?type=fallingback')
.then(res => {
if (res.status != 404) {
throw new Error(
'Fetching fallback file must resolve with 404 response');
}
},
_ => { throw new Error('Fetching fallback file must not fail'); });
}
initPromise
.then(importNotInCacheSciptTest)
.then(importFallbackSciptTest)
.then(fetchNotInCacheFileTest)
.then(fetchFallbackFileTest)
.then(_ => postMessage('Done'), error => postMessage(error.toString()));

@@ -1,5 +0,0 @@
def main(request, response):
type = request.GET[b'type']
if request.GET[b'type'] == b'fallingback':
return 404, [(b'Content-Type', b'text/plain')], u"Page not found"
return [(b'Content-Type', b'text/plain')], type

@@ -1,7 +0,0 @@
script = b'info = \'Set by the %s script\';'
def main(request, response):
type = request.GET[b'type']
if request.GET[b'type'] == b'fallingback':
return 404, [(b'Content-Type', b'text/plain')], u"Page not found"
return [(b'Content-Type', b'text/javascript')], script % type

@@ -1,10 +0,0 @@
CACHE MANIFEST
appcache-worker.py?type=cached
appcache-worker-import.py?type=cached
appcache-worker-data.py?type=cached
FALLBACK:
appcache-worker.py?type=fallingback appcache-worker.py?type=fallbacked
appcache-worker-import.py?type=fallingback appcache-worker-import.py?type=fallbacked
appcache-worker-data.py?type=fallingback appcache-worker-data.py?type=fallbacked

@@ -1,103 +0,0 @@
script = b'''
var initPromise = Promise.resolve();
if ('SharedWorkerGlobalScope' in self &&
self instanceof SharedWorkerGlobalScope) {
initPromise = new Promise(resolve => {
self.addEventListener('connect', event => {
self.postMessage = msg => { event.ports[0].postMessage(msg); };
resolve();
});
});
}
var info = '';
function importCachedScriptTest() {
return new Promise((resolve, reject) => {
info = '';
try {
importScripts('appcache-worker-import.py?type=cached');
} catch(e) {
reject(new Error('Error while importing the cached script: ' +
e.toString()));
return;
}
if (info != 'Set by the cached script') {
reject(new Error('The cached script was not correctly executed'));
}
resolve();
});
}
function importNotInCacheScriptTest() {
return new Promise((resolve, reject) => {
try {
importScripts('appcache-worker-import.py?type=not-in-cache');
reject(new Error('Importing a non-cached script must fail.'));
} catch(e) {
resolve();
}
});
}
function importFallbackScriptTest() {
return new Promise((resolve, reject) => {
info = '';
try {
importScripts('appcache-worker-import.py?type=fallingback');
} catch(e) {
reject(new Error('Error while importing the fallingback script: ' +
e.toString()));
}
if (info != 'Set by the fallbacked script') {
reject(new Error('The fallingback script was not correctly executed'));
}
resolve();
});
}
function fetchCachedFileTest() {
return fetch('appcache-worker-data.py?type=cached')
.then(res => res.text(),
_ => { throw new Error('Failed to fetch cached file'); })
.then(text => {
if (text != 'cached') {
throw new Error('cached file missmatch');
}
});
}
function fetchNotInCacheFileTest() {
return fetch('appcache-worker-data.py?type=not-in-cache')
.then(_ => { throw new Error('Fetching not-in-cache file must fail'); },
_ => {});
}
function fetchFallbackFileTest() {
return fetch('appcache-worker-data.py?type=fallingback')
.then(res => res.text(),
_ => { throw new Error('Failed to fetch fallingback file'); })
.then(text => {
if (text != 'fallbacked') {
throw new Error('fallbacked file miss match');
}
});
}
initPromise
.then(importCachedScriptTest)
.then(importNotInCacheScriptTest)
.then(importFallbackScriptTest)
.then(fetchCachedFileTest)
.then(fetchNotInCacheFileTest)
.then(fetchFallbackFileTest)
.then(_ => postMessage('Done: %s'),
error => postMessage(error.toString()));
'''
def main(request, response):
type = request.GET[b'type']
if request.GET[b'type'] == b'fallingback':
return 404, [(b'Content-Type', b'text/plain')], u"Page not found"
return [(b'Content-Type', b'text/javascript')], script % type

@@ -1,4 +0,0 @@
This is a testharness.js-based test.
FAIL idle status test Cannot read properties of undefined (reading 'status')
Harness: the test ran to completion.

@@ -1,23 +0,0 @@
<!DOCTYPE HTML>
<html manifest="../resources/manifest/clock.manifest">
<head>
<title>Offline Application Cache - API_status_IDLE</title>
<meta name="timeout" content="long">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id="log"></div>
<script>
var t = async_test("idle status test"),
cache = window.applicationCache;
setTimeout(function(){
t.step(function() {
assert_equals(cache.status, cache.IDLE, "cache.status should equals cache.IDLE");
});
t.done();
}, 3000);
</script>
</body>
</html>

@@ -1,4 +0,0 @@
This is a testharness.js-based test.
FAIL Offline Application Cache - API_status_UNCACHED Cannot read properties of undefined (reading 'status')
Harness: the test ran to completion.

@@ -1,19 +0,0 @@
<!DOCTYPE HTML>
<html>
<head>
<title>Offline Application Cache - API_status_UNCACHED</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id="log"></div>
<script>
var cache = window.applicationCache;
test(function(){
assert_equals(cache.status, cache.UNCACHED, "uncached status test");
});
</script>
</body>
</html>

@@ -1,4 +0,0 @@
This is a testharness.js-based test.
FAIL INVALID_STATE_ERR error test assert_throws_dom: function "function(){cache.swapCache();}" threw object "TypeError: Cannot read properties of undefined (reading 'swapCache')" that is not a DOMException INVALID_STATE_ERR: property "code" is equal to undefined, expected 11
Harness: the test ran to completion.

@@ -1,19 +0,0 @@
<!DOCTYPE HTML>
<html manifest="../resources/manifest/clock.manifest">
<head>
<title>Offline Application Cache - API_swapCache_error</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id="log"></div>
<script>
var cache = window.applicationCache;
test(function() {
assert_throws_dom("INVALID_STATE_ERR", function(){cache.swapCache();});
}, "INVALID_STATE_ERR error test")
</script>
</body>
</html>

@@ -1,31 +0,0 @@
<!DOCTYPE HTML>
<html manifest="../resources/manifest/clock.manifest">
<head>
<title>Offline Application Cache - API_update</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id="log"></div>
<script>
var cache = window.applicationCache;
async_test(function(t) {
var next = t.step_func(function() {
cache.onnoupdate = cache.oncached = null;
cache.update()
t.done();
});
if (cache.status === cache.IDLE) {
next();
} else {
cache.onnoupdate = cache.oncached = next;
}
});
</script>
</body>
</html>

@@ -1,4 +0,0 @@
This is a testharness.js-based test.
FAIL INVALID_STATE_ERR error test assert_throws_dom: function "function(){cache.update();}" threw object "TypeError: Cannot read properties of undefined (reading 'update')" that is not a DOMException INVALID_STATE_ERR: property "code" is equal to undefined, expected 11
Harness: the test ran to completion.

@@ -1,19 +0,0 @@
<!DOCTYPE HTML>
<html manifest="./non-existent-file.manifest">
<head>
<title>Offline Application Cache - API_update_error</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id="log"></div>
<script>
var cache = window.applicationCache;
test(function() {
assert_throws_dom("INVALID_STATE_ERR", function(){cache.update();});
}, "INVALID_STATE_ERR error test")
</script>
</body>
</html>

@@ -1,23 +0,0 @@
<!DOCTYPE HTML>
<html>
<head>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
test(t => {
assert_false('applicationCache' in window);
assert_equals(window.applicationCache, undefined);
}, "window.applicationCache does not exist in non-secure contexts.");
test(t => {
assert_false('ApplicationCache' in window);
assert_equals(typeof ApplicationCache, "undefined");
}, "ApplicationCache interface does not exist in non-secure contexts.");
test(t => {
assert_false('ApplicationCacheErrorEvent' in window);
assert_equals(typeof ApplicationCacheErrorEvent, "undefined");
}, "ApplicationCacheErrorEvent interface does not exist in non-secure contexts.");
</script>
</head>
</html>

@@ -1,5 +0,0 @@
This is a testharness.js-based test.
Harness Error. harness_status.status = 1 , harness_status.message = Uncaught TypeError: Cannot set properties of undefined (setting 'oncached')
PASS cached event test
Harness: the test ran to completion.

@@ -1,18 +0,0 @@
<!DOCTYPE HTML>
<html manifest="../resources/manifest/clock.manifest">
<head>
<title>Offline Application Cache - Event_cached</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id="log"></div>
<script>
var t = async_test("cached event test");
var cache = window.applicationCache;
cache.oncached = t.done();
</script>
</body>
</html>

@@ -1,5 +0,0 @@
This is a testharness.js-based test.
Harness Error. harness_status.status = 1 , harness_status.message = Uncaught TypeError: Cannot set properties of undefined (setting 'onchecking')
PASS checking event test
Harness: the test ran to completion.

@@ -1,18 +0,0 @@
<!DOCTYPE HTML>
<html manifest="../resources/manifest/clock.manifest">
<head>
<title>Offline Application Cache - Event_checking</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id="log"></div>
<script>
var t = async_test("checking event test");
var cache = window.applicationCache;
cache.onchecking = t.done();
</script>
</body>
</html>

@@ -1,5 +0,0 @@
This is a testharness.js-based test.
Harness Error. harness_status.status = 1 , harness_status.message = Uncaught TypeError: Cannot set properties of undefined (setting 'onnoupdate')
PASS noupdate event test
Harness: the test ran to completion.

@@ -1,19 +0,0 @@
<!DOCTYPE HTML>
<html manifest="../resources/manifest/clock.manifest">
<head>
<title>Offline Application Cache - Event_noupdate</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id="log"></div>
<script>
var t = async_test("noupdate event test");
var cache = window.applicationCache;
cache.onnoupdate = t.done();
</script>
</body>
</html>

@@ -1,5 +0,0 @@
This is a testharness.js-based test.
Harness Error. harness_status.status = 1 , harness_status.message = Uncaught TypeError: Cannot set properties of undefined (setting 'onprogress')
PASS progress event test
Harness: the test ran to completion.

@@ -1,18 +0,0 @@
<!DOCTYPE HTML>
<html manifest="../resources/manifest/clock.manifest">
<head>
<title>Offline Application Cache - Event_progress</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id="log"></div>
<script>
var t = async_test("progress event test");
var cache = window.applicationCache;
cache.onprogress = t.done();
</script>
</body>
</html>

@@ -1,18 +0,0 @@
<!DOCTYPE HTML>
<html manifest="resources/manifest/url_check.manifest">
<head>
<title>Offline Application Cache - URL_#</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id="log"></div>
<script>
var t = async_test("url check test");
var cache = window.applicationCache;
cache.onerror = t.done();
</script>
</body>
</html>

@@ -1,19 +0,0 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>AppCache should not exist in shared workers, even though it was specced at some point</title>
<link rel="help" href="https://github.com/whatwg/html/pull/2384">
<link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
"use strict";
if (typeof SharedWorker === "undefined") {
test(() => {
}, "This browser doesn't implement SharedWorker, and so passes this test automatically");
} else {
fetch_tests_from_worker(new SharedWorker("no-appcache-in-shared-workers-historical.js"));
}
</script>

@@ -1,14 +0,0 @@
"use strict";
self.importScripts('/resources/testharness.js');
test(() => {
assert_equals(self.applicationCache, undefined, "self.applicationCache must be undefined");
assert_false("applicationCache" in self, "applicationCache must not even be a property of self");
}, "self.applicationCache must not exist");
test(() => {
assert_equals(self.ApplicationCache, undefined, "self.ApplicationCache must be undefined");
assert_false("ApplicationCache" in self, "ApplicationCache must not even be a property of self");
}, "ApplicationCache must not be exposed");
done();

@@ -1,129 +0,0 @@
This is a testharness.js-based test.
Found 125 tests; 124 PASS, 1 FAIL, 0 TIMEOUT, 0 NOTRUN.
PASS Window Security testing
FAIL A SecurityError exception must be thrown when window.applicationCache is accessed from a different origin. assert_true: window.applicationCache should exist. expected true got false
PASS A SecurityError exception must be thrown when window.devicePixelRatio is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.document is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.external is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.frameElement is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.history is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.innerWidth is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.innerHeight is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.locationbar is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.localStorage is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.menubar is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.name is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.navigator is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onabort is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onafterprint is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onbeforeprint is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onbeforeunload is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onblur is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.oncancel is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.oncanplay is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.oncanplaythrough is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onchange is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onclick is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onclose is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.oncontextmenu is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.oncuechange is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.ondblclick is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.ondrag is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.ondragend is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.ondragenter is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.ondragleave is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.ondragover is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.ondragstart is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.ondrop is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.ondurationchange is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onemptied is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onended is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onerror is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onfocus is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onhashchange is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.oninput is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.oninvalid is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onkeydown is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onkeypress is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onkeyup is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onload is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onloadeddata is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onloadedmetadata is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onloadstart is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onmessage is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onmousedown is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onmousemove is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onmouseout is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onmouseover is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onmouseup is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onmousewheel is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onoffline is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.ononline is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onpause is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onplay is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onplaying is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onpagehide is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onpageshow is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onpopstate is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onprogress is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onratechange is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onreset is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onresize is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onscroll is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onseeked is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onseeking is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onselect is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onstalled is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onstorage is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onsubmit is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onsuspend is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.ontimeupdate is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onunload is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onvolumechange is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.onwaiting is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.pageXOffset is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.pageYOffset is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.personalbar is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.screen is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.scrollbars is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.statusbar is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.status is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.screenX is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.screenY is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.sessionStorage is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.toolbar is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.alert is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.clearInterval is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.clearTimeout is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.confirm is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.getComputedStyle is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.getSelection is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.matchMedia is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.moveBy is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.moveTo is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.open is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.print is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.prompt is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.resizeTo is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.resizeBy is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.scroll is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.scrollTo is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.scrollBy is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.setInterval is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.setTimeout is accessed from a different origin.
PASS A SecurityError exception must be thrown when window.stop is accessed from a different origin.
PASS A SecurityError exception should not be thrown when window.closed is accessed from a different origin.
PASS A SecurityError exception should not be thrown when window.frames is accessed from a different origin.
PASS A SecurityError exception should not be thrown when window.length is accessed from a different origin.
PASS A SecurityError exception should not be thrown when window.location is accessed from a different origin.
PASS A SecurityError exception should not be thrown when window.opener is accessed from a different origin.
PASS A SecurityError exception should not be thrown when window.parent is accessed from a different origin.
PASS A SecurityError exception should not be thrown when window.self is accessed from a different origin.
PASS A SecurityError exception should not be thrown when window.top is accessed from a different origin.
PASS A SecurityError exception should not be thrown when window.window is accessed from a different origin.
PASS A SecurityError exception should not be thrown when window.blur is accessed from a different origin.
PASS A SecurityError exception should not be thrown when window.close is accessed from a different origin.
PASS A SecurityError exception should not be thrown when window.focus is accessed from a different origin.
PASS A SecurityError exception should not be thrown when window.postMessage is accessed from a different origin.
Harness: the test ran to completion.

@@ -24,7 +24,6 @@ function fr_load() {
//SecurityError should be thrown
[
//attributes
{name: "applicationCache"},
{name: "devicePixelRatio"},
{name: "document"},
{name: "external"},

@@ -1,178 +0,0 @@
This is a testharness.js-based test.
Found 174 tests; 173 PASS, 1 FAIL, 0 TIMEOUT, 0 NOTRUN.
PASS Value Properties of the Global Object
PASS Value Property: NaN
PASS Value Property: Infinity
PASS Value Property: undefined
PASS Function Properties of the Global Object
PASS Function Property: eval
PASS Function Property: parseInt
PASS Function Property: parseFloat
PASS Function Property: isNaN
PASS Function Property: isFinite
PASS URI Handling Function Properties
PASS URI Handling Function Property: decodeURI
PASS URI Handling Function Property: decodeURIComponent
PASS URI Handling Function Property: encodeURI
PASS URI Handling Function Property: encodeURIComponent
PASS Constructor Properties of the Global Object
PASS Constructor Property: Object
PASS Constructor Property: Function
PASS Constructor Property: Array
PASS Constructor Property: String
PASS Constructor Property: Boolean
PASS Constructor Property: Number
PASS Constructor Property: Date
PASS Constructor Property: RegExp
PASS Constructor Property: Error
PASS Constructor Property: EvalError
PASS Constructor Property: RangeError
PASS Constructor Property: ReferenceError
PASS Constructor Property: SyntaxError
PASS Constructor Property: TypeError
PASS Constructor Property: URIError
PASS Other Properties of the Global Object
PASS Other Property: Math
PASS Other Property: JSON
PASS EventTarget interface
PASS EventTarget method: addEventListener
PASS EventTarget method: removeEventListener
PASS EventTarget method: dispatchEvent
PASS Window interface
PASS Window method: close
PASS Window method: stop
PASS Window method: focus
PASS Window method: blur
PASS Window method: open
PASS Window method: alert
PASS Window method: confirm
PASS Window method: prompt
PASS Window method: print
PASS Window method: postMessage
PASS Window method: btoa
PASS Window method: atob
PASS Window method: setTimeout
PASS Window method: clearTimeout
PASS Window method: setInterval
PASS Window method: clearInterval
PASS Window method: queueMicrotask
PASS Window method: createImageBitmap
PASS Window method: getSelection
PASS Window method: getComputedStyle
PASS Window method: matchMedia
PASS Window method: moveBy
PASS Window method: moveTo
PASS Window method: resizeBy
PASS Window method: resizeTo
PASS Window method: scroll
PASS Window method: scrollTo
PASS Window method: scrollBy
PASS Window readonly attribute: history
PASS Window readonly attribute: frameElement
PASS Window readonly attribute: navigator
FAIL Window readonly attribute: applicationCache assert_true: applicationCache in window expected true got false
PASS Window readonly attribute: sessionStorage
PASS Window readonly attribute: localStorage
PASS Window attribute: name
PASS Window attribute: status
PASS Window attribute: opener
PASS Window attribute: onabort
PASS Window attribute: onafterprint
PASS Window attribute: onbeforeprint
PASS Window attribute: onbeforeunload
PASS Window attribute: onblur
PASS Window attribute: oncancel
PASS Window attribute: oncanplay
PASS Window attribute: oncanplaythrough
PASS Window attribute: onchange
PASS Window attribute: onclick
PASS Window attribute: onclose
PASS Window attribute: oncontextmenu
PASS Window attribute: oncuechange
PASS Window attribute: ondblclick
PASS Window attribute: ondrag
PASS Window attribute: ondragend
PASS Window attribute: ondragenter
PASS Window attribute: ondragleave
PASS Window attribute: ondragover
PASS Window attribute: ondragstart
PASS Window attribute: ondrop
PASS Window attribute: ondurationchange
PASS Window attribute: onemptied
PASS Window attribute: onended
PASS Window attribute: onerror
PASS Window attribute: onfocus
PASS Window attribute: onhashchange
PASS Window attribute: oninput
PASS Window attribute: oninvalid
PASS Window attribute: onkeydown
PASS Window attribute: onkeypress
PASS Window attribute: onkeyup
PASS Window attribute: onload
PASS Window attribute: onloadeddata
PASS Window attribute: onloadedmetadata
PASS Window attribute: onloadstart
PASS Window attribute: onmessage
PASS Window attribute: onmousedown
PASS Window attribute: onmousemove
PASS Window attribute: onmouseout
PASS Window attribute: onmouseover
PASS Window attribute: onmouseup
PASS Window attribute: onmousewheel
PASS Window attribute: onoffline
PASS Window attribute: ononline
PASS Window attribute: onpause
PASS Window attribute: onplay
PASS Window attribute: onplaying
PASS Window attribute: onpagehide
PASS Window attribute: onpageshow
PASS Window attribute: onpopstate
PASS Window attribute: onprogress
PASS Window attribute: onratechange
PASS Window attribute: onreset
PASS Window attribute: onresize
PASS Window attribute: onscroll
PASS Window attribute: onseeked
PASS Window attribute: onseeking
PASS Window attribute: onselect
PASS Window attribute: onstalled
PASS Window attribute: onstorage
PASS Window attribute: onsubmit
PASS Window attribute: onsuspend
PASS Window attribute: ontimeupdate
PASS Window attribute: onunload
PASS Window attribute: onvolumechange
PASS Window attribute: onwaiting
PASS Window unforgeable attribute: window
PASS Window unforgeable attribute: document
PASS Window unforgeable attribute: location
PASS Window unforgeable attribute: top
PASS Window replaceable attribute: self
PASS Window replaceable attribute: locationbar
PASS Window replaceable attribute: menubar
PASS Window replaceable attribute: personalbar
PASS Window replaceable attribute: scrollbars
PASS Window replaceable attribute: statusbar
PASS Window replaceable attribute: toolbar
PASS Window replaceable attribute: frames
PASS Window replaceable attribute: parent
PASS Window replaceable attribute: external
PASS Window replaceable attribute: length
PASS Window replaceable attribute: origin
PASS Window replaceable attribute: screen
PASS Window replaceable attribute: scrollX
PASS Window replaceable attribute: scrollY
PASS Window replaceable attribute: pageXOffset
PASS Window replaceable attribute: pageYOffset
PASS Window replaceable attribute: innerWidth
PASS Window replaceable attribute: innerHeight
PASS Window replaceable attribute: screenLeft
PASS Window replaceable attribute: screenTop
PASS Window replaceable attribute: screenX
PASS Window replaceable attribute: screenY
PASS Window replaceable attribute: outerWidth
PASS Window replaceable attribute: outerHeight
PASS Window replaceable attribute: devicePixelRatio
PASS constructor
Harness: the test ran to completion.

@@ -122,7 +122,6 @@ var readonlyAttributes = [
"history",
"frameElement",
"navigator",
"applicationCache",
// WindowSessionStorage
"sessionStorage",

@@ -561,24 +561,6 @@ onload = function() {
assert_true(ws.url.indexOf(expected_utf8) > -1, msg(expected_utf8, got));
}, 'WebSocket#url');
// Parsing cache manifest
function test_cache_manifest(mode) {
subsetTestByKey('appcache', async_test, function() {
var iframe = document.createElement('iframe');
var uuid = token();
iframe.src = 'resources/page-using-manifest.py?id='+uuid+'&encoding='+encoding+'&mode='+mode;
document.body.appendChild(iframe);
this.add_cleanup(function() {
document.body.removeChild(iframe);
});
poll_for_stash(this, uuid, expected_utf8);
}, 'Parsing cache manifest (' + mode + ')');
}
'CACHE, FALLBACK, NETWORK'.split(', ').forEach(function(str) {
test_cache_manifest(str);
});
// CSS
function test_css(tmpl, expected_cssom, encoding, use_style_element) {
var desc = ['CSS', (use_style_element ? '<style>' : '<link> (' + encoding + ')'), tmpl].join(' ');

@@ -1,6 +0,0 @@
This is a testharness.js-based test.
TIMEOUT Parsing cache manifest (CACHE) Test timed out
TIMEOUT Parsing cache manifest (FALLBACK) Test timed out
PASS Parsing cache manifest (NETWORK)
Harness: the test ran to completion.

@@ -1,6 +0,0 @@
This is a testharness.js-based test.
TIMEOUT Parsing cache manifest (CACHE) Test timed out
TIMEOUT Parsing cache manifest (FALLBACK) Test timed out
PASS Parsing cache manifest (NETWORK)
Harness: the test ran to completion.

@@ -14,7 +14,6 @@
<meta name="variant" content="?include=svg">
<meta name="variant" content="?include=xhr">
<meta name="variant" content="?include=websocket">
<meta name="variant" content="?include=appcache">
<meta name="variant" content="?include=css">
<meta name="variant" content="?include=xml">
<meta name="variant" content="?include=url">

@@ -1,6 +0,0 @@
This is a testharness.js-based test.
TIMEOUT Parsing cache manifest (CACHE) Test timed out
TIMEOUT Parsing cache manifest (FALLBACK) Test timed out
PASS Parsing cache manifest (NETWORK)
Harness: the test ran to completion.

@@ -14,7 +14,6 @@
<meta name="variant" content="?include=svg">
<meta name="variant" content="?include=xhr">
<meta name="variant" content="?include=websocket">
<meta name="variant" content="?include=appcache">
<meta name="variant" content="?include=css">
<meta name="variant" content="?include=xml">
<meta name="variant" content="?include=url">

@@ -1,6 +0,0 @@
This is a testharness.js-based test.
TIMEOUT Parsing cache manifest (CACHE) Test timed out
TIMEOUT Parsing cache manifest (FALLBACK) Test timed out
PASS Parsing cache manifest (NETWORK)
Harness: the test ran to completion.

@@ -14,7 +14,6 @@
<meta name="variant" content="?include=svg">
<meta name="variant" content="?include=xhr">
<meta name="variant" content="?include=websocket">
<meta name="variant" content="?include=appcache">
<meta name="variant" content="?include=css">
<meta name="variant" content="?include=xml">
<meta name="variant" content="?include=url">

@@ -1,6 +0,0 @@
This is a testharness.js-based test.
TIMEOUT Parsing cache manifest (CACHE) Test timed out
TIMEOUT Parsing cache manifest (FALLBACK) Test timed out
PASS Parsing cache manifest (NETWORK)
Harness: the test ran to completion.

@@ -719,7 +719,6 @@ LAYOUTTESTS APIS: webxr/resources/webxr_util.js
# Signed Exchange files have hard-coded URLs in the certUrl field
WEB-PLATFORM.TEST:signed-exchange/resources/*.sxg
WEB-PLATFORM.TEST:signed-exchange/appcache/resources/*.sxg
WEB-PLATFORM.TEST:signed-exchange/resources/generate-test-sxgs.sh
# Web Bundle files have hard-coded URLs

@@ -1,67 +0,0 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/test-helpers.sub.js"></script>
<body>
<script>
var IS_APPCACHED_URL = "resources/appcache-ordering.is-appcached.html";
var SERVICE_WORKER_SCOPE = "resources/appcache-ordering";
var SERVICE_WORKER_SCRIPT = "resources/empty-worker.js";
var resolve_install_appcache = undefined;
var reject_install_appcache = undefined;
var frames = [];
var resolve_is_appcached = undefined;
// Called by the IS_APPCACHED_URL child frame.
function notify_is_appcached(is) {
resolve_is_appcached(is);
}
function is_appcached() {
return new Promise(function(resolve) {
var frame = document.createElement('iframe');
frames.push(frame);
frame.src = IS_APPCACHED_URL;
document.body.appendChild(frame);
resolve_is_appcached = function(is) {
document.body.removeChild(frame);
resolve(is);
};
});
}
promise_test(function(t) {
return service_worker_unregister(t, SERVICE_WORKER_SCOPE)
.then(function() {
return install_appcache_ordering_manifest();
})
.then(function() {
return is_appcached();
})
.then(function(result) {
assert_true(result, 'appcache should initially be utilized');
return service_worker_unregister_and_register(
t, SERVICE_WORKER_SCRIPT, SERVICE_WORKER_SCOPE);
})
.then(function(r) {
t.add_cleanup(function() {
return service_worker_unregister(t, SERVICE_WORKER_SCOPE);
});
return wait_for_state(t, r.installing, 'activated');
})
.then(function() {
return is_appcached();
})
.then(function(result) {
assert_false(result, 'but serviceworkers should take priority');
frames.forEach(function(f) { f.remove(); });
});
}, 'serviceworkers take priority over appcaches');
</script>
</body>

@@ -1,81 +0,0 @@
<!doctype html>
<meta charset=utf-8>
<title></title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/test-helpers.sub.js"></script>
<body>
<script>
// This test makes a frame controlled by AppCache, then registers a service
// worker that calls claim() to control the frame. AppCache should be completely
// bypassed once the service worker claims the frame.
const fetch_text = async frame => {
const response = await
frame.contentWindow.fetch('appcache-ordering.is-appcached.js');
return await response.text();
};
const check_is_appcached = async frame => {
// This should FALLBACK to ordering.is_appcached.js as in the manifest
// if the appcache is effective.
const response = await
frame.contentWindow.fetch('appcache-ordering.is-appcached404.js');
return await response.ok;
};
promise_test(async t => {
const scope = 'resources/';
const script = 'resources/claim-worker.js';
await install_appcache_ordering_manifest();
// Create the test iframe.
const frame = await with_iframe('resources/blank.html');
t.add_cleanup(async () => {
if (frame) frame.remove();
return service_worker_unregister(t, scope);
});
// Check that the appcache controls the frame.
assert_equals(await check_is_appcached(frame), true,
'AppCache should be present');
// Check the controller and test with fetch.
assert_equals(frame.contentWindow.navigator.controller, undefined,
'Should have no controller.');
assert_equals(await fetch_text(frame), 'var is_appcached = true;\n',
'fetch() should not be intercepted.');
// Register a service worker.
let registration = await service_worker_unregister_and_register(t, script, scope);
const worker = registration.installing;
await wait_for_state(t, worker, 'activated');
// Let the service worker claim the iframe.
const channel = new MessageChannel();
const check_message = new Promise(resolve => {
channel.port1.onmessage = async e => {
assert_equals(e.data, 'PASS', 'Worker call to claim() should fulfill.');
resolve();
};
});
worker.postMessage({port: channel.port2}, [channel.port2]);
await check_message;
// Check that the appcache does NOT control the frame.
assert_equals(await check_is_appcached(frame), false,
'AppCache should not be present');
// Check the controller and test with fetch.
registration = await
frame.contentWindow.navigator.serviceWorker.getRegistration(scope);
assert_equals(frame.contentWindow.navigator.serviceWorker.controller,
registration.active, 'iframe should be claimed.');
assert_equals(await fetch_text(frame), 'Intercepted!',
'fetch() should be intercepted.');
}, 'fetch() should be intercepted after the client is claimed.')
</script>
</body>

@@ -1,26 +0,0 @@
<html manifest="appcache-ordering.manifest">
<script>
var handled = false;
function installComplete() {
if (handled)
return;
handled = true;
window.parent.notify_appcache_installed(true);
}
function installFailed() {
if (handled)
return;
handled = true;
window.parent.notify_appcache_installed(false);
}
applicationCache.oncached = installComplete;
applicationCache.onnoupdate = installComplete;
applicationCache.onupdateready = installFailed;
applicationCache.onerror = installFailed;
applicationCache.onobsolete = installFailed;
</script>
</html>

@@ -1,13 +0,0 @@
<html> <!-- Intentionally does NOT include a manifest attribute -->
<body>
<!-- This should FALLBACK to ordering.is_appcached.js as specified in manifest
when the appcache is present -->
<script src="appcache-ordering.is-appcached404.js"></script>
<script>
// If the script of the fallback resource loaded, is_appcached will be defined.
window.parent.notify_is_appcached(typeof is_appcached != 'undefined');
</script>
</body>
</html>

@@ -1,8 +0,0 @@
CACHE MANIFEST
appcache-ordering.is-appcached.html
blank.html
FALLBACK:
appcache-ordering.is-appcached404.js appcache-ordering.is-appcached.js

@@ -298,32 +298,3 @@ async function wait_for_activation_on_sample_scope(t, window_or_workerglobalscop
await registration.unregister();
}
// This installs resources/appcache-ordering.manifest.
function install_appcache_ordering_manifest() {
let resolve_install_appcache;
let reject_install_appcache;
// This is notified by the child iframe, i.e. appcache-ordering.install.html,
// that's to be created below.
window.notify_appcache_installed = success => {
if (success)
resolve_install_appcache();
else
reject_install_appcache();
};
return new Promise((resolve, reject) => {
const frame = document.createElement('iframe');
frame.src = 'resources/appcache-ordering.install.html';
document.body.appendChild(frame);
resolve_install_appcache = function() {
document.body.removeChild(frame);
resolve();
};
reject_install_appcache = function() {
document.body.removeChild(frame);
reject();
};
});
}

@@ -1,3 +0,0 @@
CACHE MANIFEST
resources/appcached-url.html
resources/sxg/sxg-location.sxg

@@ -1,10 +0,0 @@
<!DOCTYPE html>
<title>Content of appcached URL</title>
<script>
window.addEventListener('message', (event) => {
event.data.port.postMessage({
location: document.location.href,
referrer: document.referrer,
appcacheContent: false});
}, false);
</script>

@@ -1,10 +0,0 @@
<!DOCTYPE html>
<title>Content of appcached URL</title>
<script>
window.addEventListener('message', (event) => {
event.data.port.postMessage({
location: document.location.href,
referrer: document.referrer,
appcacheContent: true});
}, false);
</script>

@@ -1,10 +0,0 @@
<!DOCTYPE html>
<title>Content of fallback URL</title>
<script>
window.addEventListener('message', (event) => {
event.data.port.postMessage({
location: document.location.href,
referrer: document.referrer,
is_fallback: true});
}, false);
</script>

@@ -1,2 +0,0 @@
Content-Type: application/signed-exchange;v=b3
X-Content-Type-Options: nosniff

@@ -1,4 +0,0 @@
This is a testharness.js-based test.
FAIL SignedHTTPExchange inner resp should take precedence to appcache. promise_test: Unhandled rejection with value: object "TypeError: Cannot read properties of undefined (reading 'addEventListener')"
Harness: the test ran to completion.

@@ -1,21 +0,0 @@
<html manifest="appcache.manifest">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/get-host-info.sub.js"></script>
<script src="../resources/sxg-util.js"></script>
<script>
const cache_ready = new Promise(resolve => {
['cached','noupdate'].forEach(event_name => {
window.applicationCache.addEventListener(event_name, resolve);
});
});
promise_test(async (t) => {
await cache_ready;
const sxgUrl = get_host_info().HTTPS_ORIGIN + '/signed-exchange/appcache/resources/sxg/sxg-appcached.sxg';
const message = await openSXGInIframeAndWaitForMessage(t, sxgUrl);
assert_equals(message.location, innerURLOrigin() + '/signed-exchange/appcache/resources/appcached-url.html');
assert_false(message.appcacheContent);
}, 'SignedHTTPExchange inner resp should take precedence to appcache.');
</script>

@@ -1,21 +0,0 @@
<html manifest="appcache.manifest">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/get-host-info.sub.js"></script>
<script src="../resources/sxg-util.js"></script>
<script>
const cache_ready = new Promise(resolve => {
['cached','noupdate'].forEach(event_name => {
window.applicationCache.addEventListener(event_name, resolve);
});
});
promise_test(async (t) => {
await cache_ready;
const sxgUrl = get_host_info().HTTPS_ORIGIN + '/signed-exchange/appcache/resources/sxg/sxg-location.sxg';
const message = await openSXGInIframeAndWaitForMessage(t, sxgUrl);
assert_equals(message.location, innerURLOrigin() + '/signed-exchange/appcache/resources/inner-url.html');
assert_false(message.is_fallback);
}, 'SignedHTTPExchange cached in appcache should work.');
</script>

@@ -53,37 +53,6 @@ gen-signedexchange \
-o sxg/sxg-location.sxg \
-miRecordSize 100
# A valid Signed Exchange for appcache test.
gen-signedexchange \
-version $sxg_version \
-uri $inner_url_origin/signed-exchange/appcache/resources/inner-url.html \
-status 200 \
-content sxg-location.html \
-certificate $certfile \
-certUrl $cert_url_origin/signed-exchange/resources/$certfile.cbor \
-validityUrl $inner_url_origin/signed-exchange/resources/resource.validity.msg \
-privateKey $keyfile \
-date 2018-04-01T00:00:00Z \
-expire 168h \
-o ../appcache/resources/sxg/sxg-location.sxg \
-miRecordSize 100
# A valid Signed Exchange for appcache test
# - appcache and the sxg inner resp both provide the content for the url
gen-signedexchange \
-version $sxg_version \
-uri $inner_url_origin/signed-exchange/appcache/resources/appcached-url.html \
-status 200 \
-content ../appcache/resources/appcached-url-in-sxg.html \
-certificate $certfile \
-certUrl $cert_url_origin/signed-exchange/resources/$certfile.cbor \
-validityUrl $inner_url_origin/signed-exchange/resources/resource.validity.msg \
-privateKey $keyfile \
-date 2018-04-01T00:00:00Z \
-expire 168h \
-o ../appcache/resources/sxg/sxg-appcached.sxg \
-miRecordSize 100
# A valid Signed Exchange. The origin of certUrl is the "alt" origin where NEL
# policy is installed in reporting tests.
gen-signedexchange \

@@ -1,29 +0,0 @@
<!doctype html>
<html>
<title>Quota Estimate: usage details reflect application cache changes.</title>
<meta charset='utf-8'>
<link rel='author' href='jarrydg@chromium.org' title='Jarryd Goodman'>
<script src='/resources/testharness.js'></script>
<script src='/resources/testharnessreport.js'></script>
<script src='../cookie-store/resources/helpers.js'></script>
<script>
'use strict';
promise_test(async t => {
let estimate = await navigator.storage.estimate();
const usageBeforeCreate = estimate.usageDetails.applicationCache || 0;
const iframe = await
createIframe('./resources/iframe_with_appcache_manifest.html', t);
await waitForMessage();
estimate = await navigator.storage.estimate();
assert_true('applicationCache' in estimate.usageDetails);
const usageAfterCreate = estimate.usageDetails.applicationCache;
assert_greater_than(
usageAfterCreate, usageBeforeCreate);
}, 'estimate() shows usage increase after app is cached');
</script>
</html>

@@ -1,3 +0,0 @@
CACHE MANIFEST
# iframe_with_appcache_manifest.html references this manifest to get cached in
# AppCache.

@@ -1,17 +0,0 @@
<!doctype html>
<html manifest="appcache.manifest">
<title>Iframe that will be cached using application cache.</title>
<meta charset='utf-8'>
<link rel='author' href='jarrydg@chromium.org' title='Jarryd Goodman'>
<script>
(async () => {
const initPromise = new Promise(resolve => {
applicationCache.addEventListener('cached', resolve);
applicationCache.addEventListener('noupdate', resolve);
});
await initPromise;
window.parent.postMessage('document cached');
})();
</script>
</html>

@@ -1,21 +0,0 @@
<!doctype html>
<html manifest=cache.manifest>
<title>cache manifest</title>
<p>Script did not run.</p>
<p>To run this test again, delete private data and then load this test again.</p>
<script>
var p = document.querySelector('p');
if (sessionStorage.testHasBeenLoadedBefore) {
var worker = new Worker('application-cache-dedicated.js');
worker.onmessage = function(e) {
p.textContent = 'PASS';
}
setTimeout(function(){
if (p.textContent != 'PASS')
p.textContent = 'FAIL (got no message from worker)';
}, 250);
} else {
sessionStorage.testHasBeenLoadedBefore = true;
p.textContent = 'Enable offline mode and then reload this test. It should say PASS.';
}
</script>

@@ -1,3 +0,0 @@
CACHE MANIFEST
application-cache-dedicated.html
application-cache-dedicated.js