It would be nice to not have special-cased file:// URIs in the WebKit and always process them through the WebKitWebPage::send-request signal, the same as http://, https:// and other URIs are done that way. It will help the extensions to "redirect" the request to an appropriate place, if needed. Currently, the file:// URIs are simply rejected by WebKit with a comment of "not allowed to load local content" (I'm only paraphrasing). While it's nice WebKit can handle file:// URIs on its own, I do not see a reason for the special processing of those. It can ask the WebKitWebPage::send-request first and only then decide what to do, the same as is done with http(s):// URIs. This might probably need a counter part change on the UI side, to be able to process file:// URIs with webkit_web_context_register_uri_scheme(), but I only guess that. I do not know how this works in the background.