mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
This turned out to be a full rabbit hole. The new header is parsed in the new `parse_csp_list_from_metadata` which sets `disposition` to `report. I was testing this with `script-src-report-only-policy-works-with-external-hash-policy.html` which was blocking the script incorrectly. Turns out that there were multiple bugs in the CSP library, as well as a missing check in `fetch` to report violations. Additionally, in several locations we were manually reporting csp violations, instead of the new `global.report_csp_violations`. As a result of that, they would double report, since the report-only header would be appended as a policy and now would report twice. Now, all callsides use `global.report_csp_violations`. As a nice side-effect, I added the code to set source file information, since that was already present for the `eval` check, but nowhere else. Part of #36437 Requires servo/rust-content-security-policy#5 --------- Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com> Signed-off-by: Tim van der Lippe <TimvdLippe@users.noreply.github.com> |
||
---|---|---|
.. | ||
fetch | ||
protocols | ||
tests | ||
async_runtime.rs | ||
Cargo.toml | ||
connector.rs | ||
cookie.rs | ||
cookie_storage.rs | ||
decoder.rs | ||
filemanager_thread.rs | ||
hosts.rs | ||
hsts.rs | ||
http_cache.rs | ||
http_loader.rs | ||
image_cache.rs | ||
lib.rs | ||
local_directory_listing.rs | ||
mime_classifier.rs | ||
request_interceptor.rs | ||
resource_thread.rs | ||
storage_thread.rs | ||
subresource_integrity.rs | ||
websocket_loader.rs |