Commit f4b08ee3 authored by Kenichi Ishibashi's avatar Kenichi Ishibashi Committed by Commit Bot

S13nSW: Update...

S13nSW: Update wpt/service-workers/service-worker/navigation-preload/broken-chunked-encoding.https.html

Before this CL, the test expected that preloadResponse is
rejected when decoding a chunked body is failed. However preloadResponse
is supposed to be resolved once the headers are arrived. It should be
resolved instead of rejected. Update the test to expect that
preloadResponse is resolved even for broken chunked body.

With S13nSW enabled, this test will start passing but it wouldn't
pass w/o S13nSW.

This CL also adds a test case where broken chunked body is transfered
with delays.

Bug: 830472
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: Ibc2909dfc4537f209417a13cff63898ad39229a7
Reviewed-on: https://chromium-review.googlesource.com/1004562
Commit-Queue: Kenichi Ishibashi <bashi@chromium.org>
Reviewed-by: default avatarMatt Falkenhagen <falken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550061}
parent 6f9bcf6c
......@@ -19,7 +19,6 @@ Bug(none) external/wpt/service-workers/service-worker/fetch-request-xhr-sync-on-
crbug.com/771118 external/wpt/service-workers/service-worker/mime-sniffing.https.html [ Failure ]
Bug(none) external/wpt/service-workers/service-worker/registration-updateviacache.https.html [ Failure Timeout ]
Bug(none) external/wpt/service-workers/service-worker/shared-worker-controlled.https.html [ Timeout ]
Bug(none) external/wpt/service-workers/service-worker/navigation-preload/broken-chunked-encoding.https.html [ Failure ]
Bug(none) http/tests/appcache/top-frame-3.html [ Pass Timeout ]
Bug(none) http/tests/appcache/top-frame-4.html [ Pass Timeout ]
Bug(none) http/tests/appcache/local-content.html [ Pass Timeout ]
......@@ -31,6 +30,7 @@ Bug(none) http/tests/appcache/reload.html [ Pass Timeout ]
# Passes on NetworkService and fails on non-NetworkService because
# NetworkService isn't affected by https://crbug.com/595993.
Bug(none) external/wpt/service-workers/service-worker/request-end-to-end.https.html [ Pass ]
crbug.com/830472 external/wpt/service-workers/service-worker/navigation-preload/broken-chunked-encoding.https.html [ Pass ]
Bug(none) external/wpt/streams/readable-byte-streams/properties.serviceworker.https.html [ Timeout Pass ]
Bug(none) external/wpt/wasm/wasm_service_worker_test.https.html [ Crash Timeout ]
......
......@@ -3820,6 +3820,10 @@ crbug.com/802915 css3/blending/isolation-should-include-non-local-background.htm
crbug.com/807838 external/wpt/service-workers/service-worker/worker-in-sandboxed-iframe-by-csp-fetch-event.https.html [ Crash Pass ]
crbug.com/807838 virtual/navigation-mojo-response/external/wpt/service-workers/service-worker/worker-in-sandboxed-iframe-by-csp-fetch-event.https.html [ Crash Pass ]
crbug.com/830472 external/wpt/service-workers/service-worker/navigation-preload/broken-chunked-encoding.https.html [ Failure ]
crbug.com/830472 virtual/navigation-mojo-response/external/wpt/service-workers/service-worker/navigation-preload/broken-chunked-encoding.https.html [ Failure ]
crbug.com/830472 virtual/outofblink-cors/external/wpt/service-workers/service-worker/navigation-preload/broken-chunked-encoding.https.html [ Failure ]
# Sheriff faulures 2017-12-12
crbug.com/794180 http/tests/devtools/layers/layer-compositing-reasons.js [ Failure Pass ]
......
......@@ -18,8 +18,25 @@ promise_test(t => {
.then(frame => {
assert_equals(
frame.contentDocument.body.textContent,
'Done');
'PASS: preloadResponse resolved');
});
}, 'Navigation Preload with broken chunked encoding must fail.');
}, 'FetchEvent#preloadResponse resolves even if the body is sent with broken chunked encoding.');
promise_test(t => {
var script = 'resources/broken-chunked-encoding-worker.js';
var scope = 'resources/chunked-encoding-scope.py?use_broken_body';
return service_worker_unregister_and_register(t, script, scope)
.then(registration => {
add_completion_callback(_ => registration.unregister());
var worker = registration.installing;
return wait_for_state(t, worker, 'activated');
})
.then(_ => with_iframe(scope))
.then(frame => {
assert_equals(
frame.contentDocument.body.textContent,
'PASS: preloadResponse resolved');
});
}, 'FetchEvent#preloadResponse resolves even if the body is sent with broken chunked encoding with some delays');
</script>
......@@ -6,6 +6,6 @@ self.addEventListener('activate', event => {
self.addEventListener('fetch', event => {
event.respondWith(event.preloadResponse
.then(
_ => new Response('Fail: got a response'),
_ => new Response('Done')));
_ => new Response('PASS: preloadResponse resolved'),
_ => new Response('FAIL: preloadResponse rejected')));
});
import time
def main(request, response):
body = "hello\nworld\n\n"
use_broken_body = 'use_broken_body' in request.GET
response.add_required_headers = False
response.writer.write_status(200)
......@@ -10,7 +10,10 @@ def main(request, response):
response.writer.end_headers()
for idx in range(10):
response.writer.write("%s\r\n%s\r\n" % (len(str(idx)), idx))
if use_broken_body:
response.writer.write("%s\n%s\n" % (len(str(idx)), idx))
else:
response.writer.write("%s\r\n%s\r\n" % (len(str(idx)), idx))
response.writer.flush()
time.sleep(0.001)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment