Commit graph

4745 commits

Author SHA1 Message Date
libraryupgrader e1a3aa67de build: Updating mediawiki/mediawiki-codesniffer to 34.0.0
Change-Id: Ifc33e23b11dc59bde9cfb909f2291b2e6fbfd202
2020-12-06 03:37:29 +00:00
sbailey 8f42623520 Add a definition for .mw-ref-follow to Parsoid's stylesheet
This lets us remove the inlined style on follow refs.

It will be used in I8bfc4ee3df162e2040e3c6f0c37fbf2a7c30d7f6

Bug: T263052
Change-Id: I351516b81566aba0adb4d298e39806dfb4fc7b03
2020-12-03 22:50:57 +00:00
Arlo Breault 3c15454851 Refine adding module(style)?s in extapi
Bug: T269022
Change-Id: Ic2c56c554934ced2aea04317d988098ca840076f
2020-11-30 17:15:27 -05:00
Translation updater bot e7524ce17b Localisation updates from https://translatewiki.net.
Change-Id: I3192d870e725bbdf0e08014078afa9e1d97c3e6b
2020-11-30 08:46:02 +01:00
Arlo Breault 6525d69200 Reconcile some ref errors cases with $hasFollow
Change-Id: I5e3a27366f177af6c221d57da6e31f28cc91bb0c
2020-11-25 13:51:37 -05:00
sbailey de5d806335 Cite error tag name defined in references not used before
Bug: T51538
Change-Id: Id89b3cc186de42e5e5c05f15d7546db9d64ec864
2020-11-25 13:50:25 -05:00
sbailey 703dc8dc05 Adding cite error ref in reference with mismatched group
Bug: T51538
Change-Id: I5492dbaebb7bca79e83be09fdcfe810eaef8c053
2020-11-24 17:22:56 +00:00
Arlo Breault 680df4379c Use inReferencesContent flag to get rid of processRefsInReferences
It's sufficient to handle this case in processRefs.

Also moves $referencesGroup to the ReferencesData instance, rather than
passing it around as a variable (inconsistently).

Change-Id: I8637e3ce644642259e353d0df3d9c0dbc3102c7b
2020-11-24 17:22:01 +00:00
Arlo Breault b88f9ca881 Fix porting bug from 005176a
Bug: T249742
Change-Id: Iabe86266c06b2cbc3c51b16b73d360a7182878f1
2020-11-24 10:54:23 -05:00
Translation updater bot bcdaadea83 Localisation updates from https://translatewiki.net.
Change-Id: I2510bbb6db4815214f2a5adf38b8f8be4867b59c
2020-11-24 08:39:01 +01:00
sbailey 4c7108f553 Adding cite error ref in reference no content defined
Bug: T51538
Change-Id: I4cdcf1a36f472f582812dbb5e7050c0ead614639
2020-11-23 18:32:26 -05:00
sbailey 1f0221e327 Add reporting of cite error of a ref in reference without name specified
Bug: 51538
Change-Id: I193d5583b31be32741088fb25c348878f34b5016
2020-11-23 23:30:14 +00:00
Arlo Breault e3ca32c9ff Add method to check if in references content
More specific than just embedded content, needed for adding errors in
follow up patches.

Change-Id: I4bf659cd208c3322870e3ea0126bda4a2a7037d8
2020-11-23 18:53:03 +00:00
Translation updater bot 301214aab5 Localisation updates from https://translatewiki.net.
Change-Id: I373d403c5930aae37741cd2d02c0716de3f90f95
2020-11-23 08:38:35 +01:00
libraryupgrader 0c615fc36f build: Updating npm dependencies
* grunt-stylelint: 0.15.0 → 0.16.0
* stylelint-config-wikimedia: 0.10.1 → 0.10.3

Change-Id: I0d9879effbe670cd83dca5fac9722dafaeff7b48
2020-11-21 21:53:19 +00:00
libraryupgrader 5f3d03ba3b build: Updating mediawiki/mediawiki-phan-config to 0.10.4
Change-Id: I756a44578fe43a6a6c2e08fb0416b9ec3977f825
2020-11-20 01:19:07 +00:00
Arlo Breault b664b64fcb Use $extApi->pushError for invalid references parameters
Follow up to 01cf61a

