Commit graph

592 commits

Author SHA1 Message Date
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
Derick Alangi daa6861f01
Remove ::injectMode(), prep to remove DualParsoidClient p.1
In order not to break clients who already have VE open with etag
that injects the "mode:direct..." in their etag, let's first stop
injecting the direct mode to subsequent VE sessions (for edits)
and wait for 24hrs+ so that we're sure we've processed all sessions
with the direct mode etag.

After 24hrs of this patch merged and going live, we'll then remove
the DualParsoidClient entirely as the p.2 of this cleanup.

Bug: T341612
Change-Id: Ie4f43089ee6f94f51fc0398e84604a17bc5bebcf
2023-07-17 11:26:47 +03: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
thiemowmde ab2cbb3b70 Change almost all code to use Bcp47Code instead of Language
This patch makes the following assumptions:

1. There is no class outside of this codebase that implements the
ParsoidClient interface. According to CodeSearch this appears to be
correct.

2. It is fine to use the Bcp47Code instead of the internal MediaWiki
language code in the "Accept-Language" HTTP header. As far as I
understand this might even qualify as a bugfix.

Depends-On: If059674597e261039df7f4613a89cb08120c3262
Change-Id: Icd160da2d5555891b9a91a0cb966bd36a55f6fdd
2023-07-12 09:38:16 +02:00
jenkins-bot b804a54ca6 Merge "Use more narrow Bcp47Code interface in DirectParsoidClient" 2023-07-11 21:18:17 +00:00
Derick Alangi f2bb8cf45d Remove VirtualRESTService code from VisualEditor
This follows the event of VE no longer using RESTBase anything. All
actions related to stashing and Parsoid and now handled in MW core.

Bug: T339227
Change-Id: I50b20ed5abb721a6ac8987cac37a6f395a4816dc
2023-07-11 19:38:05 +02:00
jenkins-bot 7ae61934a3 Merge "Remove remains of lossy-switching and discard-switching" 2023-07-11 15:34:52 +00:00
jenkins-bot 93427a6708 Merge "Reload page or redirect when saving an edit creates a temp account" 2023-07-11 15:16:56 +00:00
Bartosz Dziewoński 0dddd98b5f Reload page or redirect when saving an edit creates a temp account
Depends-On: I6cdc014fb39d35ce1f091b53dc3a9c4a3c95f9e9
Bug: T338002
Change-Id: I01e13ce1ebab462eeb0ba3847d4205a88965a127
2023-07-10 19:33:16 +02:00
thiemowmde 44621c6b92 Use more narrow Bcp47Code interface in DirectParsoidClient
Change-Id: I36f6e2f1ca8e3e3d7f98ecbec8b9d62790e579ba
2023-07-07 09:59:23 +02:00
Esanders b33bb734af Revert "Revert "Add tag when reference added to the page""
This reverts commit 235e5aca00.

Reason for revert: Re-applying with fixes

Change-Id: I9dc5a77045ea5f15c90cf84a15815e13dffd5739
2023-07-06 17:50:08 +01:00
Bartosz Dziewoński 235e5aca00 Revert "Add tag when reference added to the page"
This reverts commit d4460219bd.

Bug: T341202
Change-Id: I8e608a5a34a3bb18d1994d5c182c3918e6d6f89d
2023-07-06 11:35:50 +00:00
Ed Sanders d4460219bd Add tag when reference added to the page
Bug: T325713
Change-Id: Ia4abe256c7ffffa749ad6cdb537dd26091ea07da
2023-07-03 15:09:12 +00:00
Ed Sanders d7d344035c Add tag when content added, according to EditCheck heuristic
Bug: T333714
Change-Id: Id806e6d4d856aead4af98d43078c534d4d46c7f0
2023-07-03 14:43:14 +01:00
Bartosz Dziewoński be0b140965 Add option to unify display of VE enable preference
Setting `$wgVisualEditorUnifiedPreference = true` makes the VE enable
preference appear consistently on the preferences page, while still
being backed internally by the old 'visualeditor-enable' and
'visualeditor-betatempdisable' preferences.

(It effectively overrides `$wgVisualEditorEnableBetaFeature`, which
needs to remain unchanged to use the values from the right preference.)

Bug: T335056
Change-Id: Iad710a769c7176c4673c475d540dff2b7782e159
2023-06-29 01:33:51 +02:00
Bartosz Dziewoński e1cdab7931 Fix conditions for 'visualeditor-autodisable' that depended on WMF config
Previously, this code relied on 'visualeditor-enable' being set to '1'
when VE was opt-out (so not using that preference). That default does
not make sense for a beta feature (which uses that preference), so WMF
config was overriding it to 0 when the beta feature mode was wanted.

Instead of making assumptions about the default values of preferences
that depend on whether beta feature mode is enabled, just check the
beta feature config.

I also added and updated comments documenting this preference.
Previously I never really understood what it was for, and I think
I figured it out now.

Bug: T340696
Change-Id: I45eef42939149ff5be63bf299c48ef70ee535e76
2023-06-29 01:25:59 +02:00
Bartosz Dziewoński b986645d0a Fix trying to get a PageRecord for a non-existent page
This reverts a change from 5a792b6558. The hook only requires
a PageIdentity, and we only used toPageRecord() because it takes
a parameter to read latest data, and toPageIdentity() does not.
Instead call another method to update the internal data within the
Title instance. Maybe it's not great to rely on this side-effect…

Bug: T340568
Change-Id: If9cbd95eb84b6c39bf50af4564710839628a9bc3
2023-06-28 21:58:31 +02: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
Bartosz Dziewoński 5a792b6558 ApiVisualEditorEdit: Allow not returning the new revision content
Sometimes we call this API and then reload the page (or navigate to
another URL), without using the page content it returns. Save some
work and some data transfer and don't generate it in those cases.

Change-Id: Ic5fac61f3ef9b2dfce6ff757f1d414a9f41f217d
2023-06-22 21:08:15 +00:00
jenkins-bot ac4032eff5 Merge "Stop collecting stats per wiki" 2023-06-20 11:39:26 +00:00
daniel 4a2b3b580f Stop collecting stats per wiki
Having per-wiki statistics is neat but expensive. Now that VE has been
switched to not use RESTbase on all wikis, Go back to collecting
all stats under a single key. The relevant dashboards have already been
adjusted accordingly.

Change-Id: I9666bfa3fed547f3f619a9e0c9c24b9240edc359
2023-06-19 21:19:35 +00:00
Bartosz Dziewoński 8573df0233 ApiVisualEditorEdit: Remove unnecessary check
There are no occurrences of the error message in our error logging
data, so it most likely can never happen.

https://superset.wikimedia.org/superset/sqllab/
```
select count(*)
from editattemptstep
where event.save_failure_message = 'visualeditor-docserver'
```

Change-Id: I8172564057418283468c657cbc6d42ce8ddb35f4
2023-06-12 17:56:13 +00:00
jenkins-bot 9c4e8c4805 Merge "Always use the strict equality flag when using in_array" 2023-06-09 16:27:03 +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 b9dc193037 Merge "Ensure a compatible Parsoid output version for direct client" 2023-06-09 03:22:18 +00:00
Ed Sanders f99c580aff Always use the strict equality flag when using in_array
Change-Id: Ic9d4d97cc95baf2b312a6a1d83b58ab410bcf504
2023-06-07 13:26:10 +01: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
Arlo Breault e7e5241802 Ensure a compatible Parsoid output version for direct client
Presumably VE will move in lock step with the Parsoid library but this
retains the ability to negotiate even at this level.

Change-Id: Ice3beabcb1a475f2de9ad61e0f234a9cc23f80bd
2023-05-31 12:08:28 -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 c37633bb83 Hide 'editnotice-notext' message in VE (and mobile apps)
Bug: T337633
Change-Id: I142edff12492e80b9c281353e6a53efc3339159c
2023-05-29 02:07:19 +00:00
Ed Sanders fe14ffb76b Output config var when VE disabled by hook
Currently we only disable the desktop init code when this hook
returns false, but other integrations may want to know about this,
e.g. MobileFrontend.

Bug: T174180
Change-Id: I0268239cc9ea2d397140e617fcb6e4e104a75f31
2023-05-26 18:42:19 +00:00
David Lynch 50c646050d Update VE core submodule to master (fd2f048e4)
Also supporting changes to support the new HelpCompletionAction,
including adding a preference to disable it if required.

New changes:
985b553cc Localisation updates from https://translatewiki.net.
aa26e27dc Localisation updates from https://translatewiki.net.
4cdc753ab Update OOUI to v0.47.0
bfc96a7ee Completions: always abandon if the first input is a space
616a6458f Fuzzy command bar
92b6525a2 Tweak the fuzzy command bar's behavior
fd2f048e4 Fuzzy bar: change how command groups are generated

Change-Id: Ic77b8822baecf5ad1ab466d94df29bb945172b55
2023-05-20 22:04:27 +03:00
jenkins-bot d6803f2533 Merge "Use edit intro messages and preloaded content from MediaWiki core" 2023-05-19 13:23:21 +00:00
jenkins-bot 1c5dbf6f79 Merge "Revert "onDifferenceEngineBeforeDiffTable: Return early on Special pages"" 2023-05-18 17:20:49 +00:00
HMonroy d88cd64e52 Revert "onDifferenceEngineBeforeDiffTable: Return early on Special pages"
This reverts commit f693822f64.

Reason for revert: Reworking

Depends-On: Idc96036564291a3887935dbff4ec476f4ad07068
Change-Id: Iee3f41c1b096b82ee61ecca9ddc5fcd044f1237c
2023-05-18 16:45:15 +00:00
HMonroy ba687994d3 Revert "onDifferenceEngineBeforeDiffTable: Update comment"
This reverts commit d7262d8483.

Reason for revert: Reworking

Change-Id: Idc96036564291a3887935dbff4ec476f4ad07068
2023-05-18 16:45:11 +00: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
TheresNoTime d7262d8483 onDifferenceEngineBeforeDiffTable: Update comment
Bug: T336582
Follows-up: I251db11e8cb5b785744ee2c111d20a346937b78c
Change-Id: Ic1a6a3d1fe50aab163ce0fb17ae7379bff172adb
2023-05-16 17:38:05 +00:00
TheresNoTime f693822f64
onDifferenceEngineBeforeDiffTable: Return early on Special pages
Add a check of `$diff->getTitle()->getNamespace()` to ensure early
return on NS_SPECIAL pages.

Bug: T336582
Change-Id: I251db11e8cb5b785744ee2c111d20a346937b78c
2023-05-16 12:39:19 +01:00
Bartosz Dziewoński a88084509d Use edit intro messages and preloaded content from MediaWiki core
Use MediaWiki core helpers to provide intro messages (including edit
notices), initial page content, and CSS classes for the edit area.

The following intro messages were previously unimplemented,
and will be shown now:
* 'sharedupload-desc-create'
* 'sharedupload-desc-edit'

The following intro messages were previously unimplemented,
but they only apply to pages where VE should never be available,
and will be shown now when editing those pages with 2017WTE:
* 'code-editing-intro'
* 'talkpagetext'

The following intro messages were previously unimplemented,
and are now explicitly skipped:
* 'editpage-head-copy-warn'

The following intro messages were previously unimplemented,
but they only apply to pages where neither VE nor 2017WTE should
ever be available:
* 'userinvalidconfigtitle'
* 'usercssyoucanpreview'
* 'userjsonyoucanpreview'
* 'userjsyoucanpreview'

Depends-On: If0b05710cb52a977bf4e85947d72d68683a0a29e
Bug: T201613
Change-Id: If26e39e383b983f7ee834ed6dd73b80e0545b068
2023-05-16 02:34:35 +02:00
Sam Wilson 00abad4861 Don't show the diff-mode selector if not viewing a diff
The DifferenceEngineBeforeDiffTable hook is run when viewing a
diff after switching from visual to source editing, but the
mode selection widget shouldn't be shown then.

Bug: T324759
Change-Id: Ieb8a1b77928201a45635af46635b902cac01a36d
2023-05-10 18:53:37 +00:00
Bartosz Dziewoński ec425a06af Fix one more place where we tried to set preferences for temp users
Follow-up to 3b1a2d9dce.

Bug: T332415
Bug: T332435
Change-Id: I1139f1f3421fe43dfd5e3125b18d40421930a0f1
2023-05-10 04:20:03 +02:00
gerritbot a6c5082fa3 Update moved class EditPage
See T321882. Moved in Ibefc44eb64aed

Bug: T321681
Change-Id: I5faaf6c59e96154eba0a4b199e47ecef49a89c72
2023-05-06 21:21:44 +00:00
jenkins-bot 3f43c00c2b Merge "Remove unused preferences code for "alpha" visual editor opt-in" 2023-05-05 16:39:13 +00:00
jenkins-bot 7c0259a3c3 Merge "Handle temporary users when dealing with user preferences" 2023-05-05 15:55:49 +00:00
Bartosz Dziewoński edec1ab393 Remove unused preferences code for "alpha" visual editor opt-in
Change-Id: I60601874f9442992c4f844304a842cf640f5b618
2023-05-05 16:22:46 +02:00
Bartosz Dziewoński 83d3d1f3ba Rephrase visual editor disable preference label
Visual editor is not in beta, and this preference is not temporary.

Change the message key to avoid outdated on-wiki overrides.

Unfortunately the internal preference name still has "betatempdisable"
in it. We should investigate renaming it later.

Bug: T197282
Change-Id: If1475a18474e85cd3a260224c738d087d472af70
2023-05-05 16:15:43 +02:00
Bartosz Dziewoński 37ab4c2a80 Expose automatic temporary user info in the API
Depends-On: I62b4bb630decac92cbb8c7ddf00307df0dadb516
Bug: T332435
Change-Id: I84ce108b4d46b4e19fad032382f8b69a1b0065d5
2023-05-04 00:44:10 +02:00
jenkins-bot c2f79c7836 Merge "ApiVisualEditor: Support preloading from i18n messages" 2023-05-02 22:37:36 +00:00
Martin Urbanec c4839e21fb ApiVisualEditor: Support preloading from i18n messages
The `preload` parameter currently does not work with i18n
messages, as pages representing those messages are known, but
do not exist. Resolve this by running any NS_MEDIAWIKI page
through wfMessage() first.

This feature will be used by Personalized praise in GrowthExperiments,
which requires the preload from i18n messages capability. As a benefit,
it also makes it easier to create i18n'ed preload-based systems
(one can create MediaWiki:Foo, MediaWiki:Foo/cs and MediaWiki:Foo/de);
MediaWiki will select the best language version automatically.

MediaWiki core equivalent is uploaded as
I693bcaf71d7b8557c63538a426d7a6bd4c3edf3d.

Bug: T330337
Change-Id: I961ff7ae2263e61161e686107d80bdafa3fe3c32
2023-05-02 20:06:15 +02:00
jenkins-bot 0a28512624 Merge "Don't force the "view" flavor when using stashing!" 2023-05-01 13:46:25 +00:00
jenkins-bot 86568aff16 Merge "Move the diff-mode selector to the new DifferenceEngineBeforeDiffTable hook" 2023-04-28 17:23:09 +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
Ed Sanders 51759c3f7e Remove DiffPageEnable config option
Visual diffs are always enabled on history pages, there is no
long a need for this to be configurable.

Change-Id: I9cef558b2b9d32bc86c47f6a6095270220d036db
2023-04-26 17:05:57 +01:00
gerritbot 5b8c2a3afa Update moved class WikiMap
See T321882. Moved in I60cf4b9ef02b9d5

Bug: T321681
Change-Id: If4a7ece606985b0e702288d1f3a08a270adcc760
2023-04-25 09:55:53 +00:00
Bartosz Dziewoński d7521704a1 Remove some redundant PHPDoc comments
More could be done, but these are the ones that annoy me the most,
and I'm not willing to do more changes right now.

Change-Id: Ia02af09d631fea191e57da75420f0d2d1ed46c19
2023-04-24 21:11:26 +02:00
jenkins-bot 5c89247be9 Merge "Use new showPendingTakeover OutputPage method" 2023-04-21 13:11:54 +00: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 9cb6f54d3b Merge "Remove the BetaFeatures integration for historical visual diffs" 2023-04-20 09:44:13 +00:00
James D. Forrester bc7db78906 ApiVisualEditor: Support Special:MyLanguage for editIntro param too
Bug: T334855
Follows-Up: I43f461e9f595c364ecdaf2faccbd580fc0df6799
Change-Id: I106941f827d1dd246733d72989bbe9504c221c6f
2023-04-19 19:20:27 +00:00
Bartosz Dziewoński adc0bcdfcd Remove the BetaFeatures integration for historical visual diffs
Bug: T333448
Change-Id: If4f732851a42802b612cef618196c9854e2cf9da
2023-04-18 22:34:05 +02:00
David Lynch 7fb5663188 Don't hook CustomEditor for MobileFrontend requests
Bug: T334263
Change-Id: I7ccf1ba7e8f227c236a6244bfa91a2b8a9fd5765
2023-04-10 22:17:16 +00:00
David Lynch 99336933b3 Use new showPendingTakeover OutputPage method
Depends-On: I8f25f53a05ce0437b0e9f63033cc151213c797bf
Change-Id: Ib9a09514ed3da614ff8a654ae5b84a3a5b2ce886
2023-04-06 17:20:30 -05:00
daniel 96292e770a Don't force the "view" flavor when using stashing!
Bug: T333402
Change-Id: I6fc598cb2309c442a0b5bfe665f6f96c1a6edf85
2023-04-06 12:17:11 +02:00
David Lynch f11a7b4c16 Change name of the editcheck-needreference tag to editcheck-references
Bug: T324733
Change-Id: I435100fb05cb846cb1c0e3d5d5a72a1570ada1f4
2023-03-28 10:14:51 -05:00
David Lynch 31108dda7c Add editcheck tags when VE thinks a reference is needed
Bug: T324733
Change-Id: Iddc57e07133c56000c1338e8d780fa55cc95ab89
2023-03-27 22:48:25 +00:00
Ed Sanders 6e77f963e4 Initial edit check tagging
Bug: T324730
Change-Id: I112015809e55da802e3840fdfeaf16a72e090cb3
2023-03-27 22:47:40 +00:00
C. Scott Ananian 4d8345247a DirectParsoidClient: Remove backward-compatibility workaround
Depends-On: I982e0df706a633b05dcc02b5220b737c19adc401
Change-Id: I316c4f9ddd4483eacb6c88181f0c5edd785cffe5
2023-03-14 21:38:46 +01:00
jenkins-bot 099b8f9968 Merge "Remove visualeditor-enable-experimental and ext.visualEditor.experimental" 2023-03-09 19:33:59 +00:00
C. Scott Ananian 10cb01cdd1 Update DirectParsoidClient to match BCP-47 changes in core
We're trying to avoid passing raw strings around, since they can be
ambiguous specifiers of language.  This patch makes VE compatible
with I982e0df706a633b05dcc02b5220b737c19adc401, with a backward
compatibility workaround which can be removed after
I982e0df706a633b05dcc02b5220b737c19adc401 merges.

The new code also uses slightly more methods of the Language object,
which need to be mocked in a unit test.

Change-Id: I830867d58f8962d6a57be16ce3735e8384f9ac1c
2023-03-08 21:19:21 +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
Ed Sanders 143291b9d0 Doc comment: Replace nbsp with normal space
Change-Id: I5f44f2c3fc80ad6e29eaa8a5aaab2df53614e6f4
2023-01-30 11:09:37 +00:00
Derick Alangi deecb3cdcb Use helper classes from the new namespace
Helper classes have been moved to a dedicated namespace
of their own, this patch references the new namespace.

Depends-On: Ieeb7a0a706a4cb38778f312bfbfe781a1f366d14
Change-Id: I5a2792a3536f6d953905561410f0e4966254ccbe
2023-01-16 14:22:38 +01:00
daniel 3a50a092d9 Catch HttpException early
Catch HttpException from REST helpers, even when they are triggered
already during initialization. This will happen e.g. when the request is
asking for a render key for which the stashed rendering has expired.

