Page MenuHomePhabricator

Nested DSR offsets aren't converted from byte to ucs2 offsets by the convertOffsets code
Closed, ResolvedPublic

Description

frwiki:Maroc

----- JS:[26141, 28552] -----
<figure-inline class="mw-default-size" typeof="mw:Image/Frameless" data-mw='{"caption":"&lt;small data-parsoid=&apos;{\"stx\":\"html\"}&apos;>La zone hachurée sur la carte désigne le &lt;a rel=\"mw:WikiLink\" href=\"./Sahara_occidental\" title=\"Sahara occidental\" data-parsoid=&apos;{\"stx\":\"simple\",\"a\":{\"href\":\"./Sahara_occidental\"},\"sa\":{\"href\":\"Sahara occidental\"}}&apos;>Sahara occidental&lt;/a> (ex-« &lt;a rel=\"mw:WikiLink\" href=\"./Sahara_espagnol\" title=\"Sahara espagnol\" data-parsoid=&apos;{\"stx\":\"simple\",\"a\":{\"href\":\"./Sahara_espagnol\"},\"sa\":{\"href\":\"Sahara espagnol\"}}&apos;>Sahara espagnol&lt;/a> »), considéré comme un &lt;a rel=\"mw:WikiLink\" href=\"./Liste_des_territoires_non_autonomes_selon_l&apos;Organisation_des_Nations_unies\" title=\"Liste des territoires non autonomes selon l&apos;Organisation des Nations unies\" data-parsoid=&apos;{\"stx\":\"piped\",\"a\":{\"href\":\"./Liste_des_territoires_non_autonomes_selon_l&amp;apos;Organisation_des_Nations_unies\"},\"sa\":{\"href\":\"Liste des territoires non autonomes selon l&amp;apos;Organisation des Nations unies\"}}&apos;>territoire non autonome&lt;/a> par l&apos;&lt;a rel=\"mw:WikiLink\" href=\"./Organisation_des_Nations_unies\" title=\"Organisation des Nations unies\" data-parsoid=&apos;{\"stx\":\"piped\",\"a\":{\"href\":\"./Organisation_des_Nations_unies\"},\"sa\":{\"href\":\"Organisation des Nations unies\"}}&apos;>ONU&lt;/a>&lt;sup typeof=\"mw:DOMFragment/sealed/ref\" data-parsoid=&apos;{\"empty\":true,\"selfClose\":true,\"src\":\"&amp;lt;ref name=\\\"liste ONU\\\" />\",\"html\":\"mwf143\",\"extTagOffsets\":[2035,2059,24,0]}&apos; data-mw=&apos;{\"name\":\"ref\",\"attrs\":{\"name\":\"liste ONU\"}}&apos;>&lt;/sup> et majoritairement &lt;a rel=\"mw:WikiLink\" href=\"./Organisation_territoriale_du_Maroc\" title=\"Organisation territoriale du Maroc\" data-parsoid=&apos;{\"stx\":\"piped\",\"a\":{\"href\":\"./Organisation_territoriale_du_Maroc\"},\"sa\":{\"href\":\"Organisation territoriale du Maroc\"}}&apos;>administré &lt;i data-parsoid=\"{}\">de facto&lt;/i> par le Maroc&lt;/a>, qui le revendique dans son intégralité, tout comme le &lt;a rel=\"mw:WikiLink\" href=\"./Front_Polisario\" title=\"Front Polisario\" data-parsoid=&apos;{\"stx\":\"simple\",\"a\":{\"href\":\"./Front_Polisario\"},\"sa\":{\"href\":\"Front Polisario\"}}&apos;>Front Polisario&lt;/a>.&lt;/small> "}'>

+++++ PHP:[26141, 28551] +++++
<figure-inline class="mw-default-size" typeof="mw:Image/Frameless" data-mw='{"caption":"&lt;small data-parsoid=&apos;{\"stx\":\"html\"}&apos;>La zone hachurée sur la carte désigne le &lt;a rel=\"mw:WikiLink\" href=\"./Sahara_occidental\" title=\"Sahara occidental\" data-parsoid=&apos;{\"stx\":\"simple\",\"a\":{\"href\":\"./Sahara_occidental\"},\"sa\":{\"href\":\"Sahara occidental\"}}&apos;>Sahara occidental&lt;/a> (ex-« &lt;a rel=\"mw:WikiLink\" href=\"./Sahara_espagnol\" title=\"Sahara espagnol\" data-parsoid=&apos;{\"stx\":\"simple\",\"a\":{\"href\":\"./Sahara_espagnol\"},\"sa\":{\"href\":\"Sahara espagnol\"}}&apos;>Sahara espagnol&lt;/a> »), considéré comme un &lt;a rel=\"mw:WikiLink\" href=\"./Liste_des_territoires_non_autonomes_selon_l&apos;Organisation_des_Nations_unies\" title=\"Liste des territoires non autonomes selon l&apos;Organisation des Nations unies\" data-parsoid=&apos;{\"stx\":\"piped\",\"a\":{\"href\":\"./Liste_des_territoires_non_autonomes_selon_l&amp;apos;Organisation_des_Nations_unies\"},\"sa\":{\"href\":\"Liste des territoires non autonomes selon l&amp;apos;Organisation des Nations unies\"}}&apos;>territoire non autonome&lt;/a> par l&apos;&lt;a rel=\"mw:WikiLink\" href=\"./Organisation_des_Nations_unies\" title=\"Organisation des Nations unies\" data-parsoid=&apos;{\"stx\":\"piped\",\"a\":{\"href\":\"./Organisation_des_Nations_unies\"},\"sa\":{\"href\":\"Organisation des Nations unies\"}}&apos;>ONU&lt;/a>&lt;sup typeof=\"mw:DOMFragment/sealed/ref\" data-parsoid=&apos;{\"empty\":true,\"selfClose\":true,\"src\":\"&amp;lt;ref name=\\\"liste ONU\\\" />\",\"html\":\"mwf70\",\"extTagOffsets\":[2141,2165,24,0]}&apos; data-mw=&apos;{\"name\":\"ref\",\"attrs\":{\"name\":\"liste ONU\"}}&apos;>&lt;/sup> et majoritairement &lt;a rel=\"mw:WikiLink\" href=\"./Organisation_territoriale_du_Maroc\" title=\"Organisation territoriale du Maroc\" data-parsoid=&apos;{\"stx\":\"piped\",\"a\":{\"href\":\"./Organisation_territoriale_du_Maroc\"},\"sa\":{\"href\":\"Organisation territoriale du Maroc\"}}&apos;>administré &lt;i data-parsoid=\"{}\">de facto&lt;/i> par le Maroc&lt;/a>, qui le revendique dans son intégralité, tout comme le &lt;a rel=\"mw:WikiLink\" href=\"./Front_Polisario\" title=\"Front Polisario\" data-parsoid=&apos;{\"stx\":\"simple\",\"a\":{\"href\":\"./Front_Polisario\"},\"sa\":{\"href\":\"Front Polisario\"}}&apos;>Front Polisario&lt;/a>.&lt;/small> "}'>

Also, why is a dom-fragment escaping into the final DOM (both parsoid/js & parsoid/php)? That points to a bug somewhere.

ja:内ゲバ

----- JS:[40130, 40836] -----
<sup about="#mwtX" class="mw-ref" id="cite_ref-20cent_13-2" rel="dc:references" typeof="mw:Extension/ref" data-parsoid='{"dsr":[7989,8035,19,6]}' data-mw='{"name":"ref","attrs":{"name":"20cent"},"body":{"html":"&lt;a rel=\"mw:WikiLink\" href=\"./内ゲバ#CITEREF毎日新聞社1998\" about=\"#mwtX\" typeof=\"mw:Transclusion\" data-parsoid=&apos;{\"stx\":\"piped\",\"a\":{\"href\":\"./内ゲバ#CITEREF毎日新聞社1998\"},\"sa\":{\"href\":\"#CITEREF毎日新聞社1998\"},\"dsr\":[8008,8029],\"pi\":[[{\"k\":\"1\"},{\"k\":\"2\"}]]}&apos; data-mw=&apos;{\"parts\":[{\"template\":{\"target\":{\"wt\":\"Harvnb\",\"href\":\"./Template:Harvnb\"},\"params\":{\"1\":{\"wt\":\"毎日新聞社\"},\"2\":{\"wt\":\"1998\"}},\"i\":0}}]}&apos;>毎日新聞社 1998&lt;/a>"}}'>

+++++ PHP:[40134, 40842] +++++
<sup about="#mwtX" class="mw-ref" id="cite_ref-20cent_13-2" rel="dc:references" typeof="mw:Extension/ref" data-parsoid='{"dsr":[7989,8035,19,6]}' data-mw='{"name":"ref","attrs":{"name":"20cent"},"body":{"html":"&lt;a rel=\"mw:WikiLink\" href=\"./内ゲバ#CITEREF毎日新聞社1998\" about=\"#mwtX\" typeof=\"mw:Transclusion\" data-parsoid=&apos;{\"stx\":\"piped\",\"a\":{\"href\":\"./内ゲバ#CITEREF毎日新聞社1998\"},\"sa\":{\"href\":\"#CITEREF毎日新聞社1998\"},\"dsr\":[20230,20261],\"pi\":[[{\"k\":\"1\"},{\"k\":\"2\"}]]}&apos; data-mw=&apos;{\"parts\":[{\"template\":{\"target\":{\"wt\":\"Harvnb\",\"href\":\"./Template:Harvnb\"},\"params\":{\"1\":{\"wt\":\"毎日新聞社\"},\"2\":{\"wt\":\"1998\"}},\"i\":0}}]}&apos;>毎日新聞社 1998&lt;/a>"}}'>

Event Timeline

ssastry triaged this task as Medium priority.Oct 15 2019, 7:45 PM
ssastry created this task.

hm, it *should* be converted. I wrote the recursive code. Maybe there's a case missing somewhere. Will look into it...

Change 543223 had a related patch set uploaded (by Subramanya Sastry; owner: Subramanya Sastry):
[mediawiki/services/parsoid@master] WIP: Tweak shiftDSR code to handle more nested strings

https://gerrit.wikimedia.org/r/543223

Change 543223 merged by jenkins-bot:
[mediawiki/services/parsoid@master] Tweak shiftDSR code to handle more nested strings

https://gerrit.wikimedia.org/r/543223