Closed
Bug 1462257
Opened 7 years ago
Closed 7 years ago
Microsoft Pinyin Chinese IME - can't delete the last letter with backspace
Categories
(Core :: DOM: UI Events & Focus Handling, defect, P2)
Tracking
()
VERIFIED
FIXED
mozilla63
Tracking | Status | |
---|---|---|
firefox-esr52 | --- | unaffected |
firefox-esr60 | --- | unaffected |
firefox61 | --- | wontfix |
firefox62 | + | verified |
firefox63 | --- | verified |
People
(Reporter: ershiwo, Assigned: masayuki)
References
Details
(Keywords: inputmethod, regression)
Attachments
(2 files)
146.41 KB,
image/gif
|
Details | |
59 bytes,
text/x-review-board-request
|
m_kato
:
review+
lizzard
:
approval-mozilla-beta+
|
Details |
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0
Build ID: 20180514150347
Steps to reproduce:
Input some Chinese words in text area(or any other place) with Microsoft Pinyin in Windows 10 1803, backspace the incorrect letters.
Actual results:
The last letter won't be deleted and it was in selected state.
Expected results:
There is nothing after delete all incorrect pinyin letters.
Updated•7 years ago
|
Has STR: --- → yes
Component: Untriaged → Widget: Win32
Keywords: inputmethod
Product: Firefox → Core
Summary: Chinese IME compatibility issue → Microsoft Pinyin Chinese IME - can't delete the last letter with backspace
Updated•7 years ago
|
Status: UNCONFIRMED → NEW
Ever confirmed: true
Assignee | ||
Comment 1•7 years ago
|
||
Odd, I cannot reproduce this bug.
Comment 2•7 years ago
|
||
This seems to be regression by bug 1456381. And I can reproduce this on both x86 (VM) and x64 using Microsoft Pinyin. Last backspace selects that character instead of deleting character.
Blocks: 1456381
status-firefox61:
--- → affected
status-firefox62:
--- → affected
status-firefox63:
--- → affected
Keywords: regression
Assignee | ||
Comment 3•7 years ago
|
||
Could you take a look or attach a log of "MOZ_LOG=nsTextStoreWidgets:5,sync"?
Flags: needinfo?(m_kato)
Assignee | ||
Comment 4•7 years ago
|
||
Ah, after I restart my computer, I reproduce this bug.
Flags: needinfo?(m_kato)
Assignee | ||
Comment 5•7 years ago
|
||
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 Locking (TS_LF_READWRITE) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::OnEndComposition(pComposition=0x0000029476172930), mComposition={ mView=0x0000029476172930, mString="n" }
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::RecordCompositionEndAction(), mComposition={ mView=0x0000029476172930, mString="n" }
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::MaybeDispatchKeyboardEventAsProcessedByIME(), does nothing because not necessary to dispatch keyboard event
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::SelectionForTSFRef(): acpStart=1, acpEnd=1 (length=0), reverted=false
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::ContentForTSFRef(): mContentForTSF={ mText="n" (Length()=1), mLastCompositionString="n" (Length()=1), mMinTextModifiedOffset=4294967295 }
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::RecordCompositionEndAction(), succeeded
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::OnEndComposition(), succeeded
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::OnStartComposition(pComposition=0x000002940F02EF30, pfOk=0x000000A0D03FCA10), mComposition.mView=0x0000000000000000
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::RecordCompositionStartAction(aComposition=0x000002940F02EF30, aRange=0x000002940F02EDB8, aPreserveSelection=false), mComposition.mView=0x0000000000000000
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::RecordCompositionStartAction(aComposition=0x000002940F02EF30, aStart=0, aLength=1, aPreserveSelection=false), mComposition.mView=0x0000000000000000
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::SelectionForTSFRef(): acpStart=1, acpEnd=1 (length=0), reverted=false
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::ContentForTSFRef(): mContentForTSF={ mText="n" (Length()=1), mLastCompositionString="n" (Length()=1), mMinTextModifiedOffset=4294967295 }
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::MaybeDispatchKeyboardEventAsProcessedByIME(), does nothing because not necessary to dispatch keyboard event
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::SelectionForTSFRef(): acpStart=1, acpEnd=1 (length=0), reverted=false
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::RecordCompositionStartAction() succeeded: mComposition={ mStart=0, mString.Length()=1, mSelectionForTSF={ acpStart=0, acpEnd=1, style.ase=TS_AE_END, style.fInterimChar=false } }
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::OnStartComposition() succeeded
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::SetText(dwFlags=not-specified, acpStart=0, acpEnd=1, pchText=0x00007FF872DEDD1C "", cch=0, pChange=0x000000A0D03FCA48), mComposition.IsComposing()=true
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::SetSelectionInternal(pSelection={ acpStart=0, acpEnd=1, style={ ase=TS_AE_END, fInterimChar=false} }, aDispatchCompositionChangeEvent=false), mComposition.IsComposing()=true
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::SelectionForTSFRef(): acpStart=0, acpEnd=1 (length=1), reverted=false
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::MaybeDispatchKeyboardEventAsProcessedByIME(), does nothing because not necessary to dispatch keyboard event
> [Parent 29116: Main Thread]: W/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::SetSelectionInternal() Succeeded but did nothing because the selection range isn't changing
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::InsertTextAtSelectionInternal(aInsertStr="", aTextChange=0x000000A0D03FCA48), IsComposing=true
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::SelectionForTSFRef(): acpStart=0, acpEnd=1 (length=1), reverted=false
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::ContentForTSFRef(): mContentForTSF={ mText="n" (Length()=1), mLastCompositionString="n" (Length()=1), mMinTextModifiedOffset=4294967295 }
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::MaybeDispatchKeyboardEventAsProcessedByIME(), does nothing because not necessary to dispatch keyboard event
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D270 TSFTextStore::Content::ReplaceTextWith(aStart=0, aLength=1, aReplaceString=""), mComposition={ mStart=0, mString="" }, mLastCompositionString="n", mMinTextModifiedOffset=4294967295, firstDifferentOffset=0
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::InsertTextAtSelectionInternal() succeeded: mWidget=0x000002947639C000, mWidget->Destroyed()=false, aTextChange={ acpStart=0, acpOldEnd=1, acpNewEnd=0 }
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::SetText() succeeded: pChange={ acpStart=0, acpOldEnd=1, acpNewEnd=0 }
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::OnUpdateComposition(pComposition=0x000002940F02EF30, pRangeNew=0x0000000000000000), mComposition.mView=0x000002940F02EF30
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::MaybeDispatchKeyboardEventAsProcessedByIME(), does nothing because not necessary to dispatch keyboard event
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::OnUpdateComposition() succeeded but not complete
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::OnEndComposition(pComposition=0x000002940F02EF30), mComposition={ mView=0x000002940F02EF30, mString="" }
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::RecordCompositionEndAction(), mComposition={ mView=0x000002940F02EF30, mString="" }
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::MaybeDispatchKeyboardEventAsProcessedByIME(), does nothing because not necessary to dispatch keyboard event
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::SelectionForTSFRef(): acpStart=0, acpEnd=0 (length=0), reverted=false
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::ContentForTSFRef(): mContentForTSF={ mText="" (Length()=0), mLastCompositionString="n" (Length()=1), mMinTextModifiedOffset=0 }
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::RecordCompositionEndAction(), succeeded
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::OnEndComposition(), succeeded
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::SetSelection(ulCount=1, pSelection=000000A0D03FCA30 { acpStart=0, acpEnd=0, style={ ase=TS_AE_END, fInterimChar=false } }), mComposition.IsComposing()=false
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::SetSelectionInternal(pSelection={ acpStart=0, acpEnd=0, style={ ase=TS_AE_END, fInterimChar=false} }, aDispatchCompositionChangeEvent=true), mComposition.IsComposing()=false
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::SelectionForTSFRef(): acpStart=0, acpEnd=0 (length=0), reverted=false
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::MaybeDispatchKeyboardEventAsProcessedByIME(), does nothing because not necessary to dispatch keyboard event
> [Parent 29116: Main Thread]: W/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::SetSelectionInternal() Succeeded but did nothing because the selection range isn't changing
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::SetSelection() succeeded
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::GetSelection(ulIndex=4294967295, ulCount=1, pSelection=0x000000A0D03FD760, pcFetched=0x000000A0D03FD8D8)
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::SelectionForTSFRef(): acpStart=0, acpEnd=0 (length=0), reverted=false
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::GetSelection() succeeded, acpStart=0, acpEnd=0 (length=0), reverted=false
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::GetSelection(ulIndex=4294967295, ulCount=1, pSelection=0x000000A0D03FD730, pcFetched=0x000000A0D03FD884)
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::SelectionForTSFRef(): acpStart=0, acpEnd=0 (length=0), reverted=false
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::GetSelection() succeeded, acpStart=0, acpEnd=0 (length=0), reverted=false
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::GetActiveView(pvcView=0x000000A0D03FD778)
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::GetActiveView() succeeded: *pvcView=1
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::GetScreenExt(vcView=1, prc=0x000000A0D03FD7E0)
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::GetScreenExtInternal()
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::GetScreenExtInternal() succeeded: aScreenExt={ left=990, top=482, right=1496, bottom=503 }
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::GetScreenExt() succeeded: *prc={ left=990, top=482, right=1496, bottom=503}
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::GetTextExt(vcView=1, acpStart=0, acpEnd=0, prc=0x000000A0D03FD7F0, pfClipped=0x000000A0D03FD7B0), IsHandlingComposition()=true, mContentForTSF={ MinOffsetOfLayoutChanged()=0, LatestCompositionStartOffset()=0, LatestCompositionEndOffset()=0 }, mComposition= { IsComposing()=false, mStart=0, EndOffset()=0 }, mDeferNotifyingTSF=false, mWaitingQueryLayout=false
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::SelectionForTSFRef(): acpStart=0, acpEnd=0 (length=0), reverted=false
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::GetTextExt() hacked the queried range for not returning TS_E_NOLAYOUT, newvalues are: acpStart=0, acpEnd=0
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::GetScreenExtInternal()
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::GetScreenExtInternal() succeeded: aScreenExt={ left=990, top=482, right=1496, bottom=503 }
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::GetTextExt() succeeded: *prc={ left=992, top=484, right=1000, bottom=501 }, *pfClipped=false
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 Unlocked (TS_LF_READWRITE) <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::FlushPendingActions() flushing Type::eCompositionEnd={ mData="n" }
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::FlushPendingActions(), dispatching compositioncommit event...
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::FlushPendingActions() flushing Type::eCompositionStart={ mSelectionStart=0, mSelectionLength=1 }, mDestroyed=false
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::FlushPendingActions() dispatching compositionstart event...
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::FlushPendingActions() flushing Type::eCompositionEnd={ mData="" }
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::FlushPendingActions(), dispatching compositioncommit event...
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::MaybeFlushPendingNotifications(), putting off flushing pending notifications due to being dispatching events...
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::RequestLock() succeeded: *phrSession=S_OK
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::RequestLock(dwLockFlags=TS_LF_READ | TS_LF_SYNC, phrSession=0x000000A0D03FE788), mLock=not-specified, mDestroyed=false
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 Locking (TS_LF_READ) >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::GetSelection(ulIndex=4294967295, ulCount=1, pSelection=0x000000A0D03FE250, pcFetched=0x000000A0D03FE408)
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::SelectionForTSFRef(): acpStart=0, acpEnd=0 (length=0), reverted=false
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::GetSelection() succeeded, acpStart=0, acpEnd=0 (length=0), reverted=false
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 Unlocked (TS_LF_READ) <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
> [Parent 29116: Main Thread]: D/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::MaybeFlushPendingNotifications(), putting off flushing pending notifications due to being dispatching events...
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::RequestLock() succeeded: *phrSession=S_OK
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::GetStatus(pdcs=0x000000A0D03FD280)
> [Parent 29116: Main Thread]: I/nsTextStoreWidgets 0x000002940B80D190 TSFTextStore::RequestLock(dwLockFlags=TS_LF_READWRITE, phrSession=0x000000A0D03FD2C0), mLock=not-specified, mDestroyed=false
Tricky behavior... When I remove last 1 character of composition string, MS Pinyin commits composition with the last character. Then, new composition is started and it tries to replace the last character with empty string. We must fail handling the last odd composition.
Assignee | ||
Comment 6•7 years ago
|
||
Oh... This is a bug of TextComposition::DispatchCompositionEvent(). It does not dispatch eCompositionChange event from eCompositionCommit event when commit string is empty and it's fired immediately after eCompositionStart.
Assignee: nobody → masayuki
Status: NEW → ASSIGNED
Component: Widget: Win32 → Event Handling
Updated•7 years ago
|
status-firefox-esr52:
--- → unaffected
status-firefox-esr60:
--- → unaffected
tracking-firefox62:
--- → ?
Assignee | ||
Comment 7•7 years ago
|
||
Updated•7 years ago
|
Priority: -- → P2
Assignee | ||
Comment 8•7 years ago
|
||
Assignee | ||
Comment 9•7 years ago
|
||
MS Wubi, MS ChangJie and MS Quick behave same as MS Pinyin.
According to Nightly's telemetry, 55% of Simplified Chinese language users use MS Pinyin or MS Wubi, and 20% of Traditional Chinese language users use MS ChangJie or MS Quick.
Assignee | ||
Comment 10•7 years ago
|
||
Comment hidden (mozreview-request) |
Comment 12•7 years ago
|
||
mozreview-review |
Comment on attachment 8991557 [details]
Bug 1462257 - TextComposition should dispatch eCompositionChange event when eCompositionCommit is being fired immediately after eCompositionStart
https://reviewboard.mozilla.org/r/256476/#review263610
Attachment #8991557 -
Flags: review?(m_kato) → review+
Comment 13•7 years ago
|
||
Pushed by masayuki@d-toybox.com:
https://hg.mozilla.org/integration/autoland/rev/37e818a03a1b
TextComposition should dispatch eCompositionChange event when eCompositionCommit is being fired immediately after eCompositionStart r=m_kato
Assignee | ||
Comment 14•7 years ago
|
||
Comment on attachment 8991557 [details]
Bug 1462257 - TextComposition should dispatch eCompositionChange event when eCompositionCommit is being fired immediately after eCompositionStart
Approval Request Comment
[Feature/Bug causing the regression]:
Regression of bug 1456381.
[User impact if declined]:
Chinese language (both Simplified and Traditional) users see odd character when they remove all composition string to cancel current inputting word.
[Is this code covered by automated tests?]:
No.
[Has the fix been verified in Nightly?]:
Not yet, but I confirmed on local build.
[Needs manual test from QE? If yes, steps to reproduce]:
Yes.
1. Select Microsoft's Chinese IME such as Microsoft Pinyin.
2. Change input mode to Chinese character (perhaps, pressing ShiftLeft key toggles the input mode).
3. Type "ni" into an editor (e.g., <https://w3c.github.io/uievents/tools/key-event-viewer.html>)
4. Type Backspace twice to remove all characters.
Without this fix, you'll see selected "n" in the editor. If fixed correctly, correctly both "ni" are removed. Note that you may see selected "n" temporarily immediately after press second Backspace. This will be fixed by bug 1475153, but it's not regression. So, it should be ride the train.
[List of other uplifts needed for the feature/fix]:
No.
[Is the change risky?]:
No.
[Why is the change risky/not risky?]:
This starts eCompositionChange event only when "compositionend" follows "compositionstart" without any "compositionupdate". This is really rare case. And also eCompositionChange event is exposed as DOM "text" event, but this is non-standard and I think that most web apps do not listen to this event. So, most web apps won't realize this behavior change.
If web apps realize this difference, it must be in the case of canceling composition when it receives "compositionupdate" event. However, it won't work well with Chrome (see the comment in testcase). So, most web apps must not do this.
[String changes made/needed]:
No.
Attachment #8991557 -
Flags: approval-mozilla-beta?
Comment 15•7 years ago
|
||
bugherder |
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla63
Comment 16•7 years ago
|
||
Brindusa, can you or someone on your team verify the fix in nightly? Thanks!
Flags: qe-verify+
Flags: needinfo?(brindusa.tot)
Reporter | ||
Comment 17•7 years ago
|
||
(In reply to Liz Henry (:lizzard) (needinfo? me) from comment #16)
> Brindusa, can you or someone on your team verify the fix in nightly? Thanks!
I have test it on this nightly build: http://ftp.mozilla.org/pub/firefox/nightly/2018/07/2018-07-16-11-05-59-oak/
It looks fine.
Comment 18•7 years ago
|
||
I tested this on Windows 10 x64 following the steps from comment 14 and I was able to reproduce the issue on a Nightly build without the fix. I also tested on Nightly 63.0a1(2018-07-18) and the issue is no longer reproducible.
Based on the above information, I will mark this as verified as fixed on Nightly.
Comment 19•7 years ago
|
||
Based on the previous comment, remove the NI.
Flags: needinfo?(brindusa.tot)
Updated•7 years ago
|
Comment 20•7 years ago
|
||
Comment on attachment 8991557 [details]
Bug 1462257 - TextComposition should dispatch eCompositionChange event when eCompositionCommit is being fired immediately after eCompositionStart
Fix for recent regression, verified in Nightly.
Thanks for adding tests!
Let's uplift for beta 11.
Attachment #8991557 -
Flags: approval-mozilla-beta? → approval-mozilla-beta+
Comment 21•7 years ago
|
||
bugherder uplift |
Comment 22•7 years ago
|
||
I tested with FF Beta 62.0b11 on Windows 10 and I can confirm that this issue is fixed.
Updated•6 years ago
|
Component: Event Handling → User events and focus handling
You need to log in
before you can comment on or make changes to this bug.
Description
•