From f0c70a83562a27c424554f609eb1d4cdebf06df4 Mon Sep 17 00:00:00 2001 From: Patrick Scott Date: Tue, 28 Apr 2009 11:21:28 -0400 Subject: [PATCH] Treat application/xhtml+xml as xhtml+xml instead of text/html. Previously we had converted application/xhtml+xml to text/html because of bad server data. Now we need to treat xhtml as xhtml to get svg to be interpreted correctly. --- core/java/android/webkit/LoadListener.java | 22 ++++------------------ core/java/android/webkit/MimeTypeMap.java | 1 + 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/core/java/android/webkit/LoadListener.java b/core/java/android/webkit/LoadListener.java index 716d504570f34..36aa14b06146d 100644 --- a/core/java/android/webkit/LoadListener.java +++ b/core/java/android/webkit/LoadListener.java @@ -324,13 +324,10 @@ class LoadListener extends Handler implements EventHandler { // As we don't support wml, render it as plain text mMimeType = "text/plain"; } else { - // XXX: Until the servers send us either correct xhtml or - // text/html, treat application/xhtml+xml as text/html. // It seems that xhtml+xml and vnd.wap.xhtml+xml mime // subtypes are used interchangeably. So treat them the same. - if (mMimeType.equals("application/xhtml+xml") || - mMimeType.equals("application/vnd.wap.xhtml+xml")) { - mMimeType = "text/html"; + if (mMimeType.equals("application/vnd.wap.xhtml+xml")) { + mMimeType = "application/xhtml+xml"; } } } else { @@ -1396,19 +1393,8 @@ class LoadListener extends Handler implements EventHandler { Log.v(LOGTAG, "guessMimeTypeFromExtension: mURL = " + mUrl); } - String mimeType = - MimeTypeMap.getSingleton().getMimeTypeFromExtension( - MimeTypeMap.getFileExtensionFromUrl(mUrl)); - - if (mimeType != null) { - // XXX: Until the servers send us either correct xhtml or - // text/html, treat application/xhtml+xml as text/html. - if (mimeType.equals("application/xhtml+xml")) { - mimeType = "text/html"; - } - } - - return mimeType; + return MimeTypeMap.getSingleton().getMimeTypeFromExtension( + MimeTypeMap.getFileExtensionFromUrl(mUrl)); } /** diff --git a/core/java/android/webkit/MimeTypeMap.java b/core/java/android/webkit/MimeTypeMap.java index 85c2275df9916..096f38add65b6 100644 --- a/core/java/android/webkit/MimeTypeMap.java +++ b/core/java/android/webkit/MimeTypeMap.java @@ -358,6 +358,7 @@ public /* package */ class MimeTypeMap { sMimeTypeMap.loadEntry("application/x-x509-ca-cert", "crt", false); sMimeTypeMap.loadEntry("application/x-xcf", "xcf", false); sMimeTypeMap.loadEntry("application/x-xfig", "fig", false); + sMimeTypeMap.loadEntry("application/xhtml+xml", "xhtml", false); sMimeTypeMap.loadEntry("audio/basic", "snd", false); sMimeTypeMap.loadEntry("audio/midi", "mid", false); sMimeTypeMap.loadEntry("audio/midi", "midi", false);