jenkins-bot has submitted this change and it was merged.
Change subject: Assert node is still attached after traverse
......................................................................
Assert node is still attached after traverse
* Folow up on d31145eafe182a51428cd57313acd4357ba2015e.
Change-Id: Idb333aa77d54df4ada3c83da3ceda6e65fc016bc
---
M lib/dom.t.unpackDOMFragments.js
M lib/domTraverser.js
2 files changed, 11 insertions(+), 11 deletions(-)
Approvals:
Subramanya Sastry: Looks good to me, approved
jenkins-bot: Verified
diff --git a/lib/dom.t.unpackDOMFragments.js b/lib/dom.t.unpackDOMFragments.js
index 987a948..4fba4d4 100644
--- a/lib/dom.t.unpackDOMFragments.js
+++ b/lib/dom.t.unpackDOMFragments.js
@@ -40,7 +40,7 @@
var resetDSR = false,
currOffset = 0,
- dsrFixer = new DOMTraverser(env);
+ dsrFixer = new DOMTraverser(env, true);
dsrFixer.addHandler(null, function(node) {
if (DU.isElt(node)) {
if (node.nodeName === 'A') {
@@ -70,7 +70,7 @@
dsrFixer.traverse(fragment.firstChild);
// Since targetNode will get re-organized, save data.parsoid
- var dsrSaver = new DOMTraverser(env),
+ var dsrSaver = new DOMTraverser(env, true),
saveHandler = function(node) {
if ( DU.isElt( node ) ) {
var dp = DU.getDataParsoid( node );
diff --git a/lib/domTraverser.js b/lib/domTraverser.js
index aa9c4f1..bff4dfc 100644
--- a/lib/domTraverser.js
+++ b/lib/domTraverser.js
@@ -7,9 +7,10 @@
*
* @param node {HTMLNode} The node to be traversed
*/
-function DOMTraverser(env) {
+function DOMTraverser(env, skipCheckIfAttached) {
this.handlers = [];
this.env = env;
+ this.checkIfAttached = !skipCheckIfAttached;
}
/**
@@ -32,6 +33,7 @@
DOMTraverser.prototype.callHandlers = function ( node ) {
var name = ( node.nodeName || '' ).toLowerCase(),
+ document = node.ownerDocument,
ix, result;
for ( ix = 0; ix < this.handlers.length; ix++ ) {
@@ -50,15 +52,13 @@
return result;
}
- // FIXME: this should be asserted and fixed, or removed
// Sanity check for broken handlers
- // if (node.parentNode === null) {
- // this.env.log("error",
- // 'DOMPostProcessor.traverse: null
parentNode!',
- // 'Bug in',
this.handlers[ix].run.toString(),
- // ' when handling', node.outerHTML);
- // return node;
- // }
+ if ( this.checkIfAttached ) {
+ console.assert( DU.isAncestorOf( document, node
),
+ 'DOMPostProcessor.traverse: detached
node. ' +
+ 'Bug in ' +
this.handlers[ix].run.toString() +
+ ' when handling', node.outerHTML );
+ }
}
}
return true;
--
To view, visit https://gerrit.wikimedia.org/r/124481
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Idb333aa77d54df4ada3c83da3ceda6e65fc016bc
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: Arlolra <[email protected]>
Gerrit-Reviewer: Arlolra <[email protected]>
Gerrit-Reviewer: Subramanya Sastry <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits