| 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..b35a986c3fd3fe3bbfdf576d056d8a3a4752f413 100644
|
| --- a/content/child/web_data_consumer_handle_impl.cc
|
| +++ b/content/child/web_data_consumer_handle_impl.cc
|
| @@ -13,12 +13,27 @@
|
| #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 {
|
|
|
| using Result = blink::WebDataConsumerHandle::Result;
|
|
|
| +namespace {
|
| +
|
| +scoped_refptr<base::SingleThreadTaskRunner>
|
| +GetTaskRunnerForDataConsumerHandleClient(
|
| + blink::WebDataConsumerHandle::Client* client) {
|
| + blink::WebTaskRunner* task_runner =
|
| + client ? client->getTaskRunner() : nullptr;
|
| + if (task_runner)
|
| + return scheduler::WebTaskRunnerImpl::GetBaseTaskRunner(*task_runner);
|
| + return base::ThreadTaskRunnerHandle::Get();
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| class WebDataConsumerHandleImpl::Context
|
| : public base::RefCountedThreadSafe<Context> {
|
| public:
|
| @@ -37,7 +52,9 @@ class WebDataConsumerHandleImpl::Context
|
| WebDataConsumerHandleImpl::ReaderImpl::ReaderImpl(
|
| scoped_refptr<Context> context,
|
| Client* client)
|
| - : context_(context), client_(client) {
|
| + : context_(context),
|
| + handle_watcher_(GetTaskRunnerForDataConsumerHandleClient(client)),
|
| + client_(client) {
|
| if (client_)
|
| StartWatching();
|
| }
|
|
|