NEFilterBrowserFlow not enabled on iOS

HI,

I am creating a Content Filter (with NEFilterDataProvider and NEFilterControlProvider extensions), and for the most part it seems to be working.

Main issue is that every flow object (when cast) is an instance of NEFilterSocketFlow, even when I know the flow is originating from a WebKit browser -have used Safari, Chrome, and even rolled my own with WebKit - to no avail .. the flow is always detected as NEFilterSocketFlow.

I recently had a 1-1 with a tech at WWDC about some issues, this came up and she actually informed me that this was a bug expected to be remediated shortly - hopefully in the next release or the one after that (Bata releases)? I cannot find any information about this happening to anyone else - it was happening with iOS 13 & now the iOS 14 Beta.

Can anyone shed some light on this as an existing issue (esp. if a RADAR has been filed and/or release that’ll remediates expected), as this is crucial to the app's progress.

Additionally, I am unable to remediate flows and subsequently show the block page - it is my understanding from reading the forums and searching online that this is due to the fact that they need to come from the NEFilterBrowserFlow flows (which would make sense).

Many thanks in advance!

NC
I am tracking what I believe to be a similar issue in iOS. Have you tested this on iOS 13.6 beta 3? If not, please do so and report your findings. If you still see this issue occurring on iOS 13.6 beta 3, please file a bug report for iOS 13 on this issue and follow up with the Feedback ID here so I can track this as well.


Matt Eaton
DTS Engineering, CoreOS
meaton3@apple.com
Hi Matt,

Have upgraded device to iOS 13.6 Beta 3 .. just grabbing the 11.6 XCode Beta too now :-) Will let you know how I go.
Thanks

Nick
Hi Matt,

Can verify that iOS 13.6 beta 3 did in fact, for the most part, remediate the issues with -
  1. Block page not showing

  2. NEFilterBrowserFlow not being able to be cast from the NEFilterFlow

Issues / Observations -
  • Can only get an NEFilterBrowserFlow within the override func handleNewFlow(_ flow: NEFilterFlow) -> NEFilterNewFlowVerdict  function. I am guessing that this is due to it being the initial request (coming from the browser) and subsequent requests in override func handleOutboundData(from flow: NEFilterFlow, readBytesStartOffset offset: Int, readBytes: Data) -> NEFilterDataVerdict (for example) do not get this flow type as it is a subsequent request after the initial read and defaults to NEFilterSocketFlow?

  • Accordingly, it doesn't seem possible to render a block page unless you do it from the initial handleNewFlow block, probably because the flow is no longer of NEFilterBrowserFlow type.

Would these assumptions be true, and could you suggest any way around this?

Finally, can you confirm that the next Beta of iOS 14 will have this code merged in as a bug fix?

Thanks again

Nick
Nick,

Thanks for reporting your findings. Please add your observations to any previous bug reports that you have opened. If you have not opened a bug report it would be worth while to open one to add this information to it so you can be alerted when their are updates on this issue. Please follow up with the Feedback ID if you open a bug report.


Matt Eaton
DTS Engineering, CoreOS
meaton3@apple.com
NEFilterBrowserFlow not enabled on iOS
 
 
Q