GWicke has uploaded a new change for review.
https://gerrit.wikimedia.org/r/71757
Change subject: Bug 50636: Don't extrapolate DSR on change
......................................................................
Bug 50636: Don't extrapolate DSR on change
The WikitextSerializer's emitSeparator method was using text node lengths to
extrapolate a previousSibling's DSR, even if that text node was changed. This
led to an invalid extrapolated dsr if that text was modified.
This patch adds a test for the subtree-changed diff marker on the parentNode
and does not extrapolate the DSR in that case.
subtree-changed is sadly less precise than possible as it is set all the way
to the root. We should add a different flag to mark the case where direct
children have changed, and check for that here.
Change-Id: Iad67bac7a9ba890cbd3816d3ff3295b23b34be30
---
M js/lib/mediawiki.WikitextSerializer.js
1 file changed, 5 insertions(+), 1 deletion(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Parsoid
refs/changes/57/71757/1
diff --git a/js/lib/mediawiki.WikitextSerializer.js
b/js/lib/mediawiki.WikitextSerializer.js
index 6f93ed6..6a80b64 100644
--- a/js/lib/mediawiki.WikitextSerializer.js
+++ b/js/lib/mediawiki.WikitextSerializer.js
@@ -3470,7 +3470,11 @@
dsrA = prevNode.parentNode.data.parsoid.dsr;
} else if (prevNode.previousSibling &&
prevNode.previousSibling.nodeType ===
prevNode.ELEMENT_NODE &&
-
prevNode.previousSibling.data.parsoid.dsr)
+
prevNode.previousSibling.data.parsoid.dsr &&
+ // Don't extrapolate if the string was
potentially changed
+ // TODO: Only disable if direct
children of parent were
+ // modified!
+ !DU.hasCurrentDiffMark(node.parentNode,
this.env))
{
var endDsr =
prevNode.previousSibling.data.parsoid.dsr[1],
correction;
--
To view, visit https://gerrit.wikimedia.org/r/71757
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Iad67bac7a9ba890cbd3816d3ff3295b23b34be30
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Parsoid
Gerrit-Branch: master
Gerrit-Owner: GWicke <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits