Commit graph

380 commits

Author SHA1 Message Date
David Lynch 094c007df0 Allow a global variable to forcible enable edit check
The URL parameter turns out to be a bit painful for people to use in
some situations.

Bug: T350749
Change-Id: I7c88dc604dd321a7c78810b21f7ad8306ff9dab6
2023-11-30 10:27:50 +00:00
Ed Sanders 3966573f02 build: Update ESLint to 0.26.0 and autofix
Change-Id: Ia5e15684c1c3dcd69985445a09fc4e4910368b5b
2023-11-28 11:18:09 +00:00
jenkins-bot 8411bd0954 Merge "Remove handling of Minerva edit links" 2023-11-16 18:37:24 +00:00
WMDE-Fisch ec47d4887b VisualDiff: Remember the current mode when the diff changes
I don't think it make sense to always fallback to the inital mode.
The wikipage.diff hook can be fired from 3rd parties to update the
diff. If the users then changes the mode inbetween without a page
reload, every following diff page update should have the latest
option as a default instead of the original option.

Bug: T346369
Change-Id: I2d0f6cbb89a2d98f247fcd77fa4d79708a4220c1
2023-11-10 10:19:15 +01:00
Bartosz Dziewoński 5667832c1b Attach content to teleport target instead of <body>, remove Vector hacks
In MediaWiki, OO.ui.getTeleportTarget() is overridden to return
a different element (itself attached to body), which is supposed
to be styled appropriately by skins (e.g. z-index above any
floating header, font-size same as body text, etc.).

As a result, we no longer need to do weird things with the
'vector-body' class to achieve correct font size on Vector,
and we can remove some font-size overrides for Vector and MonoBook.

Bug: T348288
Bug: T339058
Change-Id: I6329b3023573b3dcfc8f471c4693be9bb1e9e430
2023-11-06 14:29:12 +00:00
Bartosz Dziewoński 8ec439d417 Remove handling of Minerva edit links
After the other changes in T346944, desktop Minerva can display
multiple edit tabs and section edit links without these hacks.

Bug: T346944
Change-Id: I3721f9387303386493664366988961242a26dba5
2023-10-24 03:27:09 +02:00
Bartosz Dziewoński a60b3719f6 Don't try to update tab text if a custom message is incompatible
Some wikis customize messages, e.g. 'skin-view-create-local', in ways
that are not compatible with the client-side message parser.

Bug: T306807
Change-Id: Ie2f2ba4bba3b5b6f4fd6dbed6773d87f096a8944
2023-10-12 21:01:39 +02:00
Bartosz Dziewoński fa889154c2 Fix handling of 'edit-local' and 'create-local' messages
* Remove incorrect overrides in VisualEditorTabMessages. Since
  I44bd632682d5cc52b2660ad72a492f95a04be36e, the interface should use
  'skin-view-edit-local' and 'skin-view-create-local' respectively.

* Fix the fallback mechanism in DesktopArticleTarget.init.js
  to handle these keys correctly.

Change-Id: I7dad7e3a6fb920c5caf175e0e7500fd0c4b4d0ae
2023-10-12 20:05:06 +02:00
Bartosz Dziewoński be36f1fab1 DesktopArticleTarget.init: Remove code for updating edit links
This JS code duplicates the PHP implementation in VisualEditorHooks
in order to allow changes to the configuration of edit tabs
(e.g. wgVisualEditorUseSingleEditTab and wgVisualEditorTabPosition)
to take effect for logged-out users immediately, without waiting
for the HTML caches to clear.

It was worthwhile 10 years ago when VisualEditor was being rolled out
to new wikis or reconfigured daily, but it is not today when we hardly
ever change these settings.

It proved difficult to maintain as the skins change, it has several
known bugs (T292125, T306807, T346944), and probably several more
unknown ones, given that it hasn't been tested in about 10 years.

Let's remove it and save ourselves the headache. (Also also reduce the
amount of code we ship on all page views by almost a kilobyte.)

Bug: T292125
Bug: T306807
Bug: T346944
Change-Id: Ib82f5402872a2429445463a1e1ef92806d3326f9
2023-10-05 03:11:40 +02:00
hmonroy 3e223bdf52 Fix wikitext mixed toggling
Allow Core to handle the toggling for Wikitext when the inline switch is
present to avoid duplicated functionality.

