Commit graph

582 commits

Author SHA1 Message Date
Ed Sanders 2846144e96 eslint: Add extra restrictions to ve-mw/dm/ folder
Same as in core, follow up to I63fa04598e.

Change-Id: I4b63ef9d07205d91d6c20db310ab350f4160c3bc
2019-10-18 23:26:26 +01:00
Bartosz Dziewoński 6037fefbe0 Fix media embeds which don't link to the file page
Follow-up to da9b6fffbd.

Bug: T235707
Change-Id: Ie5a12bf274ae6178106f81a4c84686a88307c9fb
2019-10-17 22:12:58 +02:00
jenkins-bot cc1bd58e83 Merge "Parse relative hrefs on image nodes like on regular links" 2019-10-11 15:22:29 +00:00
Bartosz Dziewoński da9b6fffbd Parse relative hrefs on image nodes like on regular links
* In normal images, parse relative 'href' attributes instead of
  expanding them to absolute, and parse 'resource' to keep it
  identical to 'href' if they refer to the same page (including
  same percent-encoding and space/underscore). This resolves Parsoid
  generating |link= options for copy-pasted images (T193253).

* In gallery images stuff, prefix the 'resource' attribute with './',
  same as normal images do. This causes no functional changes, but it
  makes updating tests easier, and the consistency is probably good.

* Update test examples to also prefix 'resource' and relative 'href'
  attributes with './', like the real Parsoid does.

Bug: T193253
Change-Id: If2d7f080d9d693568054f8311c1e1b15ca27ea5c
2019-09-25 00:25:04 +02:00
Bartosz Dziewoński e472a4bbd3 Fix mw:MediaLink support
* Handle mw:MediaLinks pointing to to non-existent files, which come
  with typeof="mw:Error" (similar to image nodes).

* Fix regression from c66f8e0547, which
  caused all mw:MediaLinks to be treated as plain external links again.

* Add test cases.

Bug: T232754
Change-Id: I9ae5bcfc4e24e8c0d22ef77d6a4d03f817fc9768
2019-09-24 22:46:03 +02:00
Ed Sanders 4a8947686d Docs: Standardise "messages used" comments
Change-Id: Ic563901a9439e86ca85ac6210323a35ab34736c3
2019-08-28 16:41:19 +01:00
Bartosz Dziewoński 84d548e7b1 Remove redundant @method annotations
A @method annotation is only necessary when the docblock is not
directly followed by a function declaration (in which case JSDuck
assumes it documents a property), e.g. when defining an abstract
function or referencing a function from another library.

I verified that JSDuck generates exactly the same output before and
after this change (docs/data-<hash>.js files are identical).

Change-Id: I7edf51a8560ab9978b42800ab1026f0b5555c3bf
2019-08-21 23:33:15 +02:00
Bartosz Dziewoński 8dd0bd23d4 Work around a Parsoid bug with creating interwiki links
As detailed in T95850#5078990, Parsoid incorrectly converts HTML to
wikitext when a link `href` refers to an interwiki page and contains
percent-encoded colon characters ':'. VisualEditor doesn't know
anything about interwiki pages (it treats those links as normal local
links, and expects MediaWiki and Parsoid to handle them specially),
so we can't easily special-case them. But since leaving the colon
unencoded is valid for all links anyway, we can just do that.

Bug: T103635
Change-Id: I87d7e6952983a72d90ea739b0bc8488d9f6a9be3
2019-07-26 01:01:01 +02:00
Bartosz Dziewoński 3ca8319dfc ve.dm.MWTransclusionNode: Protect <style> nodes too when copying
Bug: T226374
Change-Id: Ie7853382642336638e0a1de9ca506d750ce054ce
2019-07-16 22:51:28 +02:00
David Lynch c66f8e0547 MWInternalLinkAnnotation: handle non-internal links that say they're mw:WikiLink
The likely case for this is: copying from within VE in one wiki, and pasting
into VE in another wiki. This change will notice this happening, and fall back
to treat it as an external link. (For the wiki-internal links, this will turn
them into interwiki links rather than raw external links.)

Bug: T223322
Change-Id: Ie0157fc3aee6e5fd9973a2889be7ebd287bc90a5
2019-05-14 14:35:39 -05:00
Ed Sanders 934572cdf7 API: Use formatversion=2 by default
V2 has better handling for booleans.

Change-Id: I5388bd2cc64ae0c9ed4a185adce1e3bb4cdd92fc
2019-04-30 19:31:28 +01:00
Ed Sanders 258965c8b2 Improve rendering of audio files
Use a static image of an audio player.

Also disable resizeable handle.

