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

Reply via email to