This introduces TargetLoader, which manages plugins and RL modules
in a slightly more generic fashion so that Targets themselves don't
have to. This allows us to load all RL modules in one load.php
request, rather than first loading ViewPageTarget which then
loads the other modules.
TargetLoader loads in the bottom queue, so it will be loaded
as part of the main load.php request, but in VPT.init.js we
still have to wait for it with using() because it might not
have arrived yet. This also degrades gracefully on cached pages
where TargetLoader isn't in the bottom queue: it'll be loaded
as a separate request instead, which is suboptimal but no
worse that what we were doing before.
Right now TargetLoader is small enough that it could also be in
the top queue, but in the future we want to add things like
the action=visualeditor API request to it, and mw.Api is
relatively big.
Note: this also makes a breaking change to the plugin API:
plugin callbacks no longer receive the target instance
as a parameter, as they're now executed before the target
has been constructed rather than after. In the long term,
if we want to give plugins access to the target instance,
we could give them the target promise somehow. For now,
I've killed this feature because nothing used it and
the change from a direct object reference to a promise
would have been a breaking change anyway.
Also fixed incorrect documentation index for ve.init.mw.ViewPageTarget.init.
Bug: T53569
Change-Id: Ibfa6abbeaf872ae2aadc6ed9d5beba7473ea441a
New changes:
681804e Only call execCommand() on the surface in Firefox
c9ed5d8 Include editing-core icon pack
792b450 Update OOjs UI to v0.9.2
Change-Id: If75e4993b8c9c7134a69bc5fbffb335beacd8b9e
New changes:
94d3aff [BREAKING CHANGE] ve.utils: Remove ve.indexOf in favour of Array#indexOf
d6dac30 Provide the jquery.client library
5a7276b Follow-up d6dac30a097: fix typo in github URL
d5db4bd Add jquery.client as a base library
5cdd049 Only set a data URI src on inline slugs in Firefox
83edb7f Use equalDomElements in onCopy tests
9a1825a Ignore linebreaks after <!DOCTYPE>s
a077291 Add rowspan and colspan to list of corrupted attributes
6fd56dd Move selection sub-classes to sub-folder
f828889 Convert spaces to tab indentation
ca82723 Add merged cells table to converter examples
5f5d1b0 Add unit tests for ve.dm.Selection sub-classes
ea5515e Fix unbalanced transaction when removing to/from the edge of an inline node
24fe910 Stop bogus emits from handleLinearDelete
f1354ec Update OOjs UI to v0.9.1
1d09278 Localisation updates from https://translatewiki.net.
cf0787d Follow-up 94d3aff4f0c7: fix fatal for classes with .static.matchTagNames unset
Local changes:
Updates to VisualEditor.php and re-generation of extension.json.
Change-Id: Ib1a4521d17ec1c327c9ab5659d7b237ef4397c92
New changes:
8925df7 Transaction tests: Assert specific exception messages
6a583b0 ve.dm.Document#buildNodeTree: Throw an exception for unclosed inline nodes
5d6fd2b Localisation updates from https://translatewiki.net.
57baeb1 Use modifier functions keyed by name for queued modifications in TransactionProcessor
04e7b17 Make transaction processing exception-safe
11c4cb7 Add test for heading1->heading2 content branch conversion
aa8fb76 When replacing e.g. heading1 with heading2, use attribute changes
b2db809 Unbreak cursoring inside table cells
2bbde7d [BREAKING CHANGE] ve.utils: Remove ve.getObjectKeys in favour of Object.keys
Change-Id: Iede19c061732ca73d6f97031c3c89345ac02ac58
Also
* This way we don't need to pass the --config=jsduck.config.json
parameter but can run plain 'jsduck' in Jenkins. Allowing it
to use the standard job template for testing.
* Move processes=0 to jsduck.json.
Workaround for https://github.com/senchalabs/jsduck/issues/525
* Use standard ' - Documentation' suffix, which makes the first
part of the title render in bold (similar to how we do in OOjs
and OOjs UI already).
Change-Id: I6c9c7a1f29df0a72dc8cd0d37a83aaef23068062