Bug: T345836
Bug: T346213
Bug: T346299
Depends-On: Ib88836f13cdb5cd2344e3ba12f6c942baa0fc1f1
Change-Id: I3bb9fcabe17a20c9934274766e3335f63d51aac4
2023-10-03 16:15:37 +00:00
Bartosz Dziewoński 0cfaaa5ff4 Don't offer visual diffs for non-wikitext pages
Bug: T346252
Change-Id: I1be1690b0414bb643f137f74c421ba1034563c7b
2023-09-14 14:22:32 +02:00
Bartosz Dziewoński 1fcd67b368 Remove use of wgFlaggedRevsEditLatestRevision
Renamed to wgEditLatestRevision in FlaggedRevs.

Change-Id: I9310aaacc475b40cd886b2be2d5dc25c0f152db2
2023-09-06 19:21:12 +02:00
Ed Sanders 7c403b2c98 Edit check: Turn on when ecenable=1 is set
Bug: T345297
Change-Id: Ie41258dbf87ef9ae00cdf830bf8cb84ed848d0a7
2023-09-05 14:34:20 +01:00
jenkins-bot 1c93f24a40 Merge "Implement add a reference edit check" 2023-08-24 03:30:48 +00:00
Ed Sanders 2b4dab6703 build: Update stylelint-config-wikimedia
Change-Id: I4e56a07c0cd478fb2ea1908c79f584ea3e4d788e
2023-08-21 16:06:40 +01:00
Ed Sanders 3ece481e71 Implement add a reference edit check
Change-Id: I4cebc5bbaa34300d1c5bb5fde8277269b14779c9
2023-08-16 17:19:28 +01:00
jenkins-bot 9070d1e98b Merge "Catch errors in addPlugin callbacks so VE load isn't broken" 2023-08-16 14:29:12 +00:00
David Lynch 745d13ae4b Catch errors in addPlugin callbacks so VE load isn't broken
Change-Id: I8a1eb058f10e356b3af5588862633b78f0b0ff92
2023-08-15 13:49:16 -05:00
Ed Sanders a54f36c886 Use passive event listeners for window scroll events
TODO comments suggested using the VE helper util, but
that is no longer necessary since all our browsers
support passive events.

Change-Id: Idb7e702d58931208d555a3f994cd0b73abec2e20
2023-08-09 16:42:23 +01:00
Dringsim cce52fae65 Use different tooltips for ca-edit and ca-ve-edit links
Bug: T337653
Bug: T341424
Change-Id: I3aa79fec71ca2c40a0ece3ca73dd934cf6c9d5a8
2023-08-02 16:36:54 +00:00
jenkins-bot b9f0764711 Merge "Prevent JS code from changing 'skin-view-edit-local' message to 'skin-view-edit'" 2023-07-17 23:54:53 +00:00
jenkins-bot 4231c7a328 Merge "Use different titles for "Edit" and "Edit source" links (section headings)" 2023-07-17 23:07:44 +00:00
David Lynch 7d1e9f3eaf When switching from WikiEditor activate VE *after* notifying WikiEditor
This affects logging behavior -- notifying WikiEditor lets its logging
clean up after itself before the init event for VE fires. This was only
an issue when switching *with* changes, because that path resulted in
the timings being cleared, making future events whose timing depended
on the init event have NaN timings.

(This wasn't an issue before we centralized the logging code into
WikimediaEvents, as before that WikiEditor and VE were maintaining
separate timing registries.)

Bug: T237063
Change-Id: Icdb307fa0ce0d1dac3744e4bab41b3588f14777f
2023-07-13 09:32:55 -05:00
沈澄心 70cb30c2a8 Prevent JS code from changing 'skin-view-edit-local' message to 'skin-view-edit'
Change-Id: I33ab649959226a848e1c57fc7c2b7e95a014e4bd
2023-07-13 02:51:12 +00:00
沈澄心 8523b5a876 Use different titles for "Edit" and "Edit source" links (section headings)
Bug: T337653
Change-Id: I6793d458b7a1573de6752177cab5a9bfae9ffca0
2023-07-13 02:47:50 +00:00
jenkins-bot 7ae61934a3 Merge "Remove remains of lossy-switching and discard-switching" 2023-07-11 15:34:52 +00:00
jenkins-bot 5574237f47 Merge "Support '&editintro=…' etc. on subsequent loads via page tabs" 2023-07-11 15:33:30 +00:00
jenkins-bot 55b04b8820 Merge "Replace the last use of mediawiki.Uri" 2023-06-30 19:57:45 +00:00
Ed Sanders d857750e12 Make better use of toolbar groups
Bug: T340751
Depends-On: Ie7ca24cbcd95baa082b3b1cb907354f6da21d93c
Change-Id: Ibcc81c90bc9ba6c5fd012c512daf861973b03b2e
2023-06-29 16:58:38 +00:00
Sam Wilson c5040810c7 Switch back to oo-ui-element-hidden from mw-diff-element-hidden
Using the OOUI class name is an established pattern outside of
OOUI widgets, so it's easier to stick with it for the diff page
hiding and showing (switching to and from inline/table diffs, etc.).

Depends-On: I805b6b71d8e137eaa3e000b15455557df42af838
Bug: T324759
Change-Id: I0300b40d4e79319592bfc1f57912460f65c7051c
2023-06-26 17:54:46 +00:00
jenkins-bot f22f0d4c68 Merge "React to hooks that are fired when inline switch is present" 2023-06-26 05:29:44 +00:00
hmonroy 4a028f1336 React to hooks that are fired when inline switch is present
React to hooks fired by core when the inline diff type switch is
present. VE needs to be able to disable the inline switch
when 'visual' mode is selected and enable the switch when 'wikitext'
mode is selected. When the 'wikitext' mode is selected and there is an
inline switch, the interface needs to show the diff type format previously
selected.

Toggle using new `mw-diff-element-hidden` class that is used by core so
that there's no clashes when hidding and showing the diffs.

Bug: T331589
Depends-On: Ie6a48e495f2bb299d8b984e7c40363d534c7915b
Change-Id: I4f790370dbfeb521f3b61c4d604245f77094abe9
2023-06-26 04:20:16 +00:00
Bartosz Dziewoński 34c6d3e1a3 Remove remains of lossy-switching and discard-switching
After the demise of RESTBase we are always able to switch from
wikitext to visual mode with changes, and we no longer need to
support these two poor experiences.

Bug: T339871
Bug: T339872
Change-Id: I2be4068447b21e16c87db0e56d6422ea64ba4708
2023-06-25 09:16:45 +00:00
jenkins-bot 68265fcd14 Merge "Use new helpers to show the post-edit message" 2023-06-22 15:33:28 +00:00
Bartosz Dziewoński dd509c1072 Use new helpers to show the post-edit message
Undo some changes from 95454e710f1b619f7c538bc1dc88f238409719ca,
as this functionality is now provided by the core code.

Depends-On: I1c9020b2efb2785279f5c09539a49208a310ccf7
Depends-On: Ifeffcf214719f0d5c1371dc7d51a410fb313c978
Bug: T338003
Change-Id: I90a618897699c844f9c558bbeb4d1563f8050fe3
2023-06-22 13:51:59 +00:00
Bartosz Dziewoński eedafae69e Support '&editintro=…' etc. on subsequent loads via page tabs
Before this change DesktopArticleTarget's history management was not
working correctly because .currentUrl was not being updated on every
activation, and we worked around this problem by activating it in a
different way on subsequent loads in DesktopArticleTarget.init.

Fix the first bug by updating .currentUrl whenever we activate it,
and remove the guards around the normal way of activating it, which
fixes the parsing of 'editintro' parameter.

Bug: T56029
Change-Id: Ifd6af60cdf1d2c87536017b316ab8da1f5133400
2023-06-21 13:35:43 +00:00
Bartosz Dziewoński 2b8c3edab2 Replace the last use of mediawiki.Uri
Depends-On: Ia95a27c7d7ebc9e4779f82598152145f02993b29
Change-Id: I8736111c4ec3cf9a9480df2efbdf080b5d72d514
2023-06-21 15:35:06 +02:00
Bartosz Dziewoński a35698fea5 Fix '&editintro=…' not working on Vector with some settings
In Vector the edit tab links have an extra <span> inside, and so
we couldn't find the parameters in the <a> href, because we were
actually looking at the <span>.

