diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-08-24 12:15:48 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-08-28 13:30:04 +0000 |
commit | b014812705fc80bff0a5c120dfcef88f349816dc (patch) | |
tree | 25a2e2d9fa285f1add86aa333389a839f81a39ae /chromium/third_party/blink/renderer/platform/loader/fetch/resource_error.cc | |
parent | 9f4560b1027ae06fdb497023cdcaf91b8511fa74 (diff) | |
download | qtwebengine-chromium-b014812705fc80bff0a5c120dfcef88f349816dc.tar.gz |
BASELINE: Update Chromium to 68.0.3440.125
Change-Id: I23f19369e01f688e496f5bf179abb521ad73874f
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/third_party/blink/renderer/platform/loader/fetch/resource_error.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/platform/loader/fetch/resource_error.cc | 59 |
1 files changed, 54 insertions, 5 deletions
diff --git a/chromium/third_party/blink/renderer/platform/loader/fetch/resource_error.cc b/chromium/third_party/blink/renderer/platform/loader/fetch/resource_error.cc index 4a4c0e1f55f..9a84d2c09d3 100644 --- a/chromium/third_party/blink/renderer/platform/loader/fetch/resource_error.cc +++ b/chromium/third_party/blink/renderer/platform/loader/fetch/resource_error.cc @@ -28,6 +28,7 @@ #include "net/base/net_errors.h" #include "third_party/blink/public/platform/platform.h" +#include "third_party/blink/public/platform/resource_request_blocked_reason.h" #include "third_party/blink/public/platform/web_string.h" #include "third_party/blink/public/platform/web_url.h" #include "third_party/blink/public/platform/web_url_error.h" @@ -46,7 +47,7 @@ int ResourceError::BlockedByXSSAuditorErrorCode() { } ResourceError ResourceError::CancelledError(const KURL& url) { - return ResourceError(net::ERR_ABORTED, url, WTF::nullopt); + return ResourceError(net::ERR_ABORTED, url, base::nullopt); } ResourceError ResourceError::CancelledDueToAccessCheckError( @@ -69,21 +70,21 @@ ResourceError ResourceError::CancelledDueToAccessCheckError( } ResourceError ResourceError::CacheMissError(const KURL& url) { - return ResourceError(net::ERR_CACHE_MISS, url, WTF::nullopt); + return ResourceError(net::ERR_CACHE_MISS, url, base::nullopt); } ResourceError ResourceError::TimeoutError(const KURL& url) { - return ResourceError(net::ERR_TIMED_OUT, url, WTF::nullopt); + return ResourceError(net::ERR_TIMED_OUT, url, base::nullopt); } ResourceError ResourceError::Failure(const KURL& url) { - return ResourceError(net::ERR_FAILED, url, WTF::nullopt); + return ResourceError(net::ERR_FAILED, url, base::nullopt); } ResourceError::ResourceError( int error_code, const KURL& url, - WTF::Optional<network::CORSErrorStatus> cors_error_status) + base::Optional<network::CORSErrorStatus> cors_error_status) : error_code_(error_code), failing_url_(url), cors_error_status_(cors_error_status) { @@ -148,6 +149,9 @@ bool ResourceError::Compare(const ResourceError& a, const ResourceError& b) { if (a.CORSErrorStatus() != b.CORSErrorStatus()) return false; + if (a.extended_error_code_ != b.extended_error_code_) + return false; + return true; } @@ -167,9 +171,54 @@ bool ResourceError::WasBlockedByResponse() const { return error_code_ == net::ERR_BLOCKED_BY_RESPONSE; } +base::Optional<ResourceRequestBlockedReason> +ResourceError::GetResourceRequestBlockedReason() const { + if (error_code_ != net::ERR_BLOCKED_BY_CLIENT && + error_code_ != net::ERR_BLOCKED_BY_RESPONSE) { + return base::nullopt; + } + return static_cast<ResourceRequestBlockedReason>(extended_error_code_); +} + +namespace { +String DescriptionForBlockedByClientOrResponse(int error, int extended_error) { + if (extended_error == 0) + return WebString::FromASCII(net::ErrorToString(error)); + std::string detail; + switch (static_cast<ResourceRequestBlockedReason>(extended_error)) { + case ResourceRequestBlockedReason::kOther: + NOTREACHED(); // extended_error == 0, handled above + break; + case ResourceRequestBlockedReason::kCSP: + detail = "CSP"; + break; + case ResourceRequestBlockedReason::kMixedContent: + detail = "MixedContent"; + break; + case ResourceRequestBlockedReason::kOrigin: + detail = "Origin"; + break; + case ResourceRequestBlockedReason::kInspector: + detail = "Inspector"; + break; + case ResourceRequestBlockedReason::kSubresourceFilter: + detail = "SubresourceFilter"; + break; + case ResourceRequestBlockedReason::kContentType: + detail = "ContentType"; + break; + } + return WebString::FromASCII(net::ErrorToString(error) + "." + detail); +} +} // namespace + void ResourceError::InitializeDescription() { if (error_code_ == net::ERR_TEMPORARILY_THROTTLED) { localized_description_ = WebString::FromASCII(kThrottledErrorDescription); + } else if (error_code_ == net::ERR_BLOCKED_BY_CLIENT || + error_code_ == net::ERR_BLOCKED_BY_RESPONSE) { + localized_description_ = DescriptionForBlockedByClientOrResponse( + error_code_, extended_error_code_); } else { localized_description_ = WebString::FromASCII( net::ExtendedErrorToString(error_code_, extended_error_code_)); |