ContentNegotiator just disables the use of XHTML DOCTYPE unless the XML header is present. Disabling ContentNegotiator turns off this function completely - so it shouldn't really affect much on a standard web page.
You could try adding the XML tag, just before the DOCTYPE:
<?xml version="1.0" encoding="UTF-8"?>
...then reload the document in Firefox. Make sure you comment out your ContentNegotiator::disable(); for this.
You'll get XML parsing errors if there's any structural problems.