Bug: T325310
Change-Id: I9e622b5bb253f5e40fe2b50ff08471beddac9acf
2022-12-15 18:12:37 +00:00
Bartosz Dziewoński ac946cff36 ParsoidClient: Improve return type documentation for Phan
Change-Id: I1aecdc5ab7a21e1ef43ddcec4f4dbea610822493
2022-12-15 00:00:41 +01:00
Bartosz Dziewoński b368d741a1 Don't index VE edit pages
Bug: T319124
Change-Id: Ia738698e93252f884b9045aab5840465d3f0d3d3
2022-12-01 22:26:45 +01:00
daniel f36572432b Use PageRestHelperFactory
This isolates this extension from knowledge about the constructor
signature of the helper classes. Constructore signatures are not stable
interfaces.

Needed-By: Ie430acd0753880d88370bb9f22bb40a0f9ded917
Depends-On: I10af85b2da96568cfffd03867d1cb299645fb371
Change-Id: If1914dbfbefc3501b4d4cef4beb1fae307c36455
2022-11-19 21:21:11 +00:00
jenkins-bot a584e73975 Merge "Remove usage of User::isBlockedGlobally and User::getGlobalBlock" 2022-11-16 15:22:09 +00:00
csimiyu 4bdb4917f0 Remove usage of User::isBlockedGlobally and User::getGlobalBlock
Bug: T318898
Change-Id: I727cda9008866b665395cd0e9969c920dc9c28d6
2022-11-16 17:22:17 +03:00
daniel 7da2df9724 Collect timing metrics for ParsoidClient
We want to be able to measure how backend performance changes
when we switch from RESTbase to calling Parsoid directly.
We expect to see a performance boost, in particular for
html/to/wikitext, since we avoid the network overhead.

Since we will make the switch by wiki, we need to be able to compare
the metric before vs. after for a single wiki. So, this adds the
wiki ID as a prefix to all existing metrics. Once fully rolled out,
we should get rid of the wiki prefix.

We will need to update the dashboard found at this url:
https://grafana.wikimedia.org/d/000000249/edit-stash?orgId=1

Change-Id: Iac9070b27f4b0d25b0e31c9fad38abc08c433a28
2022-11-15 01:15:28 +00:00
daniel ea62ee6b19 Always allow switching to visual when using DirectParsoidClient.
When using DirectParsoidClient, switching should be lossless.

Depends-On: I86c611fa0b717ef619e5ffe550b6c2be49a28c99
Change-Id: Ie30ccbc8c12ce48f481b9f727f28e60d21ee37b9
2022-11-07 21:25:27 +01:00
daniel bb66502100 Use setters to initialize helpers
Use setters instead of constructing fake request data.

Depends-On: I18c8bc6f5aa7c204f0faa56919bfe64026761bd4
Change-Id: I8d778c6e5d0b21f8615e3f330f63675cf51eee94
2022-11-04 13:18:56 +00:00
msantos 72b4f8cdbb Rename HTMLTransform related classes
* Rename imported classes in VE that will be renamed in core
* Re-enable tests that would fail when the core patch is merged

Depends-On: I506f3303ae8f9e4db17299211366bef1558f142c
Change-Id: I59ebeb24fa0de5f10d1501cc0830c7e4805e1003
2022-11-04 11:43:36 +00:00
jenkins-bot 4191ac2a20 Merge "Add HtmlTransformFactory as depdendency for HtmlOutputRendererHelper" 2022-11-01 19:48:39 +00:00
Arlo Breault c1afc62040 Bump requested Parsoid HTML version to 2.6.0
Change-Id: I544d31ca6ea6186a4ddaf7ef25fdea899f454c58
2022-10-20 17:01:17 -04:00
daniel adc017f73f Pick ParsoidClient implementation based on etag.
When receiving HTML from a VE session, process it with the same kind of
ParsoidClient that was originally used to generate the HTML. If we were
to use a different implementation, the ETag wouldn't match, so we would
fail to find the stashed data-parsoid map, and the edit would fail.

