diff -r 94b3ceae4041 browser/components/feeds/src/nsFeedSniffer.cpp
--- a/browser/components/feeds/src/nsFeedSniffer.cpp	Thu Jul 03 15:02:50 2008 -0700
+++ b/browser/components/feeds/src/nsFeedSniffer.cpp	Thu Jul 03 23:11:29 2008 -0700
@@ -262,16 +262,19 @@ ContainsTopLevelSubstring(nsACString& da
 }
 
 NS_IMETHODIMP
 nsFeedSniffer::GetMIMETypeFromContent(nsIRequest* request, 
                                       const PRUint8* data, 
                                       PRUint32 length, 
                                       nsACString& sniffedType)
 {
+  sniffedType.Truncate();
+  return NS_OK;  // Skip content sniffing.
+
   nsCOMPtr<nsIHttpChannel> channel(do_QueryInterface(request));
   if (!channel)
     return NS_ERROR_NO_INTERFACE;
 
   // Check that this is a GET request, since you can't subscribe to a POST...
   nsCAutoString method;
   channel->GetRequestMethod(method);
   if (!method.Equals("GET")) {
diff -r 94b3ceae4041 modules/libpr0n/src/imgLoader.cpp
--- a/modules/libpr0n/src/imgLoader.cpp	Thu Jul 03 15:02:50 2008 -0700
+++ b/modules/libpr0n/src/imgLoader.cpp	Thu Jul 03 23:11:29 2008 -0700
@@ -721,22 +721,25 @@ NS_IMETHODIMP imgLoader::SupportImageWit
   return reg->IsContractIDRegistered(decoderId.get(),  _retval);
 }
 
 NS_IMETHODIMP imgLoader::GetMIMETypeFromContent(nsIRequest* aRequest,
                                                 const PRUint8* aContents,
                                                 PRUint32 aLength,
                                                 nsACString& aContentType)
 {
+  return NS_ERROR_NOT_AVAILABLE;  // Skip content sniffing.
   return GetMimeTypeFromContent((const char*)aContents, aLength, aContentType);
 }
 
 /* static */
 nsresult imgLoader::GetMimeTypeFromContent(const char* aContents, PRUint32 aLength, nsACString& aContentType)
 {
+  return NS_ERROR_NOT_AVAILABLE;  // Skip content sniffing.
+
   /* Is it a GIF? */
   if (aLength >= 4 && !nsCRT::strncmp(aContents, "GIF8", 4))  {
     aContentType.AssignLiteral("image/gif");
   }
 
   /* or a PNG? */
   else if (aLength >= 4 && ((unsigned char)aContents[0]==0x89 &&
                    (unsigned char)aContents[1]==0x50 &&
diff -r 94b3ceae4041 modules/libpr0n/src/imgRequest.cpp
--- a/modules/libpr0n/src/imgRequest.cpp	Thu Jul 03 15:02:50 2008 -0700
+++ b/modules/libpr0n/src/imgRequest.cpp	Thu Jul 03 23:11:29 2008 -0700
@@ -895,16 +895,18 @@ imgRequest::SniffMimeType(const char *bu
 {
   imgLoader::GetMimeTypeFromContent(buf, len, mContentType);
 
   // The vast majority of the time, imgLoader will find a gif/jpeg/png image
   // and fill mContentType with the sniffed MIME type.
   if (!mContentType.IsEmpty())
     return;
 
+  return;  // Skip content sniffing.
+
   // When our sniffing fails, we want to query registered image decoders
   // to see if they can identify the image. If we always trusted the server
   // to send the right MIME, images sent as text/plain would not be rendered.
   const nsCOMArray<nsIContentSniffer>& sniffers = mImageSniffers.GetEntries();
   PRUint32 length = sniffers.Count();
   for (PRUint32 i = 0; i < length; ++i) {
     nsresult rv =
       sniffers[i]->GetMIMETypeFromContent(nsnull, (const PRUint8 *) buf, len, mContentType);
diff -r 94b3ceae4041 netwerk/base/src/nsBaseChannel.cpp
--- a/netwerk/base/src/nsBaseChannel.cpp	Thu Jul 03 15:02:50 2008 -0700
+++ b/netwerk/base/src/nsBaseChannel.cpp	Thu Jul 03 23:11:30 2008 -0700
@@ -551,16 +551,18 @@ nsBaseChannel::GetInterface(const nsIID 
 }
 
 //-----------------------------------------------------------------------------
 // nsBaseChannel::nsIRequestObserver
 
 static void
 CallTypeSniffers(void *aClosure, const PRUint8 *aData, PRUint32 aCount)
 {
+  return;  // Skip content sniffing.
+
   nsIChannel *chan = static_cast<nsIChannel*>(aClosure);
 
   const nsCOMArray<nsIContentSniffer>& sniffers =
     gIOService->GetContentSniffers();
   PRUint32 length = sniffers.Count();
   for (PRUint32 i = 0; i < length; ++i) {
     nsCAutoString newType;
     nsresult rv =
@@ -570,16 +572,18 @@ CallTypeSniffers(void *aClosure, const P
       break;
     }
   }
 }
 
 static void
 CallUnknownTypeSniffer(void *aClosure, const PRUint8 *aData, PRUint32 aCount)
 {
+  return;  // Skip content sniffing.
+
   nsIChannel *chan = static_cast<nsIChannel*>(aClosure);
 
   nsCOMPtr<nsIContentSniffer> sniffer =
     do_CreateInstance(NS_GENERIC_CONTENT_SNIFFER);
   if (!sniffer)
     return;
 
   nsCAutoString detected;
diff -r 94b3ceae4041 netwerk/protocol/http/src/nsHttpChannel.cpp
--- a/netwerk/protocol/http/src/nsHttpChannel.cpp	Thu Jul 03 15:02:50 2008 -0700
+++ b/netwerk/protocol/http/src/nsHttpChannel.cpp	Thu Jul 03 23:11:30 2008 -0700
@@ -673,16 +673,18 @@ nsHttpChannel::ApplyContentConversions()
     return NS_OK;
 }
 
 // NOTE: This function duplicates code from nsBaseChannel. This will go away
 // once HTTP uses nsBaseChannel (part of bug 312760)
 static void
 CallTypeSniffers(void *aClosure, const PRUint8 *aData, PRUint32 aCount)
 {
+  return;  // Skip content sniffing.
+
   nsIChannel *chan = static_cast<nsIChannel*>(aClosure);
 
   const nsCOMArray<nsIContentSniffer>& sniffers =
     gIOService->GetContentSniffers();
   PRUint32 length = sniffers.Count();
   for (PRUint32 i = 0; i < length; ++i) {
     nsCAutoString newType;
     nsresult rv =
diff -r 94b3ceae4041 netwerk/streamconv/converters/nsUnknownDecoder.cpp
--- a/netwerk/streamconv/converters/nsUnknownDecoder.cpp	Thu Jul 03 15:02:50 2008 -0700
+++ b/netwerk/streamconv/converters/nsUnknownDecoder.cpp	Thu Jul 03 23:11:30 2008 -0700
@@ -258,16 +258,18 @@ nsUnknownDecoder::OnStopRequest(nsIReque
 //
 // ----
 NS_IMETHODIMP
 nsUnknownDecoder::GetMIMETypeFromContent(nsIRequest* aRequest,
                                          const PRUint8* aData,
                                          PRUint32 aLength,
                                          nsACString& type)
 {
+  return NS_ERROR_NOT_AVAILABLE;  // Skip content sniffing.
+
   mBuffer = const_cast<char*>(reinterpret_cast<const char*>(aData));
   mBufferLen = aLength;
   DetermineContentType(aRequest);
   mBuffer = nsnull;
   mBufferLen = 0;
   type.Assign(mContentType);
   mContentType.Truncate();
   return type.IsEmpty() ? NS_ERROR_NOT_AVAILABLE : NS_OK;
@@ -389,16 +391,18 @@ void nsUnknownDecoder::DetermineContentT
   
   LastDitchSniff(aRequest);
   NS_ASSERTION(!mContentType.IsEmpty(), 
                "Content type should be known by now.");
 }
 
 PRBool nsUnknownDecoder::TryContentSniffers(nsIRequest* aRequest)
 {
+  return PR_FALSE;  // Skip content sniffing.
+
   // Enumerate content sniffers
   nsCOMPtr<nsICategoryManager> catMan(do_GetService("@mozilla.org/categorymanager;1"));
   if (!catMan) {
     return PR_FALSE;
   }
 
   nsCOMPtr<nsISimpleEnumerator> sniffers;
   catMan->EnumerateCategory("content-sniffing-services", getter_AddRefs(sniffers));
diff -r 94b3ceae4041 toolkit/components/places/src/nsFaviconService.cpp
--- a/toolkit/components/places/src/nsFaviconService.cpp	Thu Jul 03 15:02:50 2008 -0700
+++ b/toolkit/components/places/src/nsFaviconService.cpp	Thu Jul 03 23:11:30 2008 -0700
@@ -1023,52 +1023,16 @@ FaviconLoadListener::OnStopRequest(nsIRe
                                  nsresult aStatusCode)
 {
   if (NS_FAILED(aStatusCode) || mData.Length() == 0) {
     // load failed, add to failed cache
     mFaviconService->AddFailedFavicon(mFaviconURI);
     return NS_OK;
   }
 
-  // sniff the MIME type
-  nsresult rv;
-  nsCOMPtr<nsICategoryManager> categoryManager =
-    do_GetService(NS_CATEGORYMANAGER_CONTRACTID, &rv);
-  NS_ENSURE_SUCCESS(rv, rv);
-  nsCOMPtr<nsISimpleEnumerator> sniffers;
-  rv = categoryManager->EnumerateCategory(CONTENT_SNIFFING_SERVICES,
-                                          getter_AddRefs(sniffers));
-  NS_ENSURE_SUCCESS(rv, rv);
-
-  nsCString mimeType;
-  PRBool hasMore = PR_FALSE;
-  while (mimeType.IsEmpty() && NS_SUCCEEDED(sniffers->HasMoreElements(&hasMore))
-         && hasMore) {
-    nsCOMPtr<nsISupports> snifferCIDSupports;
-    rv = sniffers->GetNext(getter_AddRefs(snifferCIDSupports));
-    NS_ENSURE_SUCCESS(rv, rv);
-
-    nsCOMPtr<nsISupportsCString> snifferCIDSupportsCString =
-      do_QueryInterface(snifferCIDSupports, &rv);
-    NS_ENSURE_SUCCESS(rv, rv);
-
-    nsCAutoString snifferCID;
-    rv = snifferCIDSupportsCString->GetData(snifferCID);
-    NS_ENSURE_SUCCESS(rv, rv);
-
-    nsCOMPtr<nsIContentSniffer> sniffer = do_GetService(snifferCID.get(), &rv);
-    NS_ENSURE_SUCCESS(rv, rv);
-
-    sniffer->GetMIMETypeFromContent(
-               aRequest,
-               reinterpret_cast<PRUint8*>(const_cast<char*>(mData.get())),
-               mData.Length(), mimeType);
-    // ignore errors: mime type will be left empty and we'll try the next sniffer
-  }
-
   if (mimeType.IsEmpty()) {
     // we can not handle favicons that do not have a recognisable MIME type
     mFaviconService->AddFailedFavicon(mFaviconURI);
     return NS_OK;
   }
 
   // Expire this favicon in one day. An old version of this actually extracted
   // the expiration time from the cache. But what if people (especially web
