Version 1.3.13 - #614
Merged
Merged
Version 1.3.13#614
Conversation
Striking a word in Safari also struck the word before it. Chrome was
unaffected, and a double-click was unaffected in both, which is what kept
it hidden.
applyStrikeThroughToSelection collects spans with intersectsNode(), which
is true for a span the range merely TOUCHES — and the engines anchor a
drag differently when it starts on a word's first letter:
WebKit selected "charlie" anchored in text("bravo ")@6 <- previous
Chromium selected "charlie" anchored in text("charlie ")@0
So in WebKit the previous span held the range's start boundary while
contributing no characters. The leading-space trim could not notice: the
selected string is "charlie" with no leading space, because the space sits
BEFORE the anchor, inside the previous span. That trim handles a drag that
runs INTO the previous word's trailing space — a different case, still
working.
A span now has to contribute text: clamp the selection to the span and ask
whether any non-whitespace remains. Only like-for-like boundary
comparisons (START_TO_START, END_TO_END), which are unambiguous, with a
fallback to the old inclusive behaviour if the boundaries are ever
unexpected.
Measured as a matrix in both engines. Before: WebKit wrong on all three
drag variants, right on double-click; Chromium right on all four. After:
all eight correct, Chromium unchanged throughout — an engine-specific
anchoring difference should not alter the other engine. The spec runs
both, and defanged it fails ONLY the WebKit case, on the drag-from-the-
first-letter assertion.
Not a recent regression as far as I can tell: editor-audio-cut.js has not
changed since v1.3.12, and this rests on WebKit's anchoring rather than
anything new.
Two things fixed alongside:
- editor-audio-cut.js kept its 1.3.9 cache stamp while its contents
changed, so Safari served the old file and the fix appeared not to work.
Second time today (the first was #602's save.js); bumping belongs at the
moment a file changes, not at release, or local testing is against a
stale file and can mislead in either direction.
- #604's "a slow host does not delay the panel" asserted a 900ms render
against a 1200ms host. Too tight: it failed in a loaded gate run AND in
isolation, so it had been passing by luck. The host now stalls 6000ms
against a 3000ms window — the point is that the panel does not wait, not
that it renders within any particular millisecond.
Fixes #613
Gate: 105 unit, 290 e2e, 1 skipped, plus the known clipboard flake (#606).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Seven fixes, two of them Safari-only, and one change every existing user will see.
index.htmlgets its own intro with no API to call.media-posters.js.~~word~~in Markdown,<w:strike/>in DOCX) and drop them where it cannot (plain text), since an unmarked struck word reads as speech that was kept.intersectsNodecounted even though it contributed no characters.Fixes #602, #603, #604, #605, #611, #612, #613
Gate: 105 unit, 290 e2e passed, 1 skipped, plus the known clipboard flake (#606).