Change-Id: Ic4483f151d12352cc9e6f6094e4df442eabca376
2020-11-16 22:19:54 +00:00
Translation updater bot 74eddfff9c Localisation updates from https://translatewiki.net.
Change-Id: Ifce667ef7462afbe482cbbf6efb2c38d3dc4e2e2
2020-11-16 08:36:32 +01:00
Translation updater bot ef29758429 Localisation updates from https://translatewiki.net.
Change-Id: Iba7b247d31baa47de5c7bb1a1e02fa88cd420db9
2020-11-13 08:29:56 +01:00
Arlo Breault 2f1bbc1804 Only look for data-mw.body.id in the top level dom
Follow up to 6c15f6e where the same approach was taken in dom diff'ing.

Clarifies where the "id" is expected to point and the limitations of the
approach vis-a-vis embedded content.

For example,

<ref>hi ho</ref>
[[File:Test.png|<references />]]

won't roundtrip, and never did, because the references section the "id"
would point to is in embedded content.

This was really only ever about the case where the <ref> itself was
found in embedded content, like an image caption, and we wanted to find
a top level references section, like,

[[File:Test.png|<ref>hi ho</ref>]]
<references />

The one case old approach was ostensibly doing something smarter was if
both the references section and the ref were in the same embedded
content, as in,

[[File:Test.png|<ref>hi ho</ref><references />]]

However, at least for file captions, those were always serialized in a
fragment of the top level doc and suffer from same dropping as the first
example here.  Maybe some other embedded content is handled differently,
in which case this is probably an acceptable regression.

Change-Id: Ia90eadcc5099a8c27f0bf3fda0ce2f0effca7bcc
2020-11-10 21:56:16 +00:00
jenkins-bot 586b9e65f7 Merge "Add "reference" class to references in VisualEditor" 2020-11-10 21:05:32 +00:00
sbailey 01cf61ad67 Adding check for illegal attributes in references tag
Bug: T51538
Change-Id: I7dbc577a61abb660d2bdb66ead0d7b71fd66cf47
2020-11-10 19:47:04 +00:00
Translation updater bot df0c1bd889 Localisation updates from https://translatewiki.net.
Change-Id: I9388c85127ad9824fcc6197d99824da9db6a6e3e
2020-11-09 08:34:17 +01:00
Arlo Breault 4310b6a243 Mark up cite errors in embedded content
It's a feature of named refs that we only know at the time of inserting
the references list whether they have content or not, and are therefore
in err.  The strategy of 4438a72 was to keep pointers to all named ref
nodes so that if an error does occur, we can mark them up.

The problem with embedded content is that, at the time when we find out
about the errors, it's been serialized and stored, and so any pointers
we might have kept around are no longer live or relevant.  We need to go
back and process all that embedded content again to find where the refs
with errors are hiding.

This patch slightly optimizes that by keeping a map of all the errors
for refs in embedded content so that only one pass is necessary, rather
than for each references list.  Also note that, in the common case, this
pass won't run since we won't have any errors in embedded content.

Bug: T266356
Change-Id: I32e7bfa796cd4382c43b3b1d17b925dc97ce9f7f
2020-11-06 18:31:26 -05:00
Arlo Breault b2e2732674 Switch some uses of matchTypeOf to hasTypeOf in Cite
Change-Id: I99986c337944547ae398851676de13377f4114b1
2020-11-06 13:14:04 -05:00
Arlo Breault c675396445 Fix adding 'cite_error_group_refs_without_references' to unnamed refs
Follow up to 02fb17d, which was only iterating over named refs.

Bug: T51538
Change-Id: I1a1ce39029c2e9e6e29e768675bcde266ccf3247
2020-11-06 13:14:03 -05:00
Bartosz Dziewoński 72f79aae3b Add "reference" class to references in VisualEditor
* Add it to CE HTML, for compatibility with site styles.
* Add it to DM HTML of newly created references only. Existing
  references just use whatever classes we got from Parsoid, to avoid
  unnecessary DOM changes and dirty diffs.

Bug: T265930
Depends-On: I61a2132f3876e2d9567d985358f51eb51c479813
Change-Id: I9d6856f03071c09617b8ae7db938135a3e30fe8e
2020-11-06 18:04:13 +00:00
Arlo Breault 049735ba0e Clean up signatures of ref group accessors
No need to hedge on null.