Bug: T320704
Change-Id: I3b73431fccacecb4ad88b82f8f5675b1042e03ce
2022-10-20 08:52:20 +00:00
jenkins-bot bf1bacfce1 Merge "Remove AutoConfig setting" 2022-10-14 15:59:07 +00:00
jenkins-bot 669cbcea37 Merge "Use RevisionLookup methods instead of ApiParsoidTrait methods" 2022-10-14 14:16:46 +00:00
Abijeet a9a4d9eab0 Add HtmlTransformFactory as depdendency for HtmlOutputRendererHelper
Bug: T317019
Depends-On: I5e11452f1c531a757e8d860f9c727b5810406bce
Change-Id: Ib4262e95cc333d008b083f74c88919441095f446
2022-10-14 15:47:31 +05:30
daniel 92e52d0bad Remove AutoConfig setting
AutoConfig was used to set VE to call internal REST API endpoints exposed by the parsoid extension.
With DirectParsoidClient available, this is no longer needed.

NOTE: this causes all wikis that do not have a RESTbase backend
configured to start using DirectParsoidClient. This is true in
particular for officewiki and labswiki.

Bug: T320704
Change-Id: Ia4c6184dd75a653c3202ea160b6605335f36f6eb
2022-10-14 10:55:53 +02:00
daniel 07afdba500 Don't try to contact RESTbase directly when in PHP direct mode.
If VE is configured to call parsoid directly in PHP, the client
should not try to fetch HTML from restbase. Doing so will
lead to inconsistencies, and may cause edits to fail.

Bug: T320704
Bug: T320703
Change-Id: I98bfdd305dcd188d91db6a8fe5885156cdeca7db
2022-10-13 11:22:52 +00:00
daniel 35cb550747 Local implementation of ParsoidClient (DirectParsoidClient)
* DirectParsoidClient makes use of parsoid directly for performing
transformations on both wikitext and/or HTML contents.

* Also, it's used to fetch HTML from parsoid's parser cache. Before,
this operation was done via RESTBase but now it's being fetched in
core's parsoid parser cache.

* This patch also enables VE clients to transform HTML to
Wikitext when switching from HTML to source mode on. It
makes use of the HtmlInputTransformHelper to perform this
transformation.

* Now, VE client can make use of core code for switching
between HTML to source mode and back without RESTBase.

Change-Id: I5c7cfcc4086d8da7905897194d8601aa07418b59
2022-10-11 18:34:06 +01:00
Bartosz Dziewoński d2e49b16f7 Use RevisionLookup methods instead of ApiParsoidTrait methods
Part of my secret plan to delete ApiParsoidTrait.

* Inject RevisionLookup into ApiVisualEditor
* Use RevisionLookup::getRevisionById instead of ApiParsoidTrait::getValidRevision
* Use RevisionLookup::getRevisionByTitle instead of ApiParsoidTrait::getLatestRevision
* Use standard MediaWiki error messages
* Delete unused ApiParsoidTrait::getValidRevision
* Delete unused ApiParsoidTrait::getLatestRevision

Depends-On: I7244ee4916fb011fad5faa1d9f837e83f6ac2dc1
Change-Id: I8089c0c516d9dba52e931a0a80740c0361216dbd
2022-10-11 14:54:40 +00:00
Daimona Eaytoy 16ae2da19a build: Update mediawiki/mediawiki-phan-config to 0.12.0
Change-Id: Ib527ec60ac7894d28e330b7080f0e3b0a2b3ddfc
2022-10-08 02:45:31 +02:00
Derick Alangi 1746b76129 ApiVisualEditor: Remove parsedoc VE paction
This VE paction was removed in I90d775dd71d5f5a61d651b63d946ab60a27e2ca3
so this code can be deleted per Bartosz, so this patch removes the code.

NOTE: A merged API test that uses this is also removed along side.

Change-Id: I4ff75df57fd58f508ef7212486e52cb11a7cfb57
2022-10-03 14:12:35 +01:00