Implement a ResourceThrottle based navigation intercept
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Oxide |
Fix Released
|
Critical
|
Chris Coulson |
Bug Description
WebView.
- This navigation path is not used in Chromium, and it's not clear how well tested it is.
- I'm not really sure where it fits in with the re-work of navigations in Chromium (https:/
- It relies on us implementing some of our own navigation logic in oxide::WebView.
- Navigations that should open in a new tab follow a different code path to window.open() - they go through our navigation logic, and it's impossible to tell whether we should suppress the opener (we never supply the opener to the new webview, which is wrong).
- This navigation mechanism in Chromium doesn't support POST requests, so the application never has a chance to intercept these.
We should use the normal navigation paths in Chromium, and instead use a ResourceThrottle to intercept navigations. This will introduce a small behavioural change in the API - currently, WebView.
In the future, this will allow us to intercept navigations later - just before the load is committed when we have the final URL. However, because requests to open a new webview will always have the initial URL and they both share the same API (WebView.
Changed in oxide: | |
importance: | Undecided → Medium |
status: | New → Triaged |
Changed in oxide: | |
milestone: | none → branch-1.11 |
Changed in oxide: | |
status: | Triaged → In Progress |
Changed in oxide: | |
status: | In Progress → Fix Released |
RendererPrefere nces::browser_ handles_ non_local_ top_level_ requests got removed in https:/ /chromium. googlesource. com/chromium/ src.git/ +/0e35aad62e326 fcdf9fdedf68a9f 20363a387bd8% 5E!/, making this urgent