Change-Id: I2afb7619a113d784741bd7d29eccf4d8368fe56f
2020-11-06 17:45:18 +00:00
Arlo Breault 0254f138ab Suppress linkbacks for all refs in embedded content
Not just for refs in references content, since they'll be equally
inaccessible everywhere.

Change-Id: Id0a2361b41d9b8103e011ff4f809fa0809169bb3
2020-11-06 17:45:16 +00:00
sbailey 095b2c2388 Add "reference" class to <sup> in addition to the "mw-ref" class
* Added, required adjusting many tests and knownFailures info.

 * Change impacted parserTests.txt as well, updated.

Bug: T265930
Change-Id: I79d915ebd811bdb83344bf7295862588fe7d46ea
2020-11-05 00:17:54 +00:00
libraryupgrader 00d3977424 build: Updating mediawiki/mediawiki-codesniffer to 33.0.0
Change-Id: I385c3993f6fb8def81b82c35d6ef3fe510c24eef
2020-11-03 10:06:13 +00:00
Translation updater bot a1d3d21eec Localisation updates from https://translatewiki.net.
Change-Id: I964aafb8c34af5273564498967b3810a14fb333d
2020-11-03 08:43:49 +01:00
Arlo Breault 1dda4cdc8a Consolidate adding ref errors at references insertion
Change-Id: I01ce55989fb7b822320c63ddad19c2edf7e03bf9
2020-10-29 15:54:30 -04:00
libraryupgrader 4f08772c6b build: Updating mediawiki/mediawiki-codesniffer to 32.0.0
The following sniffs are failing and were disabled:
* MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationProtected

Additional changes:
* Dropped .inc files from .phpcs.xml (T200956).

