Seems like there are two options: Add a method to ContentBrowserDelegate, or leave it up to embedders to write NavigationThrottles to do this. I've been going back and forth between them - there's some weird logic about what URLs can be handled internally, and not sure we want to have it in content. On Android, we also just use a Chrome-specific NavigationThrottle to do this, so there's precedent for that approach.
The only embedder in the repo that needs this logic is Chrome. Since Chrome's logic integrates into a blacklist/whitelist with weird interactions, I'm planning on moving that over at the same time, and also probably remove URLRequestJobFactory::IsHandledURL, which feeds into this, in favor of IsHandledProtocol (Which has a corresponding method that can be called on the UI thread already).
Comment 1 by mmenke@chromium.org
, Mar 30 2017