It worked in cases where we override the edit tab labels, since
we trample over the spans, e.g. in multi-tab mode.

Bug: T56029
Change-Id: I96935490418d7c3be4d417aaa71cb6e9608fd77f
2023-06-21 13:08:05 +00:00
Bartosz Dziewoński d8c3d007ff DesktopArticleTarget.init: Remove error logging for URL errors
Detailed logging is no longer needed after T328094 was resolved.

Change-Id: I49fa8598aa442445e12e553ebfd6680d9fe12a1b
2023-06-21 15:07:47 +02:00
Bartosz Dziewoński 99b326286c DesktopArticleTarget.init: Fix bad parameter to activateTarget()
The 4th parameter is a boolean 'modified', not a node. I'm not sure
what this was supposed to do. It looks like the parameter was being
ignored in all cases anyway.

Change-Id: I559ab2bdb02c4a3e39b44487cf36122332d61fd1
2023-06-21 15:07:47 +02:00
jenkins-bot 4b6e819440 Merge "Set a JS config var to force VisualEditor to edit the current version" 2023-06-14 01:56:12 +00:00
Bartosz Dziewoński 08d7ec3d2d Don't offer visual diffs for page creation
Bug: T338388
Change-Id: Ie59a1a493bce6dd1beb3c332f95a55eb55eeeef2
2023-06-10 16:44:18 +02:00
Dringsim d27825caa1 Set a JS config var to force VisualEditor to edit the current version
Rename wgFlaggedRevsEditLatestRevision to wgEditLatestRevision (not use 'VisualEditor' - this config may be used by other editors)

Bug: T338312
Change-Id: I6c9c46774fe197ca7775b65f12e62bb3bcbe53b4
2023-06-09 12:45:37 +00:00
jenkins-bot 550f73468e Merge "Bump requested Parsoid HTML version to 2.8.0" 2023-06-09 03:23:32 +00:00
jenkins-bot f1ce07c29d Merge "Move the diff-mode selector to the new TextSlotDiffRendererTablePrefix hook" 2023-06-06 18:26:57 +00:00
Arlo Breault 7d5b964507 Bump requested Parsoid HTML version to 2.8.0
This will ensure that media have the mw-file-element classes so that the
styling changes in I70c61493fe492445702f036e5b24ef87fc3bdf43 apply.

Older 2.7.0 content still in storage is missing the classes and doesn't
render correctly.

Note that I545ed75ed3c87e88b5e776696754e23c05645f81 made sure that
editing of both versions was always compatible.

Bug: T337596
Depends-On: Ia70f819df79fbb12a5b1dd6a98bfe0b968808d18
Change-Id: I40ed887e03f983e0737e1ee7cba5a4012fea31db
2023-05-31 12:12:59 -04:00
Sam Wilson 137124a837 Move the diff-mode selector to the new TextSlotDiffRendererTablePrefix hook
Use the new hook to add the diff-mode selector to the area directly before
the diff table.

Also toggles the new inline-diff legend, when the initial diff-type is 'inline'.

Depends-On: I2a3c67bcfa47313dee597e602a62073e4e298cd2
Bug: T324759
Change-Id: I1584a84b3caea9eb142afba976c6ff47650c3832
2023-05-31 15:45:22 +10:00
Bartosz Dziewoński 872679aeec DesktopArticleTarget.init: Support '&editintro=…' in edit links
Support gadgets adding '&editintro=…' to the default edit link.
It was already supported when opening the link in a new window, or
following an external link, or when clicking a section edit link.

Also, clean up these parameters when leaving the editor. This also
applies to 'preload', 'preloadparams', 'preloadtitle', 'summary'.

KNOWN BUG: Only works the first time the editor is loaded on the page.
Afterwards, DesktopArticleTarget.init lets DesktopArticleTarget handle
initialization, and it ignores extra parameters. I made a few attempts
at fixing this, but I only broke it further. I don't understand why
the history handling code even works. Maybe I'll come back to this.

Bug: T56029
Change-Id: I38fcde573f728250aaa125b391815e7fac7df362
2023-05-30 12:52:53 +00:00
Bartosz Dziewoński 53217d24e0 DesktopArticleTarget.init: Simplify parameter types
I prefer not having to think what type `link` is.
Just pass `linkUrl` everywhere.

Add and correct some related doc comments.

Change-Id: I5aa03149d7e1b32cd9ec19c589b16d03a9981857
2023-05-30 14:51:53 +02:00
Ed Sanders 7d39310830 build: Update stylelint-config-wikimedia to 0.15.0
Change-Id: I87b7975b91a25f994ef9fc55759549e4c27e3e8b
2023-05-24 18:50:35 +01:00
Samtar 09bb8f9168
Revert "Move the diff-mode selector to the new DifferenceEngineBeforeDiffTable hook"
This reverts commit 7dbe385773.

Reason for revert: Reworking

Change-Id: I60784afa0d47e22acd9e8a981092784c84b250eb
2023-05-18 15:36:38 +01:00
jenkins-bot 929b4d405d Merge "Prevent desktop init from running on mobile" 2023-05-12 10:32:22 +00:00
Ed Sanders ee33c850ae Prevent desktop init from running on mobile
3rd parties may load this module inadvertently.

Change-Id: Ie545dc2bf95eae862340531cc36e88a592882c53
2023-05-10 15:25:06 +01:00
jenkins-bot 7c0259a3c3 Merge "Handle temporary users when dealing with user preferences" 2023-05-05 15:55:49 +00:00
Bartosz Dziewoński 3b1a2d9dce Handle temporary users when dealing with user preferences
As temporary users will not have access to user preferences (T330815),
use cookies or localStorage to save them, like we already do for
logged-out users.

Also add some comments to point out where we intentionally distinguish
logged-out and temp users.

Bug: T332435
Change-Id: Ic83dd8bc8bc107f603a9b0340bd9e2bcaad8ff5a
2023-04-28 15:57:46 +02:00
Sam Wilson 7dbe385773 Move the diff-mode selector to the new DifferenceEngineBeforeDiffTable hook
Use the new hook to add the diff-mode selector to the area directly before
the diff table.

Also toggles the new inline-diff legend, when the initial diff-type is 'inline'.

Depends-On: I6de30bf79eb5ac262285951792782b870d075e00
Bug: T324759
Change-Id: Ifc133856dd793693c3a2722a7b1319dfe74555a2
2023-04-21 16:03:16 +08:00
jenkins-bot a453404bb1 Merge "Stop adding the 'diffmode' parameter to the URL" 2023-04-15 22:28:55 +00:00
Bartosz Dziewoński 40d131f727 Stop adding the 'diffmode' parameter to the URL
Bug: T213522
Change-Id: I9f724a068bfa869db0183a216ff0b764084f464d
2023-04-13 20:50:34 +02:00
Ed Sanders 2df6c004a3 Drop some IE hacks
Change-Id: I97b0f1b8cb5e799d151177c43dc8a990cf6015bd
2023-04-12 16:32:59 +01:00
Ed Sanders 6e77f963e4 Initial edit check tagging
Bug: T324730
Change-Id: I112015809e55da802e3840fdfeaf16a72e090cb3
2023-03-27 22:47:40 +00:00
jenkins-bot 5ce888cdce Merge "Centralize EditAttemptStep logging code in WikimediaEvents" 2023-03-27 15:30:45 +00:00
Ed Sanders 9d09979e9e MWSaveDialog: Center preview in Vector 2022
Bug: T328783
Change-Id: I2e18967bb41573789cc3a8554038b8ac7876d356
2023-03-27 12:29:25 +00:00
Bartosz Dziewoński 766bdedf70 Centralize EditAttemptStep logging code in WikimediaEvents
* Use the new mw.track() handlers from WikimediaEvents
* Ensure that 'integration' and 'mode' are set on init
  events, since they're not guessed in the handler any more
* Remove the setting of 'editingStatsId' tracking parameter,
  now happens in WikimediaEvents by setting an API AJAX option
* Replace ve.track with mw.track in VE-MW, so that we don't have
  to copy the events manually here and in other extensions

