Chromium Code Reviews| Index: net/url_request/url_request_data_job_fuzzer.cc |
| diff --git a/net/url_request/url_request_data_job_fuzzer.cc b/net/url_request/url_request_data_job_fuzzer.cc |
| index 003edd5cb223e6221bd8432656b251992616c840..9c6803b2a3da52945334c059b7c5c81efabd013c 100644 |
| --- a/net/url_request/url_request_data_job_fuzzer.cc |
| +++ b/net/url_request/url_request_data_job_fuzzer.cc |
| @@ -7,9 +7,10 @@ |
| #include "base/memory/ptr_util.h" |
| #include "base/memory/singleton.h" |
| +#include "base/message_loop/message_loop.h" |
| #include "base/run_loop.h" |
| #include "base/test/fuzzed_data_provider.h" |
| -#include "base/threading/thread_task_runner_handle.h" |
| +#include "base/test/scoped_task_scheduler.h" |
| #include "net/http/http_request_headers.h" |
| #include "net/url_request/data_protocol_handler.h" |
| #include "net/url_request/url_request.h" |
| @@ -29,7 +30,7 @@ const size_t kMaxLengthForFuzzedRange = 32; |
| class URLRequestDataJobFuzzerHarness : public net::URLRequest::Delegate { |
| public: |
| URLRequestDataJobFuzzerHarness() |
| - : context_(true), task_runner_(base::ThreadTaskRunnerHandle::Get()) { |
| + : scoped_task_scheduler_(base::MessageLoop::current()), context_(true) { |
| job_factory_.SetProtocolHandler( |
| "data", base::MakeUnique<net::DataProtocolHandler>()); |
| context_.set_job_factory(&job_factory_); |
| @@ -95,7 +96,7 @@ class URLRequestDataJobFuzzerHarness : public net::URLRequest::Delegate { |
| void QuitLoop() { |
| DCHECK(read_loop_); |
| - task_runner_->PostTask(FROM_HERE, read_loop_->QuitClosure()); |
| + read_loop_->QuitWhenIdle(); |
|
fdoray
2017/02/14 18:24:30
QuitWhenIdle() quits the loop when there are no mo
xunjieli
2017/02/14 18:55:31
QuitWhenIdle() can be flaky in some cases. I know
fdoray
2017/02/16 15:08:59
Done.
|
| } |
| void ReadFromRequest(net::URLRequest* request) { |
| @@ -155,11 +156,11 @@ class URLRequestDataJobFuzzerHarness : public net::URLRequest::Delegate { |
| private: |
| friend struct base::DefaultSingletonTraits<URLRequestDataJobFuzzerHarness>; |
| + base::test::ScopedTaskScheduler scoped_task_scheduler_; |
| net::TestURLRequestContext context_; |
| net::URLRequestJobFactoryImpl job_factory_; |
| std::vector<size_t> read_lengths_; |
| scoped_refptr<net::IOBuffer> buf_; |
| - scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
| base::RunLoop* read_loop_; |
| DISALLOW_COPY_AND_ASSIGN(URLRequestDataJobFuzzerHarness); |