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

Change subject: Don't corrupt categories/langlinks with new types
......................................................................


Don't corrupt categories/langlinks with new types

Parsoid changed these types from mw:WikiLink/{Category,Language}
to mw:PageProp/{Category,Language} in I0f0a826c. We had previously
added support for them in 4d91e4ed but code overwrote the new types
with the old ones on the way out, triggering the DOM corruption warning.

Change-Id: I768ec2ffd623e5a01f18959277786697603a97f0
---
M modules/ve-mw/dm/metaitems/ve.dm.MWCategoryMetaItem.js
M modules/ve-mw/dm/metaitems/ve.dm.MWLanguageMetaItem.js
M modules/ve-mw/test/dm/ve.dm.mwExample.js
3 files changed, 20 insertions(+), 14 deletions(-)

Approvals:
  Krinkle: Looks good to me, but someone else must approve
  Esanders: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/modules/ve-mw/dm/metaitems/ve.dm.MWCategoryMetaItem.js 
b/modules/ve-mw/dm/metaitems/ve.dm.MWCategoryMetaItem.js
index aee6ccf..56879f1 100644
--- a/modules/ve-mw/dm/metaitems/ve.dm.MWCategoryMetaItem.js
+++ b/modules/ve-mw/dm/metaitems/ve.dm.MWCategoryMetaItem.js
@@ -48,7 +48,8 @@
                        'category': decodeURIComponent( matches[2] ).replace( 
/_/g, ' ' ),
                        'origCategory': matches[2],
                        'sortkey': decodeURIComponent( rawSortkey ).replace( 
/_/g, ' ' ),
-                       'origSortkey': rawSortkey
+                       'origSortkey': rawSortkey,
+                       'origRel': firstDomElement.getAttribute( 'rel' )
                }
        };
 };
@@ -73,7 +74,7 @@
        } else {
                category = encodeURIComponent( category );
        }
-       domElement.setAttribute( 'rel', 'mw:WikiLink/Category' );
+       domElement.setAttribute( 'rel', dataElement.attributes.origRel || 
'mw:PageProp/Category' );
        href = hrefPrefix + category;
        if ( sortkey !== '' ) {
                href += '#' + sortkey;
diff --git a/modules/ve-mw/dm/metaitems/ve.dm.MWLanguageMetaItem.js 
b/modules/ve-mw/dm/metaitems/ve.dm.MWLanguageMetaItem.js
index 1baca67..b42d114 100644
--- a/modules/ve-mw/dm/metaitems/ve.dm.MWLanguageMetaItem.js
+++ b/modules/ve-mw/dm/metaitems/ve.dm.MWLanguageMetaItem.js
@@ -39,14 +39,15 @@
        return {
                'type': 'mwLanguage',
                'attributes': {
-                       'href': href
+                       'href': href,
+                       'origRel': firstDomElement.getAttribute( 'rel' )
                }
        };
 };
 
 ve.dm.MWLanguageMetaItem.static.toDomElements = function ( dataElement, doc ) {
        var domElement = doc.createElement( 'link' );
-       domElement.setAttribute( 'rel', 'mw:WikiLink/Language' );
+       domElement.setAttribute( 'rel', dataElement.attributes.origRel || 
'mw:PageProp/Language' );
        domElement.setAttribute( 'href', dataElement.attributes.href );
        return [ domElement ];
 };
diff --git a/modules/ve-mw/test/dm/ve.dm.mwExample.js 
b/modules/ve-mw/test/dm/ve.dm.mwExample.js
index 30d2c1d..345534a 100644
--- a/modules/ve-mw/test/dm/ve.dm.mwExample.js
+++ b/modules/ve-mw/test/dm/ve.dm.mwExample.js
@@ -255,9 +255,10 @@
                        'category': 'Category:Bar',
                        'origCategory': 'Category:Bar',
                        'sortkey': '',
-                       'origSortkey': ''
+                       'origSortkey': '',
+                       'origRel': 'mw:PageProp/Category'
                },
