Closed Bug 1448282 Opened 6 years ago Closed 6 years ago

[TSF] Composition string may be set to empty string temporarily at every update of composition string

Categories

(Core :: Widget: Win32, defect)

61 Branch
All
Windows
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla61
Tracking Status
firefox-esr52 --- unaffected
firefox59 --- unaffected
firefox60 --- unaffected
firefox61 --- fixed

People

(Reporter: Fanolian+BMO, Assigned: masayuki)

References

()

Details

(Keywords: inputmethod, regression, site-compat)

Attachments

(4 files)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0
Build ID: 20180322220118

Steps to reproduce:

(I am sorry if I use the IME terminologies wrong)
1. Log in to https://web.whatsapp.com/.
2. In the chat area, composite some words with affected IMEs.



Actual results:

The composite string flashes when adding more characters. (Please refer to attached videos)


Expected results:

No flashes.

Note:
There is no flashes if I set dom.keyboardevent.dispatch_during_composition to false.


Affected Windows 10 IMEs I tested:
language: Chinese Traditional (Hong Kong SAR) 中文(香港特別行政區)- 
1. (Hidden) Microsoft New Changjie, New Quick
↳ Enabling these 2 IMEs requires adding a special registry entry. Please refer to Bug 1237582 comment 0 and 2 for steps of enabling them.
2. Microsoft Bopomofo.

language: Japanese
1. Microsoft IME
↳ Flash at first 2 characters are obvious; subsequent flashes are nearly non-observable.
(I cannot upload videos in the bug comments as of now. Attachment will be uploaded later.)
Blocks: 1446401
Has STR: --- → yes
Video showing the flashes for Microsoft New Changjie.

(There may be a bunch of spam bug reports blocking bug 1446401 incoming, thinking the report failed to submit after waiting for few minutes.
I messed up the video settings and was uploading 100MB+ videos for previous reports. I cancelled them but they may still come through later. I am sorry.)
Thank you for the report.

Do you reproduce it even if you change UA string to Chrome? (You can switch it easily with https://addons.mozilla.org/en-US/firefox/addon/user-agent-switcher-revived/ )
Flags: needinfo?(Fanolian+bugzilla)
(Sigh, I don't have whatsapp account and I cannot install whatsapp's app to my Android device due to "doesn't support your Android version"... So, I cannot check what they do.)
(In reply to Masayuki Nakano [:masayuki] (JST, +0900) from comment #5)
> Thank you for the report.
> 
> Do you reproduce it even if you change UA string to Chrome? (You can switch
> it easily with
> https://addons.mozilla.org/en-US/firefox/addon/user-agent-switcher-revived/ )

I can still reproduce it for all 3 IMEs with Chrome 65 UA.

By the way, the extension you mentioned does not work on WhatsApp Web. Maybe it is due to the service worker they use (I don't know about all these web technologies...)?
I change the UA by adding general.useragent.override in about:config.
Flags: needinfo?(Fanolian+bugzilla)
Thank you for your test but it's oddly. We followed Chrome's (and also the others') behavior. So, if they switch to handle events with UA string, it should've worked...

And I succeeded to install whatsapp application and tested on https://web.whatsapp.com/ briefly with Nightly. However, I can use Japanese IME on Win10 normally at the input field showed immediately after starting new chat. Do I misunderstand something??
I also cannot reproduce this bug with MS Pinyin nor MS Changjie.
(In reply to Masayuki Nakano [:masayuki] (JST, +0900) from comment #9)
> I also cannot reproduce this bug with MS Pinyin nor MS Changjie.

I cannot reproduce it with these 2 IMEs neither. it is easiest to reproduce with Microsoft Bopomofo.

For Bopomofo:
1. Focus on WhatsApp Web chat input field.
2. Use Bopomofo and switch to Chinese input mode.
3. Type <j><i><3> (ㄨㄛˇ) repeatedly to input 我我我我...

Flashing starts at the 2nd 我 for all non-committed characters in the composite string. Once the string is committed by pressing <Enter>, the committed characters do not flash on subsequent inputs.


For Japanese IME:
2. Use Japanese IME and switch to Hiragana input mode.
3. Key in <aishiteru><space> repeatedly to input 愛してる愛してる愛してる...

The flash only appears on the last group of 愛してる, not the whole sequence of 愛してる愛してる愛してる...


For New Changjie/Quick:
Simliar to Bopomofo, Type <h><q><i><space> to input 我我我我...
However these 2 IMEs are largely abandoned (and thus hidden by default by Windows). They do not support Metro apps. (non-TSF?)
(In reply to Fanolian from comment #10)

> For Japanese IME:
> 2. Use Japanese IME and switch to Hiragana input mode.
> 3. Key in <aishiteru><space> repeatedly to input 愛してる愛してる愛してる...
> 
> The flash only appears on the last group of 愛してる, not the whole sequence of
> 愛してる愛してる愛してる...

The flash only appears when pressing <a> after committing a group of 愛してる, i.e. the very first keypress after pressing <space>.

For Bopomofo, every keypresses trigger a flash.
Ah, I've misunderstood what you're trying to say with "flash". Now, I got what happens.
Assignee: nobody → masayuki
Status: UNCONFIRMED → ASSIGNED
Component: DOM: Events → Widget: Win32
Ever confirmed: true
Keywords: inputmethod
OS: Unspecified → Windows
Hardware: Unspecified → All
Summary: WhatsApp Web chat input area is not compatible with bug 1446401 for some IMEs → [TSF] WhatsApp Web chat input area is not compatible with bug 1446401 for some IMEs
The actual regression point is bug 1343451 but perhaps, dispatching keydown event during composition *shows* this bug visually.
Blocks: 1343451
Summary: [TSF] WhatsApp Web chat input area is not compatible with bug 1446401 for some IMEs → [TSF] Composition string may be set to empty string temporarily at every update of composition string
Oops, not bug 1343451. TSFTextStore was changed by bug 1259692.
Blocks: 1259692
No longer blocks: 1343451
(In reply to Masayuki Nakano [:masayuki] (JST, +0900) from comment #16)
> Perhaps, those builds don't have this bug. Could you check it with one of
> them?

I can confirm the bug is fixed in both builds for the mentioned IMEs.
Thank you.
Flags: needinfo?(Fanolian+bugzilla) → needinfo?(masayuki)
Thank you very much!
Flags: needinfo?(masayuki)
Comment on attachment 8962310 [details]
Bug 1448282 - TSFTextStore should append a pending action for dispatching keyboard event into the queue if OnUpdateComposition() is called without new range

https://reviewboard.mozilla.org/r/231190/#review236904
Attachment #8962310 - Flags: review?(m_kato) → review+
Pushed by masayuki@d-toybox.com:
https://hg.mozilla.org/integration/autoland/rev/d9d67351fd04
TSFTextStore should append a pending action for dispatching keyboard event into the queue if OnUpdateComposition() is called without new range r=m_kato
https://hg.mozilla.org/mozilla-central/rev/d9d67351fd04
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla61
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: