Note that while currently XHR is the only place where it is observable that we don't resolve Blob URLs until we actually start fetching, with mojo blobs and/or mojo network service this becomes potentially observable for any fetch/navigation/download. Currently our revokeObjectURL IPCs are sequenced with the actual fetch/navigation/download IPCs (at least as far as I can tell), so the blob URL is still around by the time the browser process tries to resolve it, but when either half of that equation moves to mojo this will no longer be the case. So it's not just our XHR code we'd need to update to resolve the blob URLs at URL parsing time, navigations, downloads and other fetches all will need to be updated as well.
(even today the same problem already exists with Request + fetch, where creating a Request, then revoking the URL, and then starting the fetch should work according to the spec)
(to be fair, maybe fixing this for XHR/fetch and fixing this for mojofication should be separate bugs, but I expect large overlap between the work required for both...)
Comment 1 by schenney@chromium.org
, Feb 22 2017