Easy-Deflate.js and its dependency, Base64, are not needed for editor
activation. Defer loading these modules until the editor has been activated.
Also promisify prepareCacheKey.
Task: T94616
Change-Id: I2e754fc835a5608b27d81117e1fbc9ea97d5744b
New changes:
bcb5b3a Tweak paste target position hack
df3c31b Disable pasteTarget-for-copying hack on iOS
20f294a ve.ui.Toolbar: Allow setting positioning offset from the top of the window
Change-Id: I9063271e36fe8035abc01073c58bca3137b1aecb
The activation timing was always a bit of a lie even pre-TargetLoader,
because the timer only started when the first RL request for VE
modules had loaded. But at least the process it covered was consistent,
which is no longer true with TargetLoader. Now that we start the
request for the HTML together with the RL request, the activation
time might include some, all or none of the HTML request depending
on how fast the RL request was.
This change makes the activation timings more useful by measuring
from the moment the user clicks "edit" to the moment the editor
is done loading, which is what actually matters.
* Moved start of activation timing to VPT init
** For mobile this falls back to when mw.Target#load is called;
we'll have to fix that in MobileFrontend later
* Moved end of activation timing out of TargetEvents#onSurfaceReady
into individual onSurfaceReady handlers
** This is necessary because VPT's onSurfaceReady does quite a lot,
and we want to include the time that takes in our measurements
Change-Id: Ie44f0b839b39a2b3b22dcd86e20f0d1170cb6069
New changes:
eab6467 Add ve.dm.Document#getLength
310a040 ve.ui.Tool: Correct documentation
7a64825 Localisation updates from https://translatewiki.net.
d025658 ve.utils: Add ve.binarySearch() and port ve.dm.MetaList#findItem to it
8400efd demo: Fix another bug showing both LTR and RTL stylesheets
d3168f3 Factor out method which fills paste target with dummy contents for copy
363c804 Remove platform auto-instantiation
67ac409 Improve demo read mode
c2588bd Replace abstract functions that just throw with null
9073b6b Add docs for ve.ui.ContextItem#embeddable
Change-Id: I41b0ec10e0c085290944e8c3293bcad5e956e909
In case of FlaggedRevs, for example, the software is given a loose
string of html with a Bold element, Text nodes, and Anchor element.
Bug: T95989
Change-Id: I3d345677507ffc08feec0f7785e148ac98f19cb7
New changes:
ecbbbd6 Close inspectors when dialog opens
d8868a9 ce.ContentBranchNode: Clean up documentation
c47d7b8 Follow-up Ifa18938: Fix cursoring in nested table cells
483b614 Localisation updates from https://translatewiki.net.
24787de Stop using this.$
b29f8ea ve.ce.Surface: Don't assume ve.compareDocumentOrder() returns exactly 1
3c5442e [BREAKING CHANGE] Generalize ve.compareOffsetPaths() to ve.compareTuples()
8e6ccc4 ce.Surface: Remove unused clone of copied data in #onCopy
950b8d6 Localisation updates from https://translatewiki.net.
8a20669 Follow-up 950b8d6: Add new langs 'ang' & 'gn' to build
48a69ea Show full diff when grunt git-status fails
8e0e1a3 demo: Separate run scripts from load modules
bcac0fd Provide simplified API for getting DOM from a surface
9061708 ve.init.sa.Target: Add jsduck @demo for simplest editor
fb98167 build: Provide concatenated distribution files for libraries which don't
053ec12 Create minimal demo
68da78e build: Fix eg-iframe.html
12ef310 Move @example demo to ve.init.sa.Platform
8c5917f Update OOjs UI to v0.9.8
Change-Id: I31eb5cd4b0c7e5cb0693c58b6a139beca921d98b
When the dialog opens make sure the first input is focused.
** Depends on OOUI change I9f1e908e0d **
Bug: T95450
Change-Id: I789bcf98ada7c3e2b9544426546775f65bab0edd
/_preconnect is a special end-point that is handled by Varnish with an HTTP
204, sparing the RESTBase backend. See I95a716592.
Change-Id: I0c0430014768d7a1c6673d078569d0cf4062d338
Per Timo, this avoids us having pointless code that is never
executed, and the replacement notification to the user (that
ve.blah.UnicornAnnotation.foo is null and not a method) is
sufficiently clear that the issue lies in the lack of existence
of the ve.blah.UnicornAnnotation#foo method.
Only ones in this repo appear to be in ve.init.mw.ApiResponseCache.
Bug: T54482
Change-Id: If44b8d63b8e7b2a5c289fe7278ad54e722b185fa
Set up the surface widget as inside the reference dialog, and let
the citation action notify the template dialog the name of the
dialog it is in. If the tool was executed from within the reference
dialog, skip over creating a reference and instead insert the
citation as a template.
* Depends on ve-core fix I709eeb0de475 *
Bug: T94621
Change-Id: I4871f8c0afe190117cc90e88227b37f292a71e20
New changes:
10b1ae6 Skip ignoreChildren nodes in getAnnotatedRangeFromSelection
05c4dab Add tests for TableAction#create
48f71d1 Encode as few characters in comments as possible
56ce872 Add an inDialog config option in ve.ui.Surface
dd3eabf Add tests for TableAction#insert
874ed86 Add tests for TableAction#mergeCells
9114d9e Follow-up I23d37e3d: Remove unused converter method
12eda5d Test TableAction#merge when full rows/cols selected
06bcc9e Add test for TableAction#delete
2ac1ae1 Add tests for TableAction#changeStyle and TableAction#caption
915dd75 ve.utils: Fix bug in batchSplice polyfill
97e9cce Test SurfaceFragment#expandLinearSelection( 'annotation' ...
f6a63fe Localisation updates from https://translatewiki.net.
Change-Id: I47aadba81b0ea14bf241e7c6658c9c900b8cabed
Keep VisualEditor load times snappy by eagerly establishing a connection with
RESTBase via a beacon request, which is deferred until after window.onload /
setTimeout to ensure it does not slow down the loading of the page.
Task: T94784
Change-Id: I19fd2ef6beffe1c4c4f05c2716da079b49e88b95
MWExtensionNode:
* Inherit from LeafNode at the top level. Inline and block only
differ in CE where inline has isContent set.
MWAlienExtensionNode:
* Inhert from MW(Inline|Block)ExtensionNode respectively. Both
mixin MWAlienExtensionNode.
Bonus:
* Bring in paragraph unwrapping on inline nodes from MWMathNode
Bug: T93712
Change-Id: Ib04234f740cf1f27c861d8b3cfeea5e323b94678
If70ff601 didn't really fix anything. The only reason you'd want this data is
to distinguish between mobile and desktop data, but it just set the value to
the desktop version always...
Bug: T95432
Change-Id: I76722e3ad8b7dbe644374b24093bec696f27f48c
Also fix up logic duplicated between ExtensionInspector
and LiveExtensionInspector.
BREAKING CHANGE:
* nodeModel property no longer exists, use NodeInspector's modelClasses
property, which is an array.
Bug: T93592
Change-Id: Ib0131c9485a903d73b770090bf8a938056782ba3
If we don't explicitly pass the revid of the new revision we
just created, ApiParse will be lazy and get the latest revid
from the slave DB, which will probably be out of date.
Bug: T95466
Bug: T94367
Change-Id: I2149c7a710075eff9292d0c25ca40d10b325ad44
New changes:
4c1a5ea [BREAKING CHANGE] Give the converter a 'fromClipboard' mode
d855043 Add core tests for annotation merging
fae083e Localisation updates from https://translatewiki.net.
11710e9 Encode and decode HTML entities in comment nodes
Local changes:
* Update getModelFromDom signature
Change-Id: Ida1b9b33d5e25e7d467ef16dd2240442270b9d32
New changes:
d54822f fixupInsertion: Don't attempt to call .getClonedElement() on the DocumentNode
2ad6afe gitignore: Update test-coverage to coverage (follows-up 04fb668)
a2b79e5 build: Run lint before build in grunt-test
Change-Id: I11dd1a7ba93207c70c489dc94b932ad9ca8a5fb1