Arlolra has uploaded a new change for review. https://gerrit.wikimedia.org/r/274855
Change subject: Don't set diff mark on DOM ...................................................................... Don't set diff mark on DOM * Let's keep it in the dataobject Change-Id: I2ffc1e5d232e42e3f15abf6082b8acb8e2e08059 --- M lib/utils/DOMUtils.js 1 file changed, 16 insertions(+), 23 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid refs/changes/55/274855/1 diff --git a/lib/utils/DOMUtils.js b/lib/utils/DOMUtils.js index e295a52..e2af3b6 100644 --- a/lib/utils/DOMUtils.js +++ b/lib/utils/DOMUtils.js @@ -961,18 +961,6 @@ return node && this.isMarkerMeta(node, "mw:DiffMarker"); }, - currentDiffMark: function(node, env) { - if (!node || !DU.isElt(node)) { - return null; - } - var data = this.getNodeData(node); - var dpd = data["parsoid-diff"]; - if (!dpd) { - dpd = this.loadDataAttrib(node, "parsoid-diff"); - } - return dpd !== {} && dpd.id === env.page.id ? dpd : null; - }, - /** * Check that the diff markers on the node exist and are recent. * @@ -980,7 +968,7 @@ * @param {MWParserEnvironment} env */ hasDiffMarkers: function(node, env) { - return this.currentDiffMark(node, env) !== null || this.isDiffMarker(node); + return this.getDiffMark(node, env) !== null || this.isDiffMarker(node); }, hasDiffMark: function(node, env, mark) { @@ -989,7 +977,7 @@ if (mark === 'deleted' || (mark === 'inserted' && !DU.isElt(node))) { return this.isDiffMarker(node.previousSibling); } else { - var diffMark = this.currentDiffMark(node, env); + var diffMark = this.getDiffMark(node, env); return diffMark && diffMark.diff.indexOf(mark) >= 0; } }, @@ -1003,7 +991,7 @@ }, onlySubtreeChanged: function(node, env) { - var dmark = this.currentDiffMark(node, env); + var dmark = this.getDiffMark(node, env); return dmark && dmark.diff.every(function subTreechangeMarker(mark) { return mark === 'subtree-changed' || mark === 'children-changed'; }); @@ -1022,6 +1010,15 @@ } }, + getDiffMark: function(node, env) { + if (!DU.isElt(node)) { + return null; + } + var data = DU.getNodeData(node); + var dpd = data['parsoid-diff']; + return dpd && dpd.id === env.page.id ? dpd : null; + }, + /** * Set a diff marker on a node. * @@ -1030,8 +1027,9 @@ * @param {string} change */ setDiffMark: function(node, env, change) { - var dpd = this.getJSONAttribute(node, 'data-parsoid-diff', null); - if (dpd !== null && dpd.id === env.page.id) { + if (!DU.isElt(node)) { return; } + var dpd = DU.getDiffMark(node, env); + if (dpd) { // Diff is up to date, append this change if it doesn't already exist if (dpd.diff.indexOf(change) === -1) { dpd.diff.push(change); @@ -1044,12 +1042,7 @@ diff: [change], }; } - - // Clear out the loaded value - this.getNodeData(node)["parsoid-diff"] = undefined; - - // Add serialization info to this node - this.setJSONAttribute(node, 'data-parsoid-diff', dpd); + DU.getNodeData(node)['parsoid-diff'] = dpd; }, /** -- To view, visit https://gerrit.wikimedia.org/r/274855 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2ffc1e5d232e42e3f15abf6082b8acb8e2e08059 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/services/parsoid Gerrit-Branch: master Gerrit-Owner: Arlolra <abrea...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits