This check currently requires LCStore, MessageCache, and (sometimes)
Database to involved to check whether the message and/or local override
exist.
Using `useDatabase(false)` should take away most of this cost
by no longer performing the multiple Memcached/Database roundtrips,
and leaving only a cheap in-process check on LCStore.
Bug: T221294
Change-Id: I6bf47cd84cdf9bfdd63bee0a613425bb79595e4f
The latter is being deprecated as of I74a9535918e because it was
almost never used intentionally. When module objects are created,
the appropriate context object is injected via setConfig. That is
the one the modules should use.
The context object has a reference to the ResourceLoader object
(although unsure why actually), but shouldn't be used for this
purpose as there could be a 1 to many relationships further down
towards modules.
Change-Id: Icab0f12141a46476618f984d4548a82fdae33275
For a while now, the 'ResourceLoaderRegisterModules' hook is
the last oppertunity to register modules. Therefore, the
isModuleRegistered() check covers everything it needs to.
In addition, at this point modifications to ResourceModules would
be ignored even if it did contain additional entries.
Change-Id: I77714fca0f561f5817a45dd3be5fd8d3ba42f969
These do not vary by user or page, and can thus be loaded asynchronously
via the startup module, rather than blocking rendering and fetching
of modules on all pages.
In a future change, it might be better to go a step further and bundle
these with a module so that they only load as-needed instead of still
on all page views, but this should be an improvement nonetheless.
Change-Id: Icae3712ac5546a90bc7ffd787b0f3285dff6a26f
Remove overkill $VisualEditorSerializationCacheTimeout config setting
and just use a simple constant instead (convention over configuration).
Bug: T203786
Change-Id: I94424088a03a3262fcea30132883a612465c546e
When this code was written in 2013 (1a5bdd5bd2),
the langlinks API did not have a way to return the language names (autonyms).
This has been added in 2014 (4ba3a9aea96ee21c035c69999be23580e23f4e0a).
Change-Id: I70edb846d94b1108b079caf5915532234190da8f
Using DerivativeContext also makes the code easier to read.
getContext() returns an IContextSource, in this interface has no
setRequest() method and this can fail for some kinds of IContextSource.
$view is a ContextSource, which implements setContext().
This also allows us pass in a new context with the right request object,
and also to set the title so we don't have different titles
on $view and the main context.
Change-Id: Ia575cd6163defeb423a542e342034cac5eb6108c
Generating the templatesUsed list is relative slow, and is only
used in an obscure part of the editor, so only generate it when
needed.
Bug: T209078
Change-Id: I1cecdad65b80c4c9b1746e752ea4b41bc0fc0037
Red-link metadata was added to Parsoid 18 months ago.
On long pages evaluating this information is very slow
(hundreds of milliseconds) and completely redundant.
Bug: T64803
Bug: T209078
Change-Id: I5b6c6da588301ed59fb21e1ce930f5b72db48e67
The following sniffs are failing and were disabled:
* MediaWiki.Usage.DeprecatedGlobalVariables.Deprecated$wgParser
* MediaWiki.Usage.DeprecatedGlobalVariables.Deprecated$wgTitle
The following sniffs was renamed:
* MediaWiki.VariableAnalysis.ForbiddenGlobalVariables.ForbiddenGlobal$wgTitle
Change-Id: Iabe2a787bae7fe299bed548c0097613ff5493a0d
onDiffViewHeader() method returns a void per "return;" which is valid
from PHP 7.1 and above. This method doesn't return bool per it's definition.
Change-Id: Ifee65dfce3af104d89ba3c91602501da6bbbc20c
Show log extract if the user is sitewide blocked or is partially
blocked and not allowed to edit their user page or user talk page.
The check on the block type is being added to keep it in sync with
what it is currently being done on core.
Bug: T203171
Change-Id: I00ebb5cbcb1ec14e778c2936187cbcebc0829163
* Also make sure block notices have type 'block'.
* Remove old flag for tracking since we'll be using one
from core
Change-Id: I4b66e73c8a4c4dd7bffd7c0239b1d5ec06eed12f
Depends-On: I6bd1c95548616677e1f72ba6bcfc6f2b551c1ca6
When an edit notice is passed through from the API, allow
a type to be specified, and specify type 'block' if the
notice is a block notice.
If VisualEditorTrackBlockNotices config is true, track
when a message with type 'block' is shown.
Bug: T209633
Change-Id: If5fecc2c2c1c39f4b7245b9a215e1120c93b2b22
Tracking is behind $VisualEditorTrackBlockNotices config flag
which is set to false by default. Additional data will be logged
into a different bucket on the client and both metrics will be
considered with their known limitations.
The reason behind this is to get an idea on how frequently blocked
users attempt to edit a page. Similar tracking is being added to
MobileFrontend and mediawiki/core.
Bug: T201718
Change-Id: I51576276b97be0716c2c22348eaa756ffb04fe50
Our behavior is now closer to the core wikitext editor.
This results in two minor changes:
* `<li>` elements are now correctly wrapped in an `<ul>`.
* "View full log" link is now only shown if there are more entries.
Change-Id: I3f30446fca5cab83155ce26ee4e5ab213fc5847a
New changes:
a2dff3032 DesktopContext: Don't rely on selection#getDocument
4c1cc1640 Basic test for WindowAction open/close
0ab1e754c Update OOUI to v0.29.3
a8d96b850 Localisation updates from https://translatewiki.net.
b4fa3d230 ResizableNode: Add test for updateSizeLabel
caf188be0 TableNode: Test basic mouse events
Bug: T208228
Bug: T208382
Bug: T208515
Change-Id: I0db7b5e874ad6b23dad1f29bb1a58e126fea7a48
New changes:
0e923fe1b Use initClass in test class
900962720 Add ve.deepFreeze for detecting inadvertent data modification during testing
0761cd90c Localisation updates from https://translatewiki.net.
0e44545b7 Update .gitignore
82b6b80bb Use consistent method for finding nearest cursor offset
0b604de30 ve.ce.TableArrowKeyDownHandler.test: Remove eww gross FIXME
Bug: T202359
Change-Id: I73c46edfbf66a0c76bc719010c017ef71670931b
New changes:
7c9fe89b8 Simplify ve.test.utils.runSurfaceHandleSpecialKeyTest API
0e3c75e66 Add more tests to LinearArrowKeyDownHandler
058362830 LinearArrowKeyDownHandler: Test Selection#extend fallback
8c6617d90 Keydown test refactor
91a909d63 Assert defaultPrevented state in KeyDown tests
003dacf3b LinearDeleteKeyDownHandler: Test shift+delete
1872158c5 LinearDeleteKeyDownHandler: Test delete next to link
b2af2a2c3 LinearEnterKeyDownHandler: Add more tests
4e5efa956 KeyDownTests: Remove unused constructor calls for all static classes
1cafb7328 KeyDown tests: Add tests for missing cases to cover tab/escape/enter
58af8d497 Add tests for ve.ce.AnnotationFactory/NodeFactory
617bc24a4 Delete unused ve.ce.modelChangeFromContentChange
50704fa1c Keydown tests: run asynchronously
af9a01b97 Use native promises instead of jQuery promises
df212669a Localisation updates from https://translatewiki.net.
f6af901dc Fix test in Chrome 70
9cc6dae7e Remove broken checks for DM code coverage
ce3a9199a LinearEnterKeyDownHandler: Add test for edge case
0a9dd3636 Remove false coverage of TableNode/TableSelection code
16679a3c0 Remove setupToolbar from DummyTarget to avoid false code coverage
7ac88df77 Basic tests for getClientRects in ve.ce.Selection and FocusableNode
78f14ac1f ve.ce.Selection: Add getDirection tests
7ec7efff0 KeyDown tests: Remove unnecessary setTimeout
26e022d23 KeyDown tests: Un-nest functions
df1e0af6c KeyDown tests: rename defer -> then
f03a9f90b Allow ES6 in tests
0ee55022b ES6 eslint follow-up
6c288b44f ve.ce.Surface tests: Trim when asserting expected text
Local changes.
Bug: T207077
Bug: T207078
Bug: T207079
Bug: T207080
Bug: T207083
Bug: T207654
Change-Id: I2e1f664d6f657e2ac26a271f401dc790c2a8b193
Whenever wikitext content is inserted by the hook `EditFormPreloadText`,
it is always parsed to visual editor markup even when in wikitext mode.
Bug: T206838
Change-Id: I56f0fb9d4e1519af01155c35d4d0068076de4600
New changes:
3931cc33a Update OOUI to v0.29.1
5bcab0073 Move node-specific code into rebaser/
8aa80d88b Remove ES6 support for async/await
2536870f9 Separate files for protocol and transport server
b443b7a4f Update OOUI to v0.29.2
70b3ec210 Minor cleanup of ve.ui.MediaSizeWidget
Bug: T206236
Change-Id: Id3bbcd1a9ccb1563e4feb3572aa8f51932677693
New changes:
a273ba69c [BREAKING CHANGE] Implement a SourceConverter
Local changes:
* Use SourceConverter
* Handle `this.doc` being a string in source mode now
Bug: T203114
Bug: T203156
Change-Id: I7bce7b57668e0c1dd511803a54178ae69694a86d
New changes:
fa5d35054 Only re-use session token if docname matches
58d7cd280 Localisation updates from https://translatewiki.net.
d0716d8e7 Update files generated with new l10n language 'my'
2cc7a4423 Create unit tests for sequences
873fdd01e Upstream horizontalRule sequence and fix command
Local changes:
* Register unit test file for sequences
* Remove duplicate horizontal rule sequence
Change-Id: Ibc65cf5c086428bb0d13c8e2f2de5819e1e23d43
New changes:
cd6932096 Fix rebaser dependecies
bdcbf8f81 Rebaser: make the server synchronous again
52e6873b1 Cleanup rebaser
31ef4c5ec Handle authentication and reconnection
22d6feea3 Squash Changes to use fewer transactions
4d93f0819 Fix confusion between #getSetupProcess and #getReadyProcess
8d0ab0587 Localisation updates from https://translatewiki.net.
Bug: T185745
Bug: T185944
Bug: T188026
Change-Id: Ie33d3dd4746c9c91fe676f140f416af72ac218b0
Replicate the EditPage#showIntro segment which shows a warning and the
deletion log if attempting to recreate an already-deleted page.
Bug: T199087
Change-Id: I3c680e712c010dc614710b3aa9f41c8ec17999a7
I can't see where this would return a string, but users are reporting that
they're getting that at times…
Bug: T193718
Change-Id: I6b635bacdd59431568bc5c679e455f67cb764df0
New changes:
aa8b2d3da rebaser: Clarify document name is optional
eb4955b84 $.isEmptyObject -> ve.isEmptyObject
681fa50e1 Don't use $.isNumeric in DM
0c8483d8a Avoid more jQuery in DM
a9f6bef78 Replace $.extend with ve.extendObject
34eb4311d Initialise socketIO twice to avoid query cache
b70cb7520 Teardown synchronizer
8f829895f Use passive event listeners
f9e84fa8b Localisation updates from https://translatewiki.net.
db24bb81c ve.ce.FocusableNode: Fix minor code issues
ae981404e Rebaser: show connect/disconnect in the server console
0118e89c2 Show progress bar while connecting to rebase server
160bbe5fd Use new name for 'comment' icon, 'speechBubble'
fb549248a Remove unused APIResults* objects
5daa71d7e Remove IE9 support comment
Bug: T178371
Bug: T195111
Depends-On: I186ebd9d63299d828692a745b62fbc4314a4ed4e
Change-Id: Ie0fee3d4cc069383b8cb48e7d6c2ff520fedb590
"ORIGIN_USER_SITEWIDE" indicates "sitewide module generated from
user-editable files, like MediaWiki:Common.js". In this case the
JavaScript generated by this module is not directly editably by wiki
users. It includes localisation messages editable by users, but that
is considered safe because we correctly escape them when including
them in the JavaScript code.
Without this change, VisualEditor would no longer load in safe mode
(T185303) because this module would be missing.
Bug: T185303
Change-Id: I6d097ccbf1dc2462843219adcf96bf8313e30289
Wikis with a local link over-ride configured will need to do so here
for the new message `visualeditor-sourcefeedback-link`; wikis with a
remote link configured will need to update their configuration ahead
of this being deployed, setting $wgVisualEditorSourceFeedbackTitle.
Bug: T157953
Change-Id: Iea7ad8328b03f69e01d7c67ca1ddbb7ae7906288
Also move the maintenane script to a name that makes
MediaWiki.Files.ClassMatchesFilename.NotMatch not error,
and use the more restrictive licence tag usage for
MediaWiki.Commenting.LicenseComment.InvalidLicenseTag.
Change-Id: Ifa5518cd590ae83c6fd76f1dbb5a2ce40de4b119
It doesn't make sense to have a default action here, per Esanders.
Blocks I4a2505cfc8e86e73e46d40acffbf3cd8803458e2.
Change-Id: I02259a5117f3539593ccd09cfd4c8271e8464388
Core change I8d825eb0 begins the process of changing core database
tables from using xx_user and xx_user_text fields to using xx_actor.
This updates the extension to continue to function during and after the
transition.
Bug: T167246
Change-Id: Iccbd9ee2edaae5d779077dddc6fe449ec8428e99
These messages are used for the checkboxes when saving the page.
But we don't actually use the data from this module; we get them
from the 'action=visualeditor' API in the 'checkboxesMessages'
property. This is necessary because MediaWiki extensions can add
extra checkboxes (e.g. FlaggedRevs), so a static list won't do.
These are unused since 393807462e
(2013) and it is confusing to keep them here.
Change-Id: Ia4ed2142292c3a22623f498c7f43ce590f167709
New changes:
7551f6c66 [BREAKING CHANGE] Rename class ve.dm.IndexValueStore->ve.dm.HashValueStore
Local changes:
Follow-through rename of IndexValueStore->HashValueStore
Bug: T188900
Change-Id: If60d0c637fe92f0e7afe916c064fafb17980d063
In e19092240 the ability to configure the 2017WTE to be "graduated" out of
beta and available to all. However, for a week of config cut-over, this is
re-using a config switch which previously gated the beta feature, and so
will be immediately available to all users until we put it back under beta
when Ie13215bd is deployed. Oops.
Change-Id: I1bc556849a6eb1e895f03412a9cb78002c8a0aee
9770c806 missed updating this call; update it to include bodyOnly parameter.
Bug: T186884
Bug: T186934
Change-Id: I616101f6bf3bd0b3af2236207c2ac217988d1724
Principal code is in includes/*.php with the file named the same as the class it
contains. The maintenance script is moved to maintenance/ for clarity.
Change-Id: Icb4cdffb1bd4716e14f883d667def96671b42992