Zotero.MIME fixes:
- Don't try to get MIME type from extension if extension is blank - Add text/css to native text types, even if snapshots add some html tags (why is that?) - Get rid of extraneous "this." prefixes
This commit is contained in:
parent
be5ddb1505
commit
f87d29a6b9
|
@ -1255,7 +1255,6 @@ Zotero.Item.prototype.getFile = function(row){
|
||||||
if (row['linkMode']==Zotero.Attachments.LINK_MODE_IMPORTED_URL ||
|
if (row['linkMode']==Zotero.Attachments.LINK_MODE_IMPORTED_URL ||
|
||||||
row['linkMode']==Zotero.Attachments.LINK_MODE_IMPORTED_FILE){
|
row['linkMode']==Zotero.Attachments.LINK_MODE_IMPORTED_FILE){
|
||||||
try {
|
try {
|
||||||
Zotero.debug(row['path']);
|
|
||||||
var storageDir = Zotero.getStorageDirectory();
|
var storageDir = Zotero.getStorageDirectory();
|
||||||
storageDir.QueryInterface(Components.interfaces.nsILocalFile);
|
storageDir.QueryInterface(Components.interfaces.nsILocalFile);
|
||||||
file.setRelativeDescriptor(storageDir, row['path']);
|
file.setRelativeDescriptor(storageDir, row['path']);
|
||||||
|
|
|
@ -45,6 +45,7 @@ Zotero.MIME = new function(){
|
||||||
// DEBUG: There's definitely a better way of getting these
|
// DEBUG: There's definitely a better way of getting these
|
||||||
var _nativeMIMETypes = {
|
var _nativeMIMETypes = {
|
||||||
'text/html': true,
|
'text/html': true,
|
||||||
|
'text/css': true,
|
||||||
'image/jpeg': true,
|
'image/jpeg': true,
|
||||||
'image/gif': true,
|
'image/gif': true,
|
||||||
'text/xml': true,
|
'text/xml': true,
|
||||||
|
@ -102,23 +103,25 @@ Zotero.MIME = new function(){
|
||||||
* ext is an optional file extension hint if data sniffing is unsuccessful
|
* ext is an optional file extension hint if data sniffing is unsuccessful
|
||||||
*/
|
*/
|
||||||
function getMIMETypeFromData(str, ext){
|
function getMIMETypeFromData(str, ext){
|
||||||
var mimeType = this.sniffForMIMEType(str);
|
var mimeType = sniffForMIMEType(str);
|
||||||
if (mimeType){
|
if (mimeType){
|
||||||
Zotero.debug('Detected MIME type ' + mimeType);
|
Zotero.debug('Detected MIME type ' + mimeType);
|
||||||
return mimeType;
|
return mimeType;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
var mimeType = Components.classes["@mozilla.org/uriloader/external-helper-app-service;1"]
|
if (ext) {
|
||||||
.getService(Components.interfaces.nsIMIMEService).getTypeFromExtension(ext);
|
var mimeType = Components.classes["@mozilla.org/uriloader/external-helper-app-service;1"]
|
||||||
Zotero.debug('Got MIME type ' + mimeType + ' from extension');
|
.getService(Components.interfaces.nsIMIMEService).getTypeFromExtension(ext);
|
||||||
return mimeType;
|
Zotero.debug('Got MIME type ' + mimeType + ' from extension');
|
||||||
}
|
return mimeType;
|
||||||
catch (e){
|
}
|
||||||
var mimeType = this.sniffForBinary(str);
|
|
||||||
Zotero.debug('Cannot determine MIME type -- settling for ' + mimeType);
|
|
||||||
return mimeType;
|
|
||||||
}
|
}
|
||||||
|
catch (e) {}
|
||||||
|
|
||||||
|
var mimeType = sniffForBinary(str);
|
||||||
|
Zotero.debug('Cannot determine MIME type from magic number or extension -- settling for ' + mimeType);
|
||||||
|
return mimeType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -130,7 +133,7 @@ Zotero.MIME = new function(){
|
||||||
var str = Zotero.File.getSample(file);
|
var str = Zotero.File.getSample(file);
|
||||||
var ext = Zotero.File.getExtension(file);
|
var ext = Zotero.File.getExtension(file);
|
||||||
|
|
||||||
return this.getMIMETypeFromData(str, ext);
|
return getMIMETypeFromData(str, ext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -149,7 +152,7 @@ Zotero.MIME = new function(){
|
||||||
*/
|
*/
|
||||||
function hasNativeHandler(mimeType, ext) {
|
function hasNativeHandler(mimeType, ext) {
|
||||||
if (mimeType=='text/plain'){
|
if (mimeType=='text/plain'){
|
||||||
if (this.isExternalTextExtension(ext)){
|
if (isExternalTextExtension(ext)){
|
||||||
Zotero.debug('text/plain file has extension that should be handled externally');
|
Zotero.debug('text/plain file has extension that should be handled externally');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -195,9 +198,9 @@ Zotero.MIME = new function(){
|
||||||
|
|
||||||
|
|
||||||
function fileHasInternalHandler(file){
|
function fileHasInternalHandler(file){
|
||||||
var mimeType = this.getMIMETypeFromFile(file);
|
var mimeType = getMIMETypeFromFile(file);
|
||||||
var ext = Zotero.File.getExtension(file);
|
var ext = Zotero.File.getExtension(file);
|
||||||
return this.hasInternalHandler(mimeType, ext);
|
return hasInternalHandler(mimeType, ext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user