-               'htmlAttributes': [ { 'values': { 'rel': 
'mw:WikiLink/Category', 'href': './Category:Bar' } } ]
+               'htmlAttributes': [ { 'values': { 'rel': 
'mw:PageProp/Category', 'href': './Category:Bar' } } ]
        },
        { 'type': '/mwCategory' },
        'B',
@@ -302,10 +303,11 @@
                        'category': 'Category:Foo foo',
                        'origCategory': 'Category:Foo_foo',
                        'sortkey': 'Bar baz#quux',
-                       'origSortkey': 'Bar baz%23quux'
+                       'origSortkey': 'Bar baz%23quux',
+                       'origRel': 'mw:PageProp/Category'
                },
                'htmlAttributes': [ { 'values':  {
-                       'rel': 'mw:WikiLink/Category',
+                       'rel': 'mw:PageProp/Category',
                        'href': './Category:Foo_foo#Bar baz%23quux'
                } } ]
        },
@@ -1461,7 +1463,7 @@
        'whitespace preservation with wrapped comments and language links': {
                'html': '<body>Foo\n' +
                        '<link rel="mw:WikiLink/Language" 
href="http://de.wikipedia.org/wiki/Foo";>\n' +
-                       '<link rel="mw:WikiLink/Language" 
href="http://fr.wikipedia.org/wiki/Foo";></body>',
+                       '<link rel="mw:PageProp/Language" 
href="http://fr.wikipedia.org/wiki/Foo";></body>',
                'data': [
                        {
                                'type': 'paragraph',
@@ -1477,7 +1479,8 @@
                        {
                                'type': 'mwLanguage',
                                'attributes': {
-                                       'href': 
'http://de.wikipedia.org/wiki/Foo'
+                                       'href': 
'http://de.wikipedia.org/wiki/Foo',
+                                       'origRel': 'mw:WikiLink/Language'
                                },
                                'htmlAttributes': [ { 'values': {
                                        'href': 
'http://de.wikipedia.org/wiki/Foo',
@@ -1489,11 +1492,12 @@
                        {
                                'type': 'mwLanguage',
                                'attributes': {
-                                       'href': 
'http://fr.wikipedia.org/wiki/Foo'
+                                       'href': 
'http://fr.wikipedia.org/wiki/Foo',
+                                       'origRel': 'mw:PageProp/Language'
                                 },
                                 'htmlAttributes': [ { 'values': {
                                        'href': 
'http://fr.wikipedia.org/wiki/Foo',
-                                       'rel': 'mw:WikiLink/Language'
+                                       'rel': 'mw:PageProp/Language'
                                } } ],
                                'internal': { 'whitespace': [ '\n' ] }
                        },
@@ -1504,10 +1508,10 @@
        },
        'document with meta elements': {
                'html': '<body><!-- No content conversion --><meta 
property="mw:PageProp/nocc" /><p>Foo' +
-                       '<link rel="mw:WikiLink/Category" href="./Category:Bar" 
/>Bar' +
+                       '<link rel="mw:PageProp/Category" href="./Category:Bar" 
/>Bar' +
                        '<meta property="mw:foo" content="bar" />Ba<!-- inline 
-->z</p>' +
                        '<meta property="mw:bar" content="baz" /><!--barbaz-->' 
+
-                       '<link rel="mw:WikiLink/Category" 
href="./Category:Foo_foo#Bar baz%23quux" />' +
+                       '<link rel="mw:PageProp/Category" 
href="./Category:Foo_foo#Bar baz%23quux" />' +
                        '<meta typeof="mw:Placeholder" data-parsoid="foobar" 
/></body>',
                'data': ve.dm.mwExample.withMeta
        },

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I768ec2ffd623e5a01f18959277786697603a97f0
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Catrope <[email protected]>
Gerrit-Reviewer: Catrope <[email protected]>
Gerrit-Reviewer: Esanders <[email protected]>
Gerrit-Reviewer: Krinkle <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to