Bug: T206022
Change-Id: Ic41f381e65c40c3682f470b9993b2c9dbbb506c5
2019-04-28 23:56:08 +01:00
Ed Sanders 0db4ae6e00 eslint: Enable valid-jsdoc
Change-Id: Ia0d1e57246a1c567d73022ceca9b8c02850f9bc8
2019-04-17 17:13:39 +01:00
Ed Sanders dbd692b5ed InternalLink: Add special case for fragment with no title
Bug: T218581
Change-Id: I11e2de90e582d184a3f8cdd65dfc0858571aa397
2019-04-09 14:43:24 +01:00
Bartosz Dziewoński 362df66b47 Remove support for page title "hrefPrefix" other than './'
Parsoid does not use relative links anywhere anymore (T72743). There
is no reason for us to support this. And previous code allowed
"hrefPrefix" to be empty '' sometimes, which is scary, as it could
lead to XSS vulnerabilities if titles starting with 'JavaScript:' are
not handled correctly elsewhere.

Bug: T206357
Depends-On: I8728f63084902c76d1c61193be4367939b069f1a
Change-Id: I99be18877aae2b505cf261bd7cdef6cf0d7a8670
2019-04-03 20:10:05 +00:00
jenkins-bot 42eb7e0cf4 Merge "Suppress slugs between floated images" 2019-04-03 15:59:09 +00:00
David Lynch a976f0508f MWInlineImageNode: don't discard alt text when serializing
Bug: T216285
Change-Id: If81a9925cf32204f825e4da713aa07e860a29a46
2019-03-29 10:29:26 -05:00
Bartosz Dziewoński 21e9db7d13 Respect user preference for default thumbnail size while editing
Bug: T69047
Change-Id: Ibf90d290df5634cd89651a427a6aa1c6f9d7a553
2019-03-26 22:15:26 +01:00
Ed Sanders 970cca735d Suppress slugs between floated images
Logically depends on Idb4a58fa616 in core.

Bug: T107745
Depends-On: Idb4a58fa616dedb29d42bdf659a7497451f8eb6c
Change-Id: I206bf1a15cbac487b0d937a1b0447e0b9113156e
2019-03-21 11:33:27 +00:00
Ed Sanders 9aee6bb5d1 MWTransclusionNode: Comment strange matchTagNames values
Change-Id: Ica207be94e5cc888c4454989d2fd6e9b5579a8ea
2019-03-01 16:16:20 +00:00
Bartosz Dziewoński 93351892da ve.dm.MWGalleryImageNode: Update for Parsoid changes to "broken" images
Change-Id: I49f4a06de207fbb4dad090f0325068d13bed9810
2019-02-22 18:10:56 +01:00
Ed Sanders 3269d53632 Support only surfacing part of the document
Bug: T76541
Depends-On: I227a0d704b9b337cff2102d424be9795d6362ed7
Change-Id: Iac71a51c8696434658f24fbb41c8142237bd810e
2019-02-13 19:03:44 +00:00
Bartosz Dziewoński 18fb16c81d ve.dm.MWInternalLinkAnnotation: Correctly generate relative links
We could generate incorrect links to pages whose title contains a
colon ':' and therefore looks like a fully-qualified URL.

Bug: T206231
Bug: T206357
Change-Id: Ie34694d903a6d97589cc46417f70659559494619
2019-02-04 20:08:01 +01:00
jenkins-bot ca03c085a2 Merge "Revert "Don't preserveHtmlAttributes on transclusion nodes"" 2019-01-17 12:54:58 +00:00
Bartosz Dziewoński bdfd4b6d8f Revert "Don't preserveHtmlAttributes on transclusion nodes"
This reverts commit 48db45df76.

Bug: T213922
Change-Id: I7b0bf081fd5a9ab71db1ede3ce6e149cfb4b675a
2019-01-17 01:42:15 +00:00
Bartosz Dziewoński 18f8697703 ve.dm.MWTransclusionModel: Remove workaround for T135127
The bug this works around seems to be fixed.

