Issue: When opening a link from an external application (e.g., clicking a URL in a text file, email, or another app), Safari does not fire webRequest events for the main document request.
Impact: The extension cannot capture HTTP response headers for pages opened via external links. The popup will display "Reload page to capture cache status" in these cases.
Workaround: Reload the page to capture headers. The reload request will properly trigger webRequest events.
Technical Details:
webNavigation.onBeforeNavigatefires correctlywebNavigation.onCompletedfires correctlywebRequest.onBeforeRequestdoes NOT firewebRequest.onHeadersReceiveddoes NOT firewebRequest.onCompletedfires but without prior header events
This appears to be a Safari-specific limitation where the browser bypasses the webRequest API for navigations initiated outside Safari.
Safari's webRequest API has several known misalignments with Chrome and Firefox:
- Navigation events missing - Events don't fire for entering URLs in the address bar or navigating from the Start Page
- Binary request bodies - Request-side events are suppressed for requests with raw/binary payloads
- Redirect handling -
onHeadersReceivednot called for 302 redirect intermediate URLs - Manifest V3 - Safari dropped webRequest support in MV3, requiring MV2 with
persistent: true
- Apple Developer Forums - webRequest & webNavigation API behavior
- Apple Developer Forums - webRequest.headersReceived redirect bug
- MDN - Safari dropped webRequest in Manifest V3
If you encounter this issue, consider filing a bug report via Apple Feedback Assistant to help prioritize a fix.