New changes:
d1b8a4141 Simplify conversion of images
e614bc70d Update OOUI to v0.27.3
b88f42a59 Refactor document drag/drop to use copy/paste methods
89220c69e Change image diff tests to use 'alt' instead of 'src'
bbb82023d deepEqual->strictEqual in modelRegistry tests
b6524e7a2 ModelRegistry: Prevent double registration
Change-Id: I1d7304091be256323f081810fe4e13cf8495dc0e
New changes:
24e35e428 Factor out synchronous part of updateInvisibleIcon
7be1fc898 FocusableNode: Move getModel teardown check to updateInvisibleIconSync
6fe97c9f1 Performance improvements to compareElementsUnannotated
dfa42c223 Demos: Use SVG with well defined natural size
c2886b57b eslint: Enable qunit/no-assert-equal,no-early-return,no-negated-ok and enforce
4ca5a4088 eslint: Move qunit/resolve-async exceptions inline
eda91bd38 eslint: Move qunit env flag to test config
ce2983e52 Update OOUI to v0.27.2
e333fe327 Localisation updates from https://translatewiki.net.
3cb400800 ce.Surface: afterPaste should always remove ve-attributes
Bug: T196254
Bug: T196380
Bug: T196479
Change-Id: Ie7ce1fefdcede8eb61b722d8308ec9ee9b3bd1e3
It doesn't have a "cancel and do nothing" route to fall back on, so pressing
escape does the non-progressive action, which is to paste-as-wikitext rather
than paste-as-plaintext. Neither of these is really an intuitive outcome.
Change-Id: I786b6fc87e3cdf3bb50898a070a15a353a242848
In Schema:Edit, all action timing durations (ready, loaded, saveAttempt etc.)
are defined as "time since the editor was initialised", which is internally
stored as the timestamp for the "init" action.
The 'init' action itself does not have a timing duratation, but the Edit schema
has a special case for it, definining it as "time since the page was loaded".
In actually, it isn't actually implemented as "time since the page loaded",
and I suspect that as such, this value is probably not used by EventLogging
consumers of the Edit schema. Or, it might be used, but doesn't represent
what the consumers think it does.
Presently, it uses the init time now() - mediaWikiLoadStart, which basically
means the time between the random point at which MediaWiki core JavaScript
finished executing which is quite variable in practice due to the race between
<script async> and browssing parsing/rendering of HTML. That is by design,
and is also why mediaWikiLoadStart is undocumented and internal, and actually
in the process of being removed.
After many iterations on this patch to try and approximate an alternative to
this undocumented variable, I came up with an alternative approach with DLynch
at the Hackathon, which is to simply not record this one timing value, but
preserve the behaviour of all the other timing values exactly as-is.
That is, keep the behaviour of storing `now()` as "init" when the editor
activates, and keep the behaviour of substracting "init" from all other action
times, but only don't report "init" itself to EventLogging (given its value
would be 0, which isn't useful).
Bug: T160315
Change-Id: I778234efe40dde8ff30333339335be1c3910a4e0
New changes:
89c8891eb Update OOUI to v0.27.1
d542afe0f Fix OOUI deprecation warning from tests
962cd9f5c Localisation updates from https://translatewiki.net.
40e8a27b0 Add test coverage for preview mode (optionally)
Change-Id: I6dd76c021ffc4f5b4be9e5e12ddda710b4595c12
We were scrolling to the edited section when we saved the page, and otherwise
reverting scroll position to the top if we just abandoned the edit. This
unifies these cases, so any section-edit which leaves the editor will scroll
to the section being edited. (If section==new and the edit is abandoned, it'll
scroll to the last section on the page.)
Bug: T194631
Change-Id: Ic2aca68b3127c435545644912b96212bcfa6648d
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
If the mediawiki Api pass redirects as true, the response will have
redirect data. ApiResponseCache ignores it now. This commit adds
support for processing that and set in the cache.
Change-Id: If4f8c9b6719c123b31d852eb71f06a79cc0f7917