Change-Id: Ia1461485a1a0122a5b830dc2badb542ae7ec9a1c
2020-10-29 07:00:27 +00:00
sbailey 02fb17d102 Refs in group with no <references group="xxx" />
* Generating error message in data-mw in affected refs

 * Cite test validates correctness of adding error to afflicted
   refs

 * Autogenerated references aren't considered erroneous
   (the extension to the legacy parser also generates them)
   and are not suppressed when serializing because apparently
   that's the behaviour Parsoid clients want.  However, in
   this patch we're marking up autogenerated references
   *with group attributes* as errors (the legacy extension
   doesn't generate them at all) and are choosing to suppress
   them when serializing since we considered them an error
   while parsing and don't want them to persist in the content.

Bug: T51538
Change-Id: Ia651b10449dc41c2cb439b33a361e8c8e482f502
2020-10-28 22:28:13 +00:00
Arlo Breault b5b3475d28 Set a top level doc when serializing
First step in using a single document for the serializing direction as
well.

Bug: T265061
Change-Id: Ia845faed693bf4c6f74facc7576d01a9f5a875be
2020-10-28 18:48:17 +00:00
Thiemo Kreuz d44754168f Fix coverage report for ErrorReporter
The structure of this class changed a lot in If2fe5f5
(T239572). This was never reflected in the @covers tags. I
suggest to go with a trivial @covers for the entire class
and let PHPUnit figure it out. The alternative is to kind
of repeat many private implementation details, and this
doesn't feel right.

Change-Id: Ie414876489133ab9aca934c19a5e403cd339abf1
2020-10-27 09:49:56 +00:00
Arlo Breault 568034a00c Traverse with inEmbeddedContent for ref in ref
While, for the most part, content nested in refs will end up in the
references section and should be fine to maintain a linkback.  However,
if content differs from a previously named ref (ie. !== cachedHtml), it
ends up being serialized and nested in data-mw, so is also unsafe.

Bug: T266294
Bug: T266356
Change-Id: Ia92f42e06353c411b986d0665cbe6338052555fa
2020-10-23 17:52:51 -04:00
Arlo Breault 8e237b4e34 Make $inEmbeddedContent an explicit stack
Change-Id: I48ff2f7be352fdec72b2c5e0eeee843330ec3872
2020-10-23 11:42:45 -04:00
Arlo Breault b8d4bb1f37 Set inEmbeddedContent when running processRefsInReferences
In 47506af, serializing references content to be added to data-mw was
delayed until we were inserting the reference into the dom, to give us a
chance to mark up errors about not finding named ref content.  After
which, the content is cleaned out of references to make room for list
items that belong there.

In 6bd0594, we noted that we can't store linkback from embeded content
since the content is released after serializing and won't be available
when it comes time to mark it up with errors.

Similarly, the linkbacks added to other groups from the references
content won't be available after inserting that reference and so we
shouldn't be holding on to them either.  This means that we won't be
marking them up for the named error above but with the benefit that we
won't crash when trying to access these linkbacks from another group.

A test case is added which crashes trying to access a linkback from a
group that has already been inserted.

Note that the extension to the legacy parser considers referencing
another group from group content to be
"cite_error_references_group_mismatch".  If we choose to also do that,
we may be able to reverse this change.

Change-Id: Idf0e49fa07dc3614068793c72a30ce3de1e2392c
2020-10-23 11:42:25 -04:00
sskenner f0c77eb4c5 Selenium: Add selenium logs to .gitignore
Bug: T265463
Change-Id: I5fbb39b3437bc9e823d04f23f72d991b677676c5
2020-10-20 14:19:24 -04:00
Translation updater bot ba21f9438d Localisation updates from https://translatewiki.net.
Change-Id: Ice3f894e335b0bd0babd6053f379c83fc471740f
2020-10-19 08:35:07 +02:00
sbailey a8e299b21e Added cite error checks for numeric digit in name
* Note: the <ref name="1"> numeric is flagged as an error, but
   <ref follow="1"> is not flagged as well as it would be duplicitous.
   We are proposing that Numeric digits as a name be changed to
   a warning as Parsoid Cite handles them properly without error.

   Background: The core Cite extension started off not allowing numeric
   names because the data structure they used made it inconvenient,
   but Parsoid Cite has a separate index for named refs.
   The core Cite devs thought there was potential for a conflict in
   the ids if numeric names were allowed. The ids that core uses
   follow the pattern:
     for no name defined:  cite_ref-1             cite_ref-2
     for name="refname":   cite_ref-refname_3-0   cite_ref-refname_3-1
   so for name="1" at worst you might see ids like:
     cite_ref-1  or  cite_ref-1_2-0
   so that does not produce conflicting IDs and isn't a concern,
   and that is the pattern that Parsoid Cite uses.

 * Error case of numeric in name and follow and two tests that
   validate errors.

Bug: T51538
Change-Id: I95d725d0f77abadc1ddb2dd6939762b7d322e4f2
2020-10-15 23:57:16 +00:00
Translation updater bot 6c464becc9 Localisation updates from https://translatewiki.net.
Change-Id: If6d7e98b56e7d1f078d652ecfc04e4470c2f7292
2020-10-14 08:27:38 +02:00
jenkins-bot 33b6cdf0b6 Merge "Compact trivial arrays in test providers" 2020-10-13 13:39:34 +00:00
Translation updater bot 7741785df8 Localisation updates from https://translatewiki.net.
Change-Id: Ib2826d14ae7c8bb4179d838c2a7e91bc6f7371cc
2020-10-13 08:41:42 +02:00
Translation updater bot fda5b43f89 Localisation updates from https://translatewiki.net.
Change-Id: I5414dccfaa974239c3db39ee5fada87d640dc05e
2020-10-12 08:34:25 +02:00
Thiemo Kreuz 27c5632ebd Compact trivial arrays in test providers
This is meant to make the code easier to read.

Change-Id: Ib684bf64acfbac9b458d110d9ccff2d071b993be
2020-10-08 11:07:35 +02:00
Translation updater bot aef34e22ab Localisation updates from https://translatewiki.net.
Change-Id: Iad0d4ae190a5dbc5a2d831060b16ef90fa41c107
2020-10-08 08:29:36 +02:00
sbailey aadef667d4 Added cite error checks for invalid text direction
* Error case of dir= not ltr or rtl is caught and a cite tests
   validates the new check.

Bug: T51538
Change-Id: I8c7e088416f0a000e638771a3fe5e8e0c58bcc23
2020-10-07 13:22:46 -07:00