url_request_error_job.cc 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. // Copyright (c) 2012 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "net/url_request/url_request_error_job.h"
  5. #include "base/bind.h"
  6. #include "base/compiler_specific.h"
  7. #include "base/location.h"
  8. #include "base/task/single_thread_task_runner.h"
  9. #include "base/threading/thread_task_runner_handle.h"
  10. #include "net/base/net_errors.h"
  11. namespace net {
  12. URLRequestErrorJob::URLRequestErrorJob(URLRequest* request, int error)
  13. : URLRequestJob(request), error_(error) {}
  14. URLRequestErrorJob::~URLRequestErrorJob() = default;
  15. void URLRequestErrorJob::Start() {
  16. base::ThreadTaskRunnerHandle::Get()->PostTask(
  17. FROM_HERE, base::BindOnce(&URLRequestErrorJob::StartAsync,
  18. weak_factory_.GetWeakPtr()));
  19. }
  20. void URLRequestErrorJob::Kill() {
  21. weak_factory_.InvalidateWeakPtrs();
  22. URLRequestJob::Kill();
  23. }
  24. void URLRequestErrorJob::StartAsync() {
  25. NotifyStartError(error_);
  26. }
  27. } // namespace net