Commit 1c75747a authored by Makoto Shimazu's avatar Makoto Shimazu Committed by Commit Bot

ServiceWorker: Use WrappedIOBuffer instead of MojoToNetIOBuffer

Previously we use network::MojoToNetIOBuffer, and it ensures CompleteRead() is
called when its destruction. However, CompleteRead() may be called again when a
SWCacheWriter gets destructed after a write has done and ReleaseHandle() has
been called. This CL avoids that by using WrappedIOBuffer instead of
MojoToNetIOBuffer.

TEST=content_unittests '--gtest_filter=ServiceWorkerNewScript*' with patching crrev.com/c/957918

Bug: 820540
Change-Id: I3419feaca83aca277a4216970104bceeb423506a
Reviewed-on: https://chromium-review.googlesource.com/991626Reviewed-by: default avatarHelen Li <xunjieli@chromium.org>
Commit-Queue: Makoto Shimazu <shimazu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548700}
parent 4e66bb29
......@@ -387,8 +387,8 @@ void ServiceWorkerNewScriptLoader::WriteData(
// next time.
uint32_t bytes_written = std::min<uint32_t>(kReadBufferSize, bytes_available);
auto buffer = base::MakeRefCounted<network::MojoToNetIOBuffer>(
pending_buffer.get(), bytes_written);
auto buffer =
base::MakeRefCounted<net::WrappedIOBuffer>(pending_buffer->buffer());
MojoResult result = client_producer_->WriteData(
buffer->data(), &bytes_written, MOJO_WRITE_DATA_FLAG_NONE);
switch (result) {
......
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