Subramanya Sastry has uploaded a new change for review.
https://gerrit.wikimedia.org/r/194947
Change subject: WIP: For 'id' properties in data-mw, fetch HTML and compare DOMs
......................................................................
WIP: For 'id' properties in data-mw, fetch HTML and compare DOMs
* This lets us accept edited <ref>s from clients without expecting
them to dirty the <ref> node itself since we can fetch the target
HTML before comparing.
* Needs more testing for named refs.
Change-Id: If29ba8f3da7626e64bb292de7391010adf66c404
---
M lib/mediawiki.DOMDiff.js
M lib/mediawiki.DOMUtils.js
2 files changed, 11 insertions(+), 7 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid
refs/changes/47/194947/1
diff --git a/lib/mediawiki.DOMDiff.js b/lib/mediawiki.DOMDiff.js
index dfef02c..da1eabd 100644
--- a/lib/mediawiki.DOMDiff.js
+++ b/lib/mediawiki.DOMDiff.js
@@ -95,6 +95,12 @@
}
} else if (vA.constructor !== vB.constructor) {
return false;
+ } else if (kA === 'id') {
+ var htmlA = nodeA.ownerDocument.getElementById(vA);
+ var htmlB = nodeB.ownerDocument.getElementById(vB);
+ if (!this.treeEquals(htmlA, htmlB, true)) {
+ return false;
+ }
} else if (kA === 'html') {
// For 'html' attributes, parse string and recursively
compare DOM
if (vA !== vB &&
!this.treeEquals(DU.parseHTML(vA).body, DU.parseHTML(vB).body, true)) {
diff --git a/lib/mediawiki.DOMUtils.js b/lib/mediawiki.DOMUtils.js
index 8bf2266..e916544 100644
--- a/lib/mediawiki.DOMUtils.js
+++ b/lib/mediawiki.DOMUtils.js
@@ -173,16 +173,14 @@
return false;
}
- if (hA[k] !== hB[k]) {
+ var attribEquals = specializedAttribHandlers.get(k);
+ if (attribEquals) {
// Use a specialized compare function, if
provided
- var attribEquals =
specializedAttribHandlers.get(k);
- if (attribEquals) {
- if (!hA[k] || !hB[k] ||
!attribEquals(nodeA, JSON.parse(hA[k]), nodeB, JSON.parse(hB[k]))) {
- return false;
- }
- } else {
+ if (!hA[k] || !hB[k] || !attribEquals(nodeA,
JSON.parse(hA[k]), nodeB, JSON.parse(hB[k]))) {
return false;
}
+ } else if (hA[k] !== hB[k]) {
+ return false;
}
}
--
To view, visit https://gerrit.wikimedia.org/r/194947
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: If29ba8f3da7626e64bb292de7391010adf66c404
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: Subramanya Sastry <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits