Oh, one more thing, about the error-handling, the caller doesn't provide this context menu item on loaded images (which will be the case when they're data: images) so no need to provide the error handling. file:// and chrome/resource/whatever else is trusted and cannot be blocked anyhow. There's a short-circuit in nsContentBlocker::ShouldLoad that ensures that!
So basically, only http/https/ftp are possible to block.
Oh, one more thing, about the error-handling, the caller doesn't provide this context menu item on loaded images (which will be the case when they're data: images) so no need to provide the error handling. file:// and chrome/ resource/ whatever else is trusted and cannot be blocked anyhow. There's a short-circuit in nsContentBlocke r::ShouldLoad that ensures that!
So basically, only http/https/ftp are possible to block.