This must be merged together with WikimediaEvents change
Iace4d53a972396ca5b8713000570cc47c9986034 (but we can't use
Depends-On, because CI requires code here to be removed first).

Bug: T332438
Change-Id: I0ef0a96aafdf89a4ebe32131a85b18c25744bb2c
2023-03-24 21:48:45 +01:00
Bartosz Dziewoński 1cdb641116 Simplify timing tracking code
Peel off some layers, remove some unused computation,
remove code from ve.init.mw.trackSubscriber.js (which
is to be removed in T332438).

Change-Id: I4073b9a2a4b2af06f30e603a9d2a1968203f3b6d
2023-03-24 21:48:14 +01:00
jenkins-bot dc9fe4344f Merge "stylelint: Auto-fix selector-pseudo-element-colon-notation" 2023-03-17 18:00:34 +00:00
Ed Sanders 860d9ae926 Render category diff
Bug: T161290
Depends-On: I118e85d7fa8202717db3a323e3e3dd9bc8a25be5
Change-Id: Iaa401b130bd81b8960f799dc9de6f172d9ba86a3
2023-03-15 13:10:23 +00:00
jenkins-bot b9691dcd09 Merge "Set editor preference even when disableForAnons is set" 2023-03-13 14:19:33 +00:00
jenkins-bot 03083bb122 Merge "Fix incompatible skin reporting logic" 2023-03-13 13:43:24 +00:00
James D. Forrester ffc2b27bf9 stylelint: Auto-fix selector-pseudo-element-colon-notation
Depends-On: I0cc0c16c5adae09090a30453431fe492f3475a69
Change-Id: Ie975f0534f32e46face9ab2ba0e0d3af11533de6
2023-03-12 22:03:06 +00:00
Ed Sanders 1044753245 Set editor preference even when disableForAnons is set
disableForAnons is used to present a single wikitext tab on
dual-edit-tab wikis, and/or default-wikitext red links.

Users who open the editor and then switch to VE should still
have that preference stored in a cookie when that happens.

Bug: T331462
Change-Id: If2a866cff7e54d2832f6aa22eb268eb125f2d1c2
2023-03-08 15:12:07 +00:00
Ed Sanders 55ded73e9d Remove visualeditor-enable-experimental and ext.visualEditor.experimental
These haven't been used for a while, and we usually enable experimental
features via BetaFeatures these days.

Change-Id: Iec3a7da3cc962d8ac9416b508780fcdc3ca58d3e
2023-03-08 15:05:10 +00:00
Gergő Tisza 6d2ba502b8 Fix incompatible skin reporting logic
When checking for the presence of edit buttons, we should include
the VE edit button and the MinervaNeue page action link, but not
the "view source" button (which means the opposite: the user can't
edit).

Bug: T312632
Change-Id: I2eb6e833a0489c17cf8360aca61bd8b615e30461
2023-03-08 02:20:31 +00:00
jenkins-bot 2dd4987b57 Merge "DesktopArticleTarget.init: Ignore fake section edit links added by gadgets" 2023-02-13 23:39:26 +00:00
jenkins-bot 09a3f24e57 Merge "DesktopArticleTarget.init: Fix init from "Add topic" tab in some cases" 2023-02-13 23:39:23 +00:00
Bartosz Dziewoński 7aa1d55a48 DesktopArticleTarget.init: Ignore fake section edit links added by gadgets
Bug: T328094
Change-Id: Ia9554bfa90944fec0ebc0eadde65f13beb562fbd
2023-02-13 22:57:23 +01:00
Bartosz Dziewoński d7e0d1deae DesktopArticleTarget.init: Fix init from "Add topic" tab in some cases
Going through onEditSectionLinkClick() is not needed, and it confused
some code that actually expected a section edit link.

Bug: T328094
Change-Id: I8975ade38d9dd064272781fb9d4bd22bab4d65ce
2023-02-13 22:34:36 +01:00
Jack Phoenix eb71d7710a Loosen the edit link selector specificity in setupMultiTabs()
This allows VE to support even more skins with minimal or no changes to the skins themselves.

Partially reverts 75ff121b29.

