commit 7022379a87ecf22bd9978e7ab33df9c837f6990f
parent 52f4bd8f6753e5f42269cc936b48d49243a6b4d7
Author: Simon Kornblith <simon@simonster.com>
Date: Mon, 29 Oct 2012 19:31:10 -0400
Fix RDF for Firefox 17
Diffstat:
1 file changed, 20 insertions(+), 7 deletions(-)
diff --git a/chrome/content/zotero/xpcom/translation/translate.js b/chrome/content/zotero/xpcom/translation/translate.js
@@ -2465,7 +2465,7 @@ Zotero.Translate.IO._RDFSandbox.prototype = {
}
}
- return containerElements;
+ return this._expose(containerElements);
},
/**
@@ -2498,7 +2498,7 @@ Zotero.Translate.IO._RDFSandbox.prototype = {
for(var i in this._dataStore.subjectIndex) {
returnArray.push(this._dataStore.subjectIndex[i][0].subject);
}
- return returnArray;
+ return this._expose(returnArray);
},
/**
@@ -2514,7 +2514,7 @@ Zotero.Translate.IO._RDFSandbox.prototype = {
for(var i=0; i<statements.length; i++) {
returnArray.push(statements[i].predicate.uri);
}
- return returnArray;
+ return this._expose(returnArray);
},
/**
@@ -2530,7 +2530,7 @@ Zotero.Translate.IO._RDFSandbox.prototype = {
for(var i=0; i<statements.length; i++) {
returnArray.push(statements[i].predicate.uri);
}
- return returnArray;
+ return this._expose(returnArray);
},
/**
@@ -2548,7 +2548,7 @@ Zotero.Translate.IO._RDFSandbox.prototype = {
for(var i=0; i<statements.length; i++) {
returnArray.push(statements[i].subject);
}
- return returnArray;
+ return this._expose(returnArray);
},
/**
@@ -2566,7 +2566,7 @@ Zotero.Translate.IO._RDFSandbox.prototype = {
for(var i=0; i<statements.length; i++) {
returnArray.push(statements[i].object.termType == "literal" ? statements[i].object.toString() : statements[i].object);
}
- return returnArray;
+ return this._expose(returnArray);
},
/**
@@ -2593,6 +2593,19 @@ Zotero.Translate.IO._RDFSandbox.prototype = {
for(var i=0; i<statements.length; i++) {
returnArray.push([statements[i].subject, statements[i].predicate, (statements[i].object.termType == "literal" ? statements[i].object.toString() : statements[i].object)]);
}
- return returnArray;
+ return this._expose(returnArray);
+ },
+
+ /**
+ * Set output so that it can be exposed to content in Firefox
+ */
+ "_expose":function(arr) {
+ if(!Zotero.isFx || !arr instanceof Array) return arr;
+ var ep = {};
+ for(var i=0; i<arr.length; i++) {
+ ep[i] = "rw";
+ }
+ Object.defineProperty(arr, "__exposedProps__", {"value":ep});
+ return arr;
}
};
\ No newline at end of file