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

Change subject: Only copy data-parsoid attribute from element to shadow meta
......................................................................


Only copy data-parsoid attribute from element to shadow meta

Others aren't necessary and if they aren't sanitized, result in crashes.

Does a bit of es5 cleanup.

Bug: 55820
Change-Id: Ib82891a374bf1e8b5e87309d62b3a53e4e12b7eb
---
M js/lib/mediawiki.DOMPostProcessor.js
M js/lib/mediawiki.HTML5TreeBuilder.node.js
M js/lib/mediawiki.Util.js
M js/lib/pegTokenizer.pegjs.txt
4 files changed, 15 insertions(+), 15 deletions(-)

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



diff --git a/js/lib/mediawiki.DOMPostProcessor.js 
b/js/lib/mediawiki.DOMPostProcessor.js
index 7f89b6e..3c17ab3 100644
--- a/js/lib/mediawiki.DOMPostProcessor.js
+++ b/js/lib/mediawiki.DOMPostProcessor.js
@@ -109,7 +109,7 @@
                                try {
                                        meta.setAttribute( attr.name, 
attr.value );
                                } catch(e) {
-                                       console.error('WARNING: prepareDOM: 
Dropped invalid attribute ' + attr);
+                                       console.error( 'WARNING: prepareDOM: 
Dropped invalid attribute ' + attr.name );
                                }
                        });
                        node.parentNode.insertBefore( meta, node );
diff --git a/js/lib/mediawiki.HTML5TreeBuilder.node.js 
b/js/lib/mediawiki.HTML5TreeBuilder.node.js
index e028240..6b9229f 100644
--- a/js/lib/mediawiki.HTML5TreeBuilder.node.js
+++ b/js/lib/mediawiki.HTML5TreeBuilder.node.js
@@ -7,7 +7,6 @@
 
 var events = require('events'),
        util = require('util'),
-       $ = require('./fakejquery'),
        HTML5 = require('html5'),
        domino = require('./domino'),
        defines = require('./mediawiki.parser.defines.js'),
@@ -113,14 +112,12 @@
 };
 
 FauxHTML5.TreeBuilder.prototype._att = function (maybeAttribs) {
-       var atts = [];
-       if ( maybeAttribs && $.isArray( maybeAttribs ) ) {
-               for(var i = 0, length = maybeAttribs.length; i < length; i++) {
-                       var att = maybeAttribs[i];
-                       atts.push({name: att.k, value: att.v});
-               }
+       if ( Array.isArray( maybeAttribs ) ) {
+               return maybeAttribs.map(function ( attr ) {
+                       return { name: attr.k, value: attr.v };
+               });
        }
-       return atts;
+       return [];
 };
 
 // Adapt the token format to internal HTML tree builder format, call the actual
@@ -153,9 +150,10 @@
                dataAttribs.tagId = this.tagId++;
        }
 
+       var dpString = JSON.stringify(dataAttribs);
        attribs = attribs.concat([ {
                k: 'data-parsoid',
-               v: JSON.stringify(dataAttribs)
+               v: dpString
        } ]);
 
        if (this.trace) {
@@ -273,9 +271,11 @@
                        this.emit('token', {type: 'EndTag', name: tName});
 
                        if ( this.trace ) { console.warn('inserting shadow meta 
for ' + tName); }
-                       attrs = this._att(attribs);
-                       attrs.push({name: "typeof", value: "mw:EndTag"});
-                       attrs.push({name: "data-etag", value: tName});
+                       attrs = [
+                               { name: "data-parsoid", value: dpString },
+                               { name: "typeof", value: "mw:EndTag" },
+                               { name: "data-etag", value: tName }
+                       ];
                        this.emit('token', {type: 'Comment', data: 
JSON.stringify({
                                "@type": "mw:shadow",
                                attrs: attrs
diff --git a/js/lib/mediawiki.Util.js b/js/lib/mediawiki.Util.js
index 90ca713..c4a4e2e 100644
--- a/js/lib/mediawiki.Util.js
+++ b/js/lib/mediawiki.Util.js
@@ -319,7 +319,7 @@
        tokensToString: function ( tokens, strict ) {
                var out = [];
                // XXX: quick hack, track down non-array sources later!
-               if ( ! $.isArray( tokens ) ) {
+               if ( !Array.isArray( tokens ) ) {
                        tokens = [ tokens ];
                }
                for ( var i = 0, l = tokens.length; i < l; i++ ) {
diff --git a/js/lib/pegTokenizer.pegjs.txt b/js/lib/pegTokenizer.pegjs.txt
index 98a0685..3c6c0e6 100644
--- a/js/lib/pegTokenizer.pegjs.txt
+++ b/js/lib/pegTokenizer.pegjs.txt
@@ -25,7 +25,7 @@
     //    // flatten sub-arrays
     //    for(var i = 0, length = e.length; i < length; i++) {
     //        var ei = e[i];
-    //        if ($.isArray(ei))
+    //        if ( Array.isArray( ei ) )
     //            es = es.concat(flatten(ei));
     //        else
     //            es.push(ei);

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib82891a374bf1e8b5e87309d62b3a53e4e12b7eb
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/Parsoid
Gerrit-Branch: master
Gerrit-Owner: Arlolra <[email protected]>
Gerrit-Reviewer: GWicke <[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

Reply via email to