nsChannel's GetContentType doesn't seem to help, unfortunately. Because it's going to use the content type specified in the response header instead by that time (Gecko will issue SetContentType on it), so the test will fail.
Isn't using the response content type the point? If it should be ignored, could you explain why? It should be easy to send text with an XML content type, and the other way around, using a local HTTP server and then check what IE reports. Did you try something like that?
Also, what do you mean by “issued by Gecko”? Normally this is called by bsc based on the MIME type from urlmon. Does Gecko override that somehow? If so, how? If we really need to, we can fetch bsc from the channel or store the original MIME in it, but I think we need a better understanding of the problem first.