Changeset 116145 in webkit
- Timestamp:
- May 4, 2012 12:44:47 PM (12 years ago)
- Location:
- trunk/Source
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r116142 r116145 1 2012-05-04 Rob Buis <rbuis@rim.com> 2 3 [BlackBerry] Rendering bmp file as text file when Content-Type:image/x-ms-bmp from apache web server. 4 https://bugs.webkit.org/show_bug.cgi?id=85036 5 6 Reviewed by Antonio Gomes. 7 8 Move getNormalizedMIMEType from WebKit into MIMETypeRegistry. This way we support uncommon mime types like image/pjpeg 9 and image/x-ms-bmp out of the box since we map to the more common image/jpeg and image/bmp respectively. 10 11 * platform/MIMETypeRegistry.cpp: 12 (WebCore::initializeSupportedImageMIMETypes): 13 (WebCore::MIMETypeRegistry::isSupportedImageMIMEType): 14 (WebCore::MIMETypeRegistry::isSupportedImageResourceMIMEType): 15 (WebCore): 16 (WebCore::mimeTypeAssociationMap): 17 (WebCore::MIMETypeRegistry::getNormalizedMIMEType): 18 * platform/MIMETypeRegistry.h: 19 (MIMETypeRegistry): 20 1 21 2012-05-04 Sami Kyostila <skyostil@chromium.org> 2 22 -
trunk/Source/WebCore/platform/MIMETypeRegistry.cpp
r116105 r116145 260 260 supportedImageResourceMIMETypes->add(types[i]); 261 261 } 262 #if PLATFORM(BLACKBERRY)263 supportedImageMIMETypes->add("image/pjpeg");264 supportedImageResourceMIMETypes->add("image/pjpeg");265 #endif266 262 #endif 267 263 } … … 514 510 if (!supportedImageMIMETypes) 515 511 initializeMIMETypeRegistry(); 516 return supportedImageMIMETypes->contains( mimeType);512 return supportedImageMIMETypes->contains(getNormalizedMIMEType(mimeType)); 517 513 } 518 514 … … 523 519 if (!supportedImageResourceMIMETypes) 524 520 initializeMIMETypeRegistry(); 525 return supportedImageResourceMIMETypes->contains( mimeType);521 return supportedImageResourceMIMETypes->contains(getNormalizedMIMEType(mimeType)); 526 522 } 527 523 … … 632 628 } 633 629 630 #if PLATFORM(BLACKBERRY) 631 typedef HashMap<String, String> MIMETypeAssociationMap; 632 633 static const MIMETypeAssociationMap& mimeTypeAssociationMap() 634 { 635 static MIMETypeAssociationMap* mimeTypeMap = 0; 636 if (mimeTypeMap) 637 return *mimeTypeMap; 638 639 mimeTypeMap = new MIMETypeAssociationMap; 640 mimeTypeMap->add("image/x-ms-bmp", "image/bmp"); 641 mimeTypeMap->add("image/x-windows-bmp", "image/bmp"); 642 mimeTypeMap->add("image/x-bmp", "image/bmp"); 643 mimeTypeMap->add("image/x-bitmap", "image/bmp"); 644 mimeTypeMap->add("image/x-ms-bitmap", "image/bmp"); 645 mimeTypeMap->add("image/jpg", "image/jpeg"); 646 mimeTypeMap->add("image/pjpeg", "image/jpeg"); 647 mimeTypeMap->add("image/x-png", "image/png"); 648 mimeTypeMap->add("image/vnd.rim.png", "image/png"); 649 mimeTypeMap->add("image/ico", "image/vnd.microsoft.icon"); 650 mimeTypeMap->add("image/icon", "image/vnd.microsoft.icon"); 651 mimeTypeMap->add("text/ico", "image/vnd.microsoft.icon"); 652 mimeTypeMap->add("application/ico", "image/vnd.microsoft.icon"); 653 mimeTypeMap->add("image/x-icon", "image/vnd.microsoft.icon"); 654 mimeTypeMap->add("audio/vnd.qcelp", "audio/qcelp"); 655 mimeTypeMap->add("audio/qcp", "audio/qcelp"); 656 mimeTypeMap->add("audio/vnd.qcp", "audio/qcelp"); 657 mimeTypeMap->add("audio/wav", "audio/x-wav"); 658 mimeTypeMap->add("audio/mid", "audio/midi"); 659 mimeTypeMap->add("audio/sp-midi", "audio/midi"); 660 mimeTypeMap->add("audio/x-mid", "audio/midi"); 661 mimeTypeMap->add("audio/x-midi", "audio/midi"); 662 mimeTypeMap->add("audio/x-mpeg", "audio/mpeg"); 663 mimeTypeMap->add("audio/mp3", "audio/mpeg"); 664 mimeTypeMap->add("audio/x-mp3", "audio/mpeg"); 665 mimeTypeMap->add("audio/mpeg3", "audio/mpeg"); 666 mimeTypeMap->add("audio/x-mpeg3", "audio/mpeg"); 667 mimeTypeMap->add("audio/mpg3", "audio/mpeg"); 668 mimeTypeMap->add("audio/mpg", "audio/mpeg"); 669 mimeTypeMap->add("audio/x-mpg", "audio/mpeg"); 670 mimeTypeMap->add("audio/m4a", "audio/mp4"); 671 mimeTypeMap->add("audio/x-m4a", "audio/mp4"); 672 mimeTypeMap->add("audio/x-mp4", "audio/mp4"); 673 mimeTypeMap->add("audio/x-aac", "audio/aac"); 674 mimeTypeMap->add("audio/x-amr", "audio/amr"); 675 mimeTypeMap->add("audio/mpegurl", "audio/x-mpegurl"); 676 mimeTypeMap->add("audio/flac", "audio/x-flac"); 677 mimeTypeMap->add("video/3gp", "video/3gpp"); 678 mimeTypeMap->add("video/avi", "video/x-msvideo"); 679 mimeTypeMap->add("video/x-m4v", "video/mp4"); 680 mimeTypeMap->add("video/x-quicktime", "video/quicktime"); 681 mimeTypeMap->add("application/java", "application/java-archive"); 682 mimeTypeMap->add("application/x-java-archive", "application/java-archive"); 683 mimeTypeMap->add("application/x-zip-compressed", "application/zip"); 684 685 return *mimeTypeMap; 686 } 687 #endif 688 689 String MIMETypeRegistry::getNormalizedMIMEType(const String& mimeType) 690 { 691 #if PLATFORM(BLACKBERRY) 692 MIMETypeAssociationMap::const_iterator it = mimeTypeAssociationMap().find(mimeType); 693 694 if (it != mimeTypeAssociationMap().end()) 695 return it->second; 696 #endif 697 return mimeType; 698 } 699 700 634 701 } // namespace WebCore -
trunk/Source/WebCore/platform/MIMETypeRegistry.h
r110557 r116145 85 85 static HashSet<String>& getSupportedMediaMIMETypes(); 86 86 static HashSet<String>& getUnsupportedTextMIMETypes(); 87 88 static String getNormalizedMIMEType(const String&); 87 89 }; 88 90 -
trunk/Source/WebKit/blackberry/Api/WebSettings.cpp
r111209 r116145 20 20 #include "WebSettings.h" 21 21 22 #include "MIMETypeRegistry.h" 22 23 #include "WebSettings_p.h" 23 24 … … 85 86 DEFINE_STATIC_LOCAL(String, WebKitXSSAuditorEnabled, ("WebKitXSSAuditorEnabled")); 86 87 87 // FIXME: We should consider moving all the mime type code into its own object.88 89 typedef HashMap<String, WebString> MIMETypeAssociationMap;90 91 static const MIMETypeAssociationMap& mimeTypeAssociationMap()92 {93 static MIMETypeAssociationMap* mimeTypeMap = 0;94 if (mimeTypeMap)95 return *mimeTypeMap;96 97 mimeTypeMap = new MIMETypeAssociationMap;98 mimeTypeMap->add("image/x-ms-bmp", "image/bmp");99 mimeTypeMap->add("image/x-windows-bmp", "image/bmp");100 mimeTypeMap->add("image/x-bmp", "image/bmp");101 mimeTypeMap->add("image/x-bitmap", "image/bmp");102 mimeTypeMap->add("image/x-ms-bitmap", "image/bmp");103 mimeTypeMap->add("image/jpg", "image/jpeg");104 mimeTypeMap->add("image/pjpeg", "image/jpeg");105 mimeTypeMap->add("image/x-png", "image/png");106 mimeTypeMap->add("image/vnd.rim.png", "image/png");107 mimeTypeMap->add("image/ico", "image/vnd.microsoft.icon");108 mimeTypeMap->add("image/icon", "image/vnd.microsoft.icon");109 mimeTypeMap->add("text/ico", "image/vnd.microsoft.icon");110 mimeTypeMap->add("application/ico", "image/vnd.microsoft.icon");111 mimeTypeMap->add("image/x-icon", "image/vnd.microsoft.icon");112 mimeTypeMap->add("audio/vnd.qcelp", "audio/qcelp");113 mimeTypeMap->add("audio/qcp", "audio/qcelp");114 mimeTypeMap->add("audio/vnd.qcp", "audio/qcelp");115 mimeTypeMap->add("audio/wav", "audio/x-wav");116 mimeTypeMap->add("audio/mid", "audio/midi");117 mimeTypeMap->add("audio/sp-midi", "audio/midi");118 mimeTypeMap->add("audio/x-mid", "audio/midi");119 mimeTypeMap->add("audio/x-midi", "audio/midi");120 mimeTypeMap->add("audio/x-mpeg", "audio/mpeg");121 mimeTypeMap->add("audio/mp3", "audio/mpeg");122 mimeTypeMap->add("audio/x-mp3", "audio/mpeg");123 mimeTypeMap->add("audio/mpeg3", "audio/mpeg");124 mimeTypeMap->add("audio/x-mpeg3", "audio/mpeg");125 mimeTypeMap->add("audio/mpg3", "audio/mpeg");126 mimeTypeMap->add("audio/mpg", "audio/mpeg");127 mimeTypeMap->add("audio/x-mpg", "audio/mpeg");128 mimeTypeMap->add("audio/m4a", "audio/mp4");129 mimeTypeMap->add("audio/x-m4a", "audio/mp4");130 mimeTypeMap->add("audio/x-mp4", "audio/mp4");131 mimeTypeMap->add("audio/x-aac", "audio/aac");132 mimeTypeMap->add("audio/x-amr", "audio/amr");133 mimeTypeMap->add("audio/mpegurl", "audio/x-mpegurl");134 mimeTypeMap->add("audio/flac", "audio/x-flac");135 mimeTypeMap->add("video/3gp", "video/3gpp");136 mimeTypeMap->add("video/avi", "video/x-msvideo");137 mimeTypeMap->add("video/x-m4v", "video/mp4");138 mimeTypeMap->add("video/x-quicktime", "video/quicktime");139 mimeTypeMap->add("application/java", "application/java-archive");140 mimeTypeMap->add("application/x-java-archive", "application/java-archive");141 mimeTypeMap->add("application/x-zip-compressed", "application/zip");142 143 return *mimeTypeMap;144 }145 146 88 static HashSet<String>* s_supportedObjectMIMETypes; 147 89 … … 255 197 return false; 256 198 257 return s_supportedObjectMIMETypes->contains(getNormalizedMIMEType(mimeType)); 258 } 259 260 WebString WebSettings::getNormalizedMIMEType(const WebString& type) 261 { 262 MIMETypeAssociationMap::const_iterator i = mimeTypeAssociationMap().find(type); 263 264 return i == mimeTypeAssociationMap().end() ? type : i->second; 199 return s_supportedObjectMIMETypes->contains(MIMETypeRegistry::getNormalizedMIMEType(mimeType)); 265 200 } 266 201 -
trunk/Source/WebKit/blackberry/Api/WebSettings.h
r111209 r116145 57 57 static void addSupportedObjectPluginMIMEType(const char*); 58 58 static bool isSupportedObjectMIMEType(const WebString&); 59 static WebString getNormalizedMIMEType(const WebString&);60 59 61 60 bool xssAuditorEnabled() const; -
trunk/Source/WebKit/blackberry/ChangeLog
r116121 r116145 1 2012-05-04 Rob Buis <rbuis@rim.com> 2 3 [BlackBerry] Rendering bmp file as text file when Content-Type:image/x-ms-bmp from apache web server. 4 https://bugs.webkit.org/show_bug.cgi?id=85036 5 6 Reviewed by Antonio Gomes. 7 8 Move getNormalizedMIMEType into WebCore::MIMETypeRegistry. 9 10 * Api/WebSettings.cpp: 11 (WebKit): 12 (BlackBerry::WebKit::WebSettings::isSupportedObjectMIMEType): 13 * Api/WebSettings.h: 14 * WebCoreSupport/FrameLoaderClientBlackBerry.cpp: 15 (WebCore::FrameLoaderClientBlackBerry::createPlugin): 16 (WebCore::FrameLoaderClientBlackBerry::canShowMIMEType): 17 (WebCore::FrameLoaderClientBlackBerry::objectContentType): 18 1 19 2012-05-04 Nate Chapin <japhet@chromium.org> 2 20 -
trunk/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp
r116121 r116145 321 321 if (mimeType.isEmpty()) { 322 322 mimeType = MIMETypeRegistry::getMIMETypeForPath(url.path()); 323 mimeType = WebSettings::getNormalizedMIMEType(mimeType);323 mimeType = MIMETypeRegistry::getNormalizedMIMEType(mimeType); 324 324 if (mimeType != "application/x-shockwave-flash") 325 325 mimeType = mimeTypeIn; … … 452 452 { 453 453 // Get normalized type. 454 String mimeType = WebSettings::getNormalizedMIMEType(mimeTypeIn);454 String mimeType = MIMETypeRegistry::getNormalizedMIMEType(mimeTypeIn); 455 455 456 456 // FIXME: Seems no other port checks empty MIME type in this function. Should we do that? … … 769 769 770 770 // Get mapped type. 771 mimeType = WebSettings::getNormalizedMIMEType(mimeType);771 mimeType = MIMETypeRegistry::getNormalizedMIMEType(mimeType); 772 772 773 773 ObjectContentType defaultType = FrameLoader::defaultObjectContentType(url, mimeType, shouldPreferPlugInsForImages);
Note: See TracChangeset
for help on using the changeset viewer.