| Index: content/child/web_data_consumer_handle_impl.cc
|
| diff --git a/content/child/web_data_consumer_handle_impl.cc b/content/child/web_data_consumer_handle_impl.cc
|
| index c111cca36035cb5863d525749d0a6bbf71930bf9..d38ea0af4bc43799f390001101ee6fabdbc8413f 100644
|
| --- a/content/child/web_data_consumer_handle_impl.cc
|
| +++ b/content/child/web_data_consumer_handle_impl.cc
|
| @@ -13,6 +13,7 @@
|
| #include "base/logging.h"
|
| #include "base/macros.h"
|
| #include "base/memory/ptr_util.h"
|
| +#include "components/scheduler/child/web_task_runner_impl.h"
|
| #include "mojo/public/c/system/types.h"
|
|
|
| namespace content {
|
| @@ -36,8 +37,11 @@ class WebDataConsumerHandleImpl::Context
|
|
|
| WebDataConsumerHandleImpl::ReaderImpl::ReaderImpl(
|
| scoped_refptr<Context> context,
|
| - Client* client)
|
| - : context_(context), client_(client) {
|
| + Client* client,
|
| + scoped_refptr<base::SingleThreadTaskRunner> task_runner)
|
| + : context_(context),
|
| + handle_watcher_(std::move(task_runner)),
|
| + client_(client) {
|
| if (client_)
|
| StartWatching();
|
| }
|
| @@ -127,8 +131,19 @@ WebDataConsumerHandleImpl::~WebDataConsumerHandleImpl() {
|
| }
|
|
|
| std::unique_ptr<blink::WebDataConsumerHandle::Reader>
|
| -WebDataConsumerHandleImpl::obtainReader(Client* client) {
|
| - return base::WrapUnique(new ReaderImpl(context_, client));
|
| +WebDataConsumerHandleImpl::obtainReader(
|
| + Client* client,
|
| + std::unique_ptr<blink::WebTaskRunner> reader_task_runner) {
|
| + scoped_refptr<base::SingleThreadTaskRunner> task_runner;
|
| + if (reader_task_runner) {
|
| + task_runner =
|
| + scheduler::WebTaskRunnerImpl::GetBaseTaskRunner(*reader_task_runner);
|
| + } else {
|
| + task_runner = base::ThreadTaskRunnerHandle::Get();
|
| + }
|
| +
|
| + return base::WrapUnique(new ReaderImpl(context_, client,
|
| + std::move(task_runner)));
|
| }
|
|
|
| const char* WebDataConsumerHandleImpl::debugName() const {
|
|
|