Reader mode should run JS in isolated world, directly in web process, using custom URI scheme
the code is added from the UI process to the main frame world, which is something I don't like. Every time the reader mode is enabled we are sending the entire js file to the web process via IPC. I think the js file should be a web extension resource and injected in the isolated world when the global object is cleared, like we do with other custom js. From the UI point of view, I would use a custom uri scheme, reader-mode://http://foo.com instead of using load_alternate_html. So, the model would be similar to the overview.
I'd probably change that to reader-mode://foo.com#http to match view source mode, since I assume URI fragments should be safe to discard when entering reader mode.
Another reason to use a custom uri scheme like @carlosgc mentioned may be to keep the clean reader mode pages from using the same page zoom value as without clean reader mode enabled. That is, presumably we want the clean reader mode to have the same zoom value for all pages, regardless of whether or not the page was zoomed before enabling it.