Chromium Code Reviews| Index: third_party/WebKit/Source/web/WebLocalFrameImpl.cpp |
| diff --git a/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp b/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp |
| index 75d3864d39fc5bd556736709e9f0dde073e3fd17..398a64d2e36f0bcdb7460a699b79f32b6b11a500 100644 |
| --- a/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp |
| +++ b/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp |
| @@ -2052,6 +2052,34 @@ bool WebLocalFrameImpl::maybeRenderFallbackContent( |
| return true; |
| } |
| +// Called when a navigation is blocked because a Content Security Policy (CSP) |
| +// is infringed. |
| +void WebLocalFrameImpl::reportContentSecurityPolicyViolation( |
| + const blink::WebContentSecurityPolicyViolation& violation) { |
| + DCHECK(frame() && frame()->document()); |
| + Document* document = frame()->document(); |
| + Vector<String> reportEndpoints; |
| + for (const WebString& endPoint : violation.reportEndpoints) |
| + reportEndpoints.push_back(endPoint); |
| + document->contentSecurityPolicy()->reportViolation( |
| + violation.directive, /* directiveText */ |
| + ContentSecurityPolicy::getDirectiveType( |
| + violation.effectiveDirective), /* effectiveType */ |
| + violation.consoleMessage, /* consoleMessage */ |
| + violation.blockedUrl, /* blockedUrl */ |
| + reportEndpoints, /* reportEndpoints */ |
| + violation.header, /* header */ |
| + static_cast<ContentSecurityPolicyHeaderType>(violation.disposition), |
| + ContentSecurityPolicy::ViolationType::URLViolation, /* ViolationType */ |
| + nullptr, /* LocalFrame */ |
| + violation.afterRedirect ? RedirectStatus::FollowedRedirect |
| + : RedirectStatus::NoRedirect, |
| + // TODO(arthursonzogni, clamy) Provide the context line number here. |
| + // See http://crbug.com/690946 // |
|
alexmos
2017/03/01 02:22:28
nit: remove extra // at the end
|
| + 0, /* contextLine */ |
| + nullptr); /* Element */ |
| +} |
| + |
| bool WebLocalFrameImpl::isLoading() const { |
| if (!frame() || !frame()->document()) |
| return false; |