From 948b09a27f5b171d5752507804054083b890e20c Mon Sep 17 00:00:00 2001 From: Abe Jellinek Date: Wed, 18 May 2022 20:01:07 -0700 Subject: [PATCH] fx-compat: Remove uses of defunct DOM constructors This fixes feed translation. Getting a lot of '[object Object]' fields from that, but I don't think it's related to these changes. --- chrome/content/zotero/fileInterface.js | 3 +-- chrome/content/zotero/itemTree.jsx | 3 +-- chrome/content/zotero/xpcom/attachments.js | 5 ++--- chrome/content/zotero/xpcom/data/notes.js | 15 +++++---------- chrome/content/zotero/xpcom/editorInstance.js | 9 +++------ chrome/content/zotero/xpcom/integration.js | 3 +-- chrome/content/zotero/xpcom/reader.js | 3 +-- chrome/content/zotero/xpcom/utilities_internal.js | 3 +-- 8 files changed, 15 insertions(+), 29 deletions(-) diff --git a/chrome/content/zotero/fileInterface.js b/chrome/content/zotero/fileInterface.js index a5635b4ea4..53e42dd31f 100644 --- a/chrome/content/zotero/fileInterface.js +++ b/chrome/content/zotero/fileInterface.js @@ -301,8 +301,7 @@ var Zotero_File_Interface = new function() { let text = obj.string; // For Note HTML translator use body content only if (translatorID == Zotero.Translators.TRANSLATOR_ID_NOTE_HTML) { - let parser = Components.classes['@mozilla.org/xmlextras/domparser;1'] - .createInstance(Components.interfaces.nsIDOMParser); + let parser = new DOMParser(); let doc = parser.parseFromString(text, 'text/html'); text = doc.body.innerHTML; } diff --git a/chrome/content/zotero/itemTree.jsx b/chrome/content/zotero/itemTree.jsx index 9fcafc109c..4220466cbc 100644 --- a/chrome/content/zotero/itemTree.jsx +++ b/chrome/content/zotero/itemTree.jsx @@ -2014,8 +2014,7 @@ var ItemTree = class ItemTree extends LibraryTree { // For Note HTML translator use body content only if (format.id == Zotero.Translators.TRANSLATOR_ID_NOTE_HTML) { // Use body content only - let parser = Cc['@mozilla.org/xmlextras/domparser;1'] - .createInstance(Ci.nsIDOMParser); + let parser = new DOMParser(); let doc = parser.parseFromString(text, 'text/html'); text = doc.body.innerHTML; } diff --git a/chrome/content/zotero/xpcom/attachments.js b/chrome/content/zotero/xpcom/attachments.js index ca51bf9e53..c8ae27a311 100644 --- a/chrome/content/zotero/xpcom/attachments.js +++ b/chrome/content/zotero/xpcom/attachments.js @@ -894,7 +894,7 @@ Zotero.Attachments = new function(){ if ((contentType === 'text/html' || contentType === 'application/xhtml+xml') // Documents from XHR don't work here - && Zotero.Translate.DOMWrapper.unwrap(document) instanceof Ci.nsIDOMDocument) { + && Zotero.Translate.DOMWrapper.unwrap(document) instanceof Document) { if (document.defaultView.window) { // If we have a full hidden browser, use SingleFile Zotero.debug('Getting snapshot with snapshotDocument()'); @@ -1011,8 +1011,7 @@ Zotero.Attachments = new function(){ // If no title was provided, pull it from the document if (!title) { - let parser = Components.classes["@mozilla.org/xmlextras/domparser;1"] - .createInstance(Components.interfaces.nsIDOMParser); + let parser = new DOMParser(); parser.init(null, Services.io.newURI(url)); let doc = parser.parseFromString(snapshotContent, 'text/html'); title = doc.title; diff --git a/chrome/content/zotero/xpcom/data/notes.js b/chrome/content/zotero/xpcom/data/notes.js index 57646e6a3f..77254923a2 100644 --- a/chrome/content/zotero/xpcom/data/notes.js +++ b/chrome/content/zotero/xpcom/data/notes.js @@ -132,8 +132,7 @@ Zotero.Notes = new function() { } let note = item.getNote(); - let parser = Components.classes["@mozilla.org/xmlextras/domparser;1"] - .createInstance(Components.interfaces.nsIDOMParser); + let parser = new DOMParser(); let doc = parser.parseFromString(note, 'text/html'); // Make sure this is the new note @@ -283,8 +282,7 @@ Zotero.Notes = new function() { } let note = toNote.note; - let parser = Components.classes['@mozilla.org/xmlextras/domparser;1'] - .createInstance(Components.interfaces.nsIDOMParser); + let parser = new DOMParser(); let doc = parser.parseFromString(note, 'text/html'); // Copy note image attachments and replace keys in the new note @@ -326,8 +324,7 @@ Zotero.Notes = new function() { } let note = item.getNote(); - let parser = Components.classes["@mozilla.org/xmlextras/domparser;1"] - .createInstance(Components.interfaces.nsIDOMParser); + let parser = new DOMParser(); let doc = parser.parseFromString(note, 'text/html'); let keys = Array.from(doc.querySelectorAll('img[data-attachment-key]')) @@ -342,8 +339,7 @@ Zotero.Notes = new function() { }; this.hasSchemaVersion = function (note) { - let parser = Components.classes['@mozilla.org/xmlextras/domparser;1'] - .createInstance(Components.interfaces.nsIDOMParser); + let parser = new DOMParser(); let doc = parser.parseFromString(note, 'text/html'); return !!doc.querySelector('body > div[data-schema-version]'); }; @@ -366,8 +362,7 @@ Zotero.Notes = new function() { this.upgradeSchemaV1 = async function (item) { let note = item.note; - let parser = Components.classes['@mozilla.org/xmlextras/domparser;1'] - .createInstance(Components.interfaces.nsIDOMParser); + let parser = new DOMParser(); let doc = parser.parseFromString(note, 'text/html'); let metadataContainer = doc.querySelector('body > div[data-schema-version]'); diff --git a/chrome/content/zotero/xpcom/editorInstance.js b/chrome/content/zotero/xpcom/editorInstance.js index 235ccdf199..f24430a5a1 100644 --- a/chrome/content/zotero/xpcom/editorInstance.js +++ b/chrome/content/zotero/xpcom/editorInstance.js @@ -287,8 +287,7 @@ class EditorInstance { else if (item.isNote()) { let note = item.note; - let parser = Components.classes['@mozilla.org/xmlextras/domparser;1'] - .createInstance(Components.interfaces.nsIDOMParser); + let parser = new DOMParser(); let doc = parser.parseFromString(note, 'text/html'); // Get citationItems with itemData from note metadata @@ -1054,8 +1053,7 @@ class EditorInstance { // Zotero.debug('CI: getItems'); let note = that._item.note; - let parser = Components.classes['@mozilla.org/xmlextras/domparser;1'] - .createInstance(Components.interfaces.nsIDOMParser); + let parser = new DOMParser(); let doc = parser.parseFromString(note, 'text/html'); let metadataContainer = doc.querySelector('body > div[data-schema-version]'); @@ -1437,8 +1435,7 @@ class EditorInstanceUtilities { } } - let parser = Components.classes['@mozilla.org/xmlextras/domparser;1'] - .createInstance(Components.interfaces.nsIDOMParser); + let parser = new DOMParser(); let doc = parser.parseFromString('', 'text/html'); // innerText transforms \n into
diff --git a/chrome/content/zotero/xpcom/integration.js b/chrome/content/zotero/xpcom/integration.js index 23ac294747..358d114a5b 100644 --- a/chrome/content/zotero/xpcom/integration.js +++ b/chrome/content/zotero/xpcom/integration.js @@ -1528,8 +1528,7 @@ Zotero.Integration.Session.prototype._insertCitingResult = async function (field */ Zotero.Integration.Session.prototype._processNote = async function (item) { let text = await Zotero.Notes.getExportableNote(item); - let parser = Components.classes["@mozilla.org/xmlextras/domparser;1"] - .createInstance(Components.interfaces.nsIDOMParser); + let parser = new DOMParser(); let doc = parser.parseFromString(text, "text/html"); let citationsElems = doc.querySelectorAll('.citation[data-citation]'); let citations = []; diff --git a/chrome/content/zotero/xpcom/reader.js b/chrome/content/zotero/xpcom/reader.js index fc7cab2424..fcdf5f1505 100644 --- a/chrome/content/zotero/xpcom/reader.js +++ b/chrome/content/zotero/xpcom/reader.js @@ -341,8 +341,7 @@ class ReaderInstance { // For Note HTML translator use body content only if (format.id === Zotero.Translators.TRANSLATOR_ID_NOTE_HTML) { // Use body content only - let parser = Cc['@mozilla.org/xmlextras/domparser;1'] - .createInstance(Ci.nsIDOMParser); + let parser = new DOMParser(); let doc = parser.parseFromString(text, 'text/html'); text = doc.body.innerHTML; } diff --git a/chrome/content/zotero/xpcom/utilities_internal.js b/chrome/content/zotero/xpcom/utilities_internal.js index c3e1c18a97..4dde6f0060 100644 --- a/chrome/content/zotero/xpcom/utilities_internal.js +++ b/chrome/content/zotero/xpcom/utilities_internal.js @@ -942,8 +942,7 @@ Zotero.Utilities.Internal = { */ blobToHTMLDocument: async function (blob, url) { var responseText = await Zotero.Utilities.Internal.blobToText(blob); - var parser = Components.classes["@mozilla.org/xmlextras/domparser;1"] - .createInstance(Components.interfaces.nsIDOMParser); + var parser = new DOMParser(); var doc = parser.parseFromString(responseText, 'text/html'); return Zotero.HTTP.wrapDocument(doc, url); },