Change-Id: I7536610459b7401015d4a033cc516c5d9a0ca5f1
2023-02-07 20:28:32 +00:00
jenkins-bot 696b791127 Merge "Error logging for native URL errors" 2023-02-02 16:10:28 +00:00
jenkins-bot bd105f2fc1 Merge "Re-apply "Rewrite mw.libs.ve.getTargetDataFromHref with URL API"" 2023-02-02 09:22:45 +00:00
Bartosz Dziewoński 99b1220aca Re-apply "Rewrite mw.libs.ve.getTargetDataFromHref with URL API"
This reverts commit a92dce4999.

A workaround for the previous problem was added in ContentTranslation
in I945897a27db479986855002b389034a745bf9bef.

Bug: T325249
Bug: T325566
Bug: T327779
Change-Id: I2d9c330dc4328468a65315ec6bed1d0f53ebd1f6
2023-02-01 22:45:56 +00:00
jenkins-bot a1c1366b30 Merge "Document need to remove data-mw-section-id attributes when saving" 2023-02-01 21:15:11 +00:00
jenkins-bot 34a0634e16 Merge "Set a min-height on surface in Vector 2022" 2023-02-01 21:11:49 +00:00
Ed Sanders 4155ac51f6 Document need to remove data-mw-section-id attributes when saving
Bug: T328268
Change-Id: I429d692053c3bf02135b57471b76f72519221e99
2023-01-31 15:14:16 +00:00
jenkins-bot 2fdac8851c Merge "Revert "Rewrite mw.libs.ve.getTargetDataFromHref with URL API"" 2023-01-30 14:13:38 +00:00
Bartosz Dziewoński a92dce4999 Revert "Rewrite mw.libs.ve.getTargetDataFromHref with URL API"
This reverts commit 461c76981f.

Bug: T328143
Change-Id: Ib59192c650736eac9d4a2db130c3e29720c30486
2023-01-30 13:52:53 +00:00
Ed Sanders c5cccfc85b Set a min-height on surface in Vector 2022
We could do something more complex and compute the height of the
available space, but a fixed height is a reasonable solution with
a fraction of the complexity.

Bug: T328048
Change-Id: I0b7bfa55f23afc16be43b85270666ec6a480ca32
2023-01-28 14:07:11 +00:00
Bartosz Dziewoński e52058fad3 Error logging for native URL errors
Bug: T328094
Change-Id: I7d0e3bb403db7ddbc233d6b0a770533f02883c5a
2023-01-27 10:48:45 +01:00
Jan Drewniak d98e9e83e1 Fix Wikitext editor preview layout in Vector 2022
Accounts for the use of CSS Grid in Vector 2022, in
the 2017 Wikitext editor preview, by placing the heading and
content in named grid areas (`titlebar` and `content`).

Bug: T327778
Change-Id: I66a30e282e808559b4f375f5924ae0d945c058a9
2023-01-24 10:39:40 -05:00
Bartosz Dziewoński 461c76981f Rewrite mw.libs.ve.getTargetDataFromHref with URL API
At first I was going for a more minimal replacement of mw.Uri with URL,
until I discovered that this code depends on a mw.Uri bug that would be
difficult to replicate:

  // Expected: Relative URLs are accepted
  new mw.Uri( '/foo' ).toString() // => 'https://localhost/foo'
  // Expected: Protocol is optional
  new mw.Uri( 'example.com/foo' ).toString() // => 'https://example.com/foo'
  // Unexpected: Treated as empty domain with no protocol rather than relative URL
  new mw.Uri( './foo' ).toString() // => 'https://./foo'

So I went for a bigger rewrite to preserve the intent rather than the
exact logic.

I had to change some test cases to use more realistic fake data. They
previously relied on bugs in our URL handling to pass despite the base
URLs being incorrect, particularly for non-short URLs (see T270219).
In my testing non-short URLs behave the same as before in practice.

