summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/platform/loader/fetch/resource_error.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-08-24 12:15:48 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-08-28 13:30:04 +0000
commitb014812705fc80bff0a5c120dfcef88f349816dc (patch)
tree25a2e2d9fa285f1add86aa333389a839f81a39ae /chromium/third_party/blink/renderer/platform/loader/fetch/resource_error.cc
parent9f4560b1027ae06fdb497023cdcaf91b8511fa74 (diff)
downloadqtwebengine-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.cc59
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_));