jenkins-bot has submitted this change and it was merged.

Change subject: Fix two crashers
......................................................................


Fix two crashers

Fixes the following two crashes:

==================================
ERROR in ruwiki:Участник:UnCursed:
Cannot read property 'nodeType' of null
Stack trace: TypeError: Cannot read property 'nodeType' of null
    at Object.DOMUtils.isElt 
(/srv/deployment/parsoid/Parsoid/js/lib/mediawiki.DOMUtils.js:31:14)
    at markFosteredContent 
(/srv/deployment/parsoid/Parsoid/js/lib/dom.markFosteredContent.js:90:16)
    at markFosteredContent 
(/srv/deployment/parsoid/Parsoid/js/lib/dom.markFosteredContent.js:124:5)
    at markFosteredContent 
(/srv/deployment/parsoid/Parsoid/js/lib/dom.markFosteredContent.js:124:5)
    at markFosteredContent 
(/srv/deployment/parsoid/Parsoid/js/lib/dom.markFosteredContent.js:124:5)
    at Array.markFosteredContent [as 1] 
(/srv/deployment/parsoid/Parsoid/js/lib/dom.markFosteredContent.js:124:5)
    at DOMPostProcessor.doPostProcess 
(/srv/deployment/parsoid/Parsoid/js/lib/mediawiki.DOMPostProcessor.js:203:22)
    at EventEmitter.emit (events.js:88:17)
    at FauxHTML5.TreeBuilder.onEnd 
(/srv/deployment/parsoid/Parsoid/js/lib/mediawiki.HTML5TreeBuilder.node.js:109:7)
    at SyncTokenTransformManager.EventEmitter.emit (events.js:85:17)
==================================
ERROR in enwiki:Wikipedia:WikiProject_Yugoslavia/Sidebar:
INVALID_CHARACTER_ERR (5): the string contains invalid characters
Stack trace: INVALID_CHARACTER_ERR: INVALID_CHARACTER_ERR (5): the string 
contains invalid characters
    at Object.exports.InvalidCharacterError 
(/srv/deployment/parsoid/config/node_modules/domino/lib/utils.js:19:52)
    at HTMLMetaElement.setAttribute 
(/srv/deployment/parsoid/config/node_modules/domino/lib/Element.js:437:40)
    at 
/srv/deployment/parsoid/Parsoid/js/lib/mediawiki.DOMPostProcessor.js:109:10
    at Array.forEach (native)
    at Object.prepareDOM [as run] 
(/srv/deployment/parsoid/Parsoid/js/lib/mediawiki.DOMPostProcessor.js:108:15)
    at DOMTraverser.callHandlers 
(/srv/deployment/parsoid/Parsoid/js/lib/domTraverser.js:38:31)
    at DOMTraverser.traverse 
(/srv/deployment/parsoid/Parsoid/js/lib/domTraverser.js:83:17)
    at DOMTraverser.traverse 
(/srv/deployment/parsoid/Parsoid/js/lib/domTraverser.js:94:10)
    at DOMTraverser.traverse 
(/srv/deployment/parsoid/Parsoid/js/lib/domTraverser.js:94:10)
    at DOMPostProcessor.doPostProcess 
(/srv/deployment/parsoid/Parsoid/js/lib/mediawiki.DOMPostProcessor.js:203:22)
==================================

Change-Id: I517c7c32a4154c0d59b90f05bbbb803df32fda81
---
M js/lib/dom.markFosteredContent.js
M js/lib/mediawiki.DOMPostProcessor.js
2 files changed, 6 insertions(+), 2 deletions(-)

Approvals:
  Subramanya Sastry: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/js/lib/dom.markFosteredContent.js 
b/js/lib/dom.markFosteredContent.js
index aa6bbef..a0b6c0b 100644
--- a/js/lib/dom.markFosteredContent.js
+++ b/js/lib/dom.markFosteredContent.js
@@ -87,7 +87,7 @@
                if ( DU.isMarkerMeta( c, "mw:FosterBox" ) ) {
 
                        // mark as fostered until we hit the table
-                       while ( !DU.isElt( sibling ) || !DU.hasNodeName( 
sibling, "table" ) ) {
+                       while ( sibling && ( !DU.isElt( sibling ) || 
!DU.hasNodeName( sibling, "table" ) ) ) {
                                next = sibling.nextSibling;
                                if ( DU.isElt( sibling ) ) {
                                        sibling.data.parsoid.fostered = true;
diff --git a/js/lib/mediawiki.DOMPostProcessor.js 
b/js/lib/mediawiki.DOMPostProcessor.js
index 895ce4f..dfae362 100644
--- a/js/lib/mediawiki.DOMPostProcessor.js
+++ b/js/lib/mediawiki.DOMPostProcessor.js
@@ -106,7 +106,11 @@
                if ( /^mw:/.test( type ) ) {
                        var meta = node.ownerDocument.createElement( "meta" );
                        data.attrs.forEach(function ( attr ) {
-                               meta.setAttribute( attr.name, attr.value );
+                               try {
+                                       meta.setAttribute( attr.name, 
attr.value );
+                               } catch(e) {
+                                       console.error('WARNING: prepareDOM: 
Dropped invalid attribute ' + attr);
+                               }
                        });
                        node.parentNode.insertBefore( meta, node );
                        DU.deleteNode( node );

-- 
To view, visit https://gerrit.wikimedia.org/r/90180
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I517c7c32a4154c0d59b90f05bbbb803df32fda81
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Parsoid
Gerrit-Branch: master
Gerrit-Owner: GWicke <gwi...@wikimedia.org>
Gerrit-Reviewer: Arlolra <abrea...@wikimedia.org>
Gerrit-Reviewer: Subramanya Sastry <ssas...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to