Chromium Code Reviews| Index: content/child/shared_memory_data_consumer_handle.cc |
| diff --git a/content/child/shared_memory_data_consumer_handle.cc b/content/child/shared_memory_data_consumer_handle.cc |
| index 3c9b7a26ff8e65e81374fbc3a9524c8323ac5d96..ba5e2cec2973ecb7853a545e46583a551cccd5b1 100644 |
| --- a/content/child/shared_memory_data_consumer_handle.cc |
| +++ b/content/child/shared_memory_data_consumer_handle.cc |
| @@ -15,6 +15,7 @@ |
| #include "base/single_thread_task_runner.h" |
| #include "base/synchronization/lock.h" |
| #include "base/threading/thread_task_runner_handle.h" |
| +#include "components/scheduler/child/web_task_runner_impl.h" |
| #include "content/public/child/fixed_received_data.h" |
| namespace content { |
| @@ -119,7 +120,15 @@ class SharedMemoryDataConsumerHandle::Context final |
| lock_.AssertAcquired(); |
| DCHECK(!notification_task_runner_); |
| DCHECK(!client_); |
| - notification_task_runner_ = base::ThreadTaskRunnerHandle::Get(); |
| + |
| + blink::WebTaskRunner* task_runner = |
| + client ? client->getTaskRunner() : nullptr; |
| + if (task_runner) { |
| + notification_task_runner_ = |
| + scheduler::WebTaskRunnerImpl::GetBaseTaskRunner(*task_runner); |
|
kinuko
2016/07/28 15:41:31
Per Sami's comment this would be a tentative solut
|
| + } else { |
| + notification_task_runner_ = base::ThreadTaskRunnerHandle::Get(); |
| + } |
| client_ = client; |
| if (client && !(IsEmpty() && result() == Ok)) { |
| // We cannot notify synchronously because the user doesn't have the reader |