Change-Id: I62837ad795ee6bd35663b163f6de76572e1a6594
2019-01-10 21:16:32 +00:00
Ed Sanders 74f6c4899c build: Update eslint-config-wikimedia to 0.10.0
Change-Id: I63a0ebf0b31a0d5d4e680a4e2a5a0be4850be165
2019-01-08 17:00:09 +00:00
jenkins-bot bebbff8bab Merge "Don't preserveHtmlAttributes on transclusion nodes" 2019-01-02 18:58:13 +00:00
Ed Sanders 48db45df76 Don't preserveHtmlAttributes on transclusion nodes
Bug: T207325
Change-Id: I9c92f18c58c044e7f2257aa6993db227896a1468
2019-01-02 17:11:31 +00:00
James D. Forrester 3c293ea00c doc: Bump copyright year for 2019
Change-Id: I8991b97c980d4149f53eb5601036220ef3c0c440
2019-01-01 13:24:23 +00:00
Thalia a5c5bc5116 ve.dm.MWExtensionNode: check for body in describeChanges
Bug: T210257
Change-Id: Iffda3dc0b5b9dc84d294240546193e4b55c45bb7
2018-11-23 12:27:13 +00:00
Ed Sanders 1a3e8a958c build: Use eslint-config-wikimedia v0.9.0 and make pass
Change-Id: Idb57fc12e7822cf17e10dbb726480fc7de0ae199
2018-11-21 16:51:20 +00:00
Ed Sanders 3564006e91 $.extend -> ve.extendObject
Change-Id: I1def4d63c231da153a52a649e7bab584e789b6d1
2018-11-07 16:51:39 +00:00
jenkins-bot 6016cad43f Merge "ve.dm.MWImageModel: Drop back-compatibility with old versions of VE selections" 2018-11-07 11:23:27 +00:00
James D. Forrester 17377ce65c ve.dm.MWImageModel: Drop back-compatibility with old versions of VE selections
Change-Id: I38b309ca240b8305a0b29e11f822e1ad6e1ed3da
2018-11-05 12:44:57 -08:00
Ed Sanders 66972356cf MWTransclusionNode: Change HTML messages to plain DOM
Bug: T208732
Change-Id: I61a958292984586dc90262989ebb6c181f28a605
2018-11-05 16:28:11 +00:00
jenkins-bot 62c81905e6 Merge "Use changed ve.dm.Selection interface, if present" 2018-11-01 13:39:18 +00:00
David Chan 2c3e33b759 Use changed ve.dm.Selection interface, if present
Bug: T208228
Change-Id: Ie2027c4d16e0ac591512e90dbdeea012f11ff875
2018-10-31 12:07:14 +08:00
James D. Forrester c36f3d2214 Revert "Update VE core submodule to master (02f5f0ca4)"
This reverts commit be628a5b7e.

87b20f9b Revert "[BREAKING CHANGE] Do not cache document model data in DM selections"

Change-Id: I47bbf757a4ad227346d3734f6e50d928a2de1409
2018-10-30 15:12:30 -07:00
jenkins-bot b2c529e499 Merge ".eslintrc: Enable and fix "max-statements-per-line": 1" 2018-10-30 15:46:05 +00:00
Ed Sanders be628a5b7e Update VE core submodule to master (02f5f0ca4)
New changes:
ccb4de82c [BREAKING CHANGE] Do not cache document model data in DM selections

Bug: T208228
Change-Id: I564399ad864751d1690077b45a06e098b5509a93
2018-10-30 08:11:02 -07:00
Bartosz Dziewoński e7fd1ac847 .eslintrc: Enable and fix "max-statements-per-line": 1
I am surprised this was disabled. I investigated this after reviewing
some code by a new contributor which I was certain should have failed
the lint check, but passed.

Change-Id: I5b3c837b8ca3292f6e268b3922443bd9587eadbe
2018-10-30 00:19:16 +01:00
David Lynch 8c2a34b732 Handle mw:MediaLink
Bug: T198511
Change-Id: Ia7fbb9db79c9b776e0cf44b065c03b1aa090da79
2018-10-17 21:43:07 -05:00
David Lynch e2cf367a95 Make RDF attribute splits more robust
Split on regexp for whitespace instead of a single space. Avoids multiple-
spaces causing `'foo  bar'` to become `['foo', '', 'bar']`.

See also: I1f467f51017e2deae30905163bf5e6b07048cecf

Change-Id: Id7a887a20fac99715b79045f01e861b4efe9f2c7
2018-10-02 16:11:58 -05:00
jenkins-bot 542004dcb9 Merge "Require Parsoid HTML 2.0.0, and handle its <audio> tags" 2018-10-02 20:47:59 +00:00
Ed Sanders d5d23ee4be Require Parsoid HTML 2.0.0, and handle its <audio> tags
Bug: T201081
Depends-On: I6514b9b0a85588c7eaae5e6989789656cfc3253a
Change-Id: I6052dcf3e414d9506ff7ec7a6b5d8f4eeb4a703a
2018-10-02 12:15:45 -07:00
Ed Sanders 349c2f3638 Avoid jQuery in ve.dm.Model.static.describeChange(s)
Change-Id: Ide3ad119f8c111b78b9adfe4a07079d143070fd1
2018-09-27 20:26:47 +01:00
Bartosz Dziewoński 42ebd10090 Correct some doc comments' syntax
I ran Closure Compiler over the codebase just to see what would happen,
and it printed some useful warnings.

Change-Id: I56d40b11e6d1dd7ce68a5e59da511f66e928647f
2018-09-26 14:49:52 +02:00
jenkins-bot bb6afe3e8b Merge "MWTemplateSpecModel: Factor out getLocalValue, avoid isPlainObject" 2018-09-24 18:48:50 +00:00
Ed Sanders e2a5bfd224 MWTemplateSpecModel: Factor out getLocalValue, avoid isPlainObject
Change-Id: I0fe009c899e8b6f44658253bf5c21c3b767067da
2018-09-24 18:36:31 +00:00