Bug 207542

Summary: WKWebResourceLoadDelegate for WKWebView iOS
Product: WebKit Reporter: Brandon <bthomas>
Component: WebKit APIAssignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Enhancement CC: achristensen, beidson, ggaren, isaiah, krzysztof.modras, mjs, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description Brandon 2020-02-11 06:38:42 PST
Please expose `WKWebResourceLoadDelegate` for iOS OR allow iOS to intercept traffic via `URLProtocol`.

Currently, iOS has no way of blocking certain page resources from loading or even intercepting certain page resources in a WKWebView. The ask is that we expose a method of allowing iOS to do this. `WKWebResourceLoadDelegate` is good for knowing which resources a page has requested and the ability to deny them. Similarly, `URLProtocol` would also work if allowed to work with WKWebView.
Comment 1 Radar WebKit Bug Importer 2020-02-11 09:26:48 PST
<rdar://problem/59350909>
Comment 2 Maciej Stachowiak 2020-02-19 01:37:12 PST
This seems like a duplicate of <https://bugs.webkit.org/show_bug.cgi?id=138169> and/or <https://bugs.webkit.org/show_bug.cgi?id=205718.

Note that there is no such thing as WKWebResourceLoadDelegate. There is a non-public _WKResourceLoadDelegate interface, but it only has methods to observe requests after they have happened, not to modify or cancel them before they are issued.

It would help to have a more detailed explanation of the use case. If this is about blocking, do content blockers not work? What about them is insufficient?
Comment 3 Isaiah 2020-02-25 17:09:04 PST
Here is our use case for retargeting http/https requests. In our case we are not blocking, but redirecting unpublished/un-deployed content on a website that is a work-in-progress. We redirect the requests to the user's local resources in the project.

https://bugs.webkit.org/show_bug.cgi?id=138169#c52
Comment 4 Alex Christensen 2020-02-25 21:00:19 PST

*** This bug has been marked as a duplicate of bug 138169 ***