blob: b05c01b2d96a95764d5469180904af8ccb86aea0 [file] [log] [blame]
<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/stack-overflow.js"></script>
<script>
// Trigger the following crash:
// #0 0x7ffff7d8092c base::debug::StackTrace::StackTrace()
// #1 0x7ffff7d80491 base::debug::(anonymous namespace)::StackDumpSignalHandler()
// #2 0x7ffff00130c0 <unknown>
// #3 0x7ffff41c113d v8::internal::GlobalHandles::MakeWeak()
// #4 0x7ffff308198e blink::ReadableStreamBytesConsumer::ReadableStreamBytesConsumer()
// #5 0x7ffff306bc6f blink::BodyStreamBuffer::ReleaseHandle()
// #6 0x7ffff306b883 blink::BodyStreamBuffer::StartLoading()
// #7 0x7ffff306914d blink::Body::blob()
// #8 0x7ffff37a9d20 blink::V8Response::blobMethodCallback()
// #9 0x7ffff3f02097 v8::internal::FunctionCallbackArguments::Call()
// #10 0x7ffff3f015a3 v8::internal::(anonymous namespace)::HandleApiCallHelper<>()
// #11 0x7ffff3f00ca6 v8::internal::Builtin_Impl_HandleApiCall()
// This happens on Linux release build at 70ddf623, no DCHECK. It may be
// possible to reproduce in other environments by bisecting the second argument
// to fillStackAndRun() until you get the above crash.
// See https://bugs.chromium.org/p/chromium/issues/detail?id=829790#c5
test(() => {
const rs = new ReadableStream();
const response = new Response(rs);
try {
// This throws an exception in debug builds but not in release builds.
// If the process doesn't crash, the test passed.
fillStackAndRun(() => response.blob(), 784);
} catch (e) {
}
}, 'stack overflow in response.blob() should not crash the browser');
</script>