Depends-On: I07a8c097dba0f5572c0aedf4febdf1434063ea6f
Bug: T325249
Change-Id: I232361266c1dda795b88018c3aaa3d9ecbe42b93
2023-01-23 14:59:23 +00:00
Bartosz Dziewoński 2770809d1a Replace mediawiki.Uri with native URL (ArticleTarget)
Persistent global-ish properties in ArticleTarget and friends. A lot
of our own code re-uses them, and code elsewhere could refer to them
as well (although I didn't find any uses).

In one case we need to keep using mediawiki.Uri, to handle building
an array from query parameters exactly like PHP would handle it.

Bug: T325249
Change-Id: I57699ff9dd39179ca29a87b6e2d9b12c2b86eb7d
2023-01-09 20:34:27 +00:00
Bartosz Dziewoński 25019d7f55 Fix encoding to roundtrip links without 'rawTitle'/'origTitle'
Our encoding for the hrefs like "./Foo" that we send to Parsoid
differed slightly from how Parsoid outputs them, so to avoid dirty
diffs, we had to store the original ones we received from Parsoid
and send them back if they were unchanged.

Change the encoding to match Parsoid's exactly (by referring to the
Parsoid source code), and then remove 'rawTitle'/'origTitle'.

On a historical note, 'rawTitle'/'origTitle' were originally added to
fix other issues with links, which I hope are long behind us:
* bb45d984ca (T145978)
* fda2e6c1b5 (T44140)

Follow-up to 362df66b47, which removed
some other old stuff from the handling of Parsoid links.

Bug: T325766
Change-Id: I0ad0a655380eb2fb29b5ac01e2e399ac550ce34a
2023-01-07 20:00:42 +00:00
Bartosz Dziewoński fd80fae57f Replace mediawiki.Uri with native URL (easy cases)
Replacing one-off uses in various auxiliary features: only used
in function scope (or narrower), nothing else depends on them.
Some of them didn't even need to do any URL parsing or formatting.

Bug: T325249
Change-Id: Ia9a18656f67cb0a204c87605459abb9f5bbdc347
2023-01-03 22:18:01 +01:00
Bartosz Dziewoński b6929d5be1 Change mw.libs.ve.getTargetDataFromHref to not return bogus data for external links
For external links, `.title` and `.rawTitle` properties previously
contained the external link corrupted with some normalization intended
for MediaWiki titles.

This was useless, and in fact no caller actually uses this value:
they all check `.isInternal` first before accessing `.title` or
`.rawTitle`.

Also, correct other parameter documentation.

Change-Id: Ieeab56548f0a3b2f81a90f0d3ae0f81d744aa67b
2022-12-14 22:57:04 +01:00
Bartosz Dziewoński 133cacc42d Remove obsolete browser support checks for HTML5 History API
It is available in all browsers we support.

Change-Id: I6c860eadd91e6e4061ed0364be0dc8c7b750d3e7
2022-12-12 20:47:32 +01:00
David Lynch 2b49b3bde7 Try/catch around mw.Uri when decoding parsoid resources
An incorrectly-encoded fragment is allowed-in-wikitext but will make
mw.Uri throw an error. e.g. `[[foo#1%bar]]`

Bug: T324976
Change-Id: I97cb85507d9ae3d648300245dd7e48cc239c4d90
2022-12-12 09:37:30 -06:00
jenkins-bot f6047f8642 Merge "Handle errors when rendering visual diffs" 2022-12-05 23:35:01 +00:00
jenkins-bot 4263eb1786 Merge "Adjust to changes to redlink behavior from parsoid" 2022-12-05 20:26:34 +00:00
David Lynch 83a46a7817 Adjust to changes to redlink behavior from parsoid
Redlinks now come down with a `mw:LocalizedAttrs` typeof, and have the
display URL parameters rather than being bare titles.

Bug: T324352
Change-Id: Ia1776e6e1f171d227c7c402b39ca96d17fb56cdb
2022-12-05 11:55:33 -06:00
Bartosz Dziewoński 1ea3bf3013 Handle errors when rendering visual diffs
There are some known bugs that we probably will not investigate
(T313809, T317455). Do something better than an infinite loading bar.

Follow-up to ee7c5d9d1a.

Change-Id: I339de7662ff68c2ea9bb1a738bb4207d1c399e59
2022-11-30 18:17:54 +00:00
Bartosz Dziewoński c9a9b619aa Only hide #siteNotice on skins where it's shown in the editable area
Bug: T324055
Change-Id: I07139358d0e20582a53fc6820ae022b9edc0ba95
2022-11-29 21:19:46 +01:00