network_delegate_impl.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. // Copyright 2014 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. #ifndef NET_BASE_NETWORK_DELEGATE_IMPL_H_
  5. #define NET_BASE_NETWORK_DELEGATE_IMPL_H_
  6. #include <stdint.h>
  7. #include <set>
  8. #include <string>
  9. #include "net/base/completion_once_callback.h"
  10. #include "net/base/net_export.h"
  11. #include "net/base/network_delegate.h"
  12. #include "net/cookies/canonical_cookie.h"
  13. #include "net/cookies/same_party_context.h"
  14. #include "net/proxy_resolution/proxy_retry_info.h"
  15. #include "third_party/abseil-cpp/absl/types/optional.h"
  16. class GURL;
  17. namespace url {
  18. class Origin;
  19. }
  20. namespace net {
  21. class CookieOptions;
  22. class HttpRequestHeaders;
  23. class HttpResponseHeaders;
  24. class URLRequest;
  25. class NET_EXPORT NetworkDelegateImpl : public NetworkDelegate {
  26. public:
  27. NetworkDelegateImpl() = default;
  28. NetworkDelegateImpl(const NetworkDelegateImpl&) = delete;
  29. NetworkDelegateImpl& operator=(const NetworkDelegateImpl&) = delete;
  30. ~NetworkDelegateImpl() override = default;
  31. private:
  32. int OnBeforeURLRequest(URLRequest* request,
  33. CompletionOnceCallback callback,
  34. GURL* new_url) override;
  35. int OnBeforeStartTransaction(
  36. URLRequest* request,
  37. const HttpRequestHeaders& headers,
  38. OnBeforeStartTransactionCallback callback) override;
  39. int OnHeadersReceived(
  40. URLRequest* request,
  41. CompletionOnceCallback callback,
  42. const HttpResponseHeaders* original_response_headers,
  43. scoped_refptr<HttpResponseHeaders>* override_response_headers,
  44. const IPEndPoint& endpoint,
  45. absl::optional<GURL>* preserve_fragment_on_redirect_url) override;
  46. void OnBeforeRedirect(URLRequest* request, const GURL& new_location) override;
  47. void OnResponseStarted(URLRequest* request, int net_error) override;
  48. void OnCompleted(URLRequest* request, bool started, int net_error) override;
  49. void OnURLRequestDestroyed(URLRequest* request) override;
  50. void OnPACScriptError(int line_number, const std::u16string& error) override;
  51. bool OnAnnotateAndMoveUserBlockedCookies(
  52. const URLRequest& request,
  53. net::CookieAccessResultList& maybe_included_cookies,
  54. net::CookieAccessResultList& excluded_cookies) override;
  55. bool OnCanSetCookie(const URLRequest& request,
  56. const net::CanonicalCookie& cookie,
  57. CookieOptions* options) override;
  58. NetworkDelegate::PrivacySetting OnForcePrivacyMode(
  59. const GURL& url,
  60. const SiteForCookies& site_for_cookies,
  61. const absl::optional<url::Origin>& top_frame_origin,
  62. SamePartyContext::Type same_party_context_type) const override;
  63. bool OnCancelURLRequestWithPolicyViolatingReferrerHeader(
  64. const URLRequest& request,
  65. const GURL& target_url,
  66. const GURL& referrer_url) const override;
  67. bool OnCanQueueReportingReport(const url::Origin& origin) const override;
  68. void OnCanSendReportingReports(std::set<url::Origin> origins,
  69. base::OnceCallback<void(std::set<url::Origin>)>
  70. result_callback) const override;
  71. bool OnCanSetReportingClient(const url::Origin& origin,
  72. const GURL& endpoint) const override;
  73. bool OnCanUseReportingClient(const url::Origin& origin,
  74. const GURL& endpoint) const override;
  75. };
  76. } // namespace net
  77. #endif // NET_BASE_NETWORK_DELEGATE_IMPL_H_