Closed Bug 1283739 Opened 3 years ago Closed 3 years ago

Inputting makes Fennec no response when "Secure Input" is enabled

Categories

(Firefox for Android :: Keyboards and IME, defect)

47 Branch
ARM
Android
defect
Not set

Tracking

()

RESOLVED FIXED
Firefox 50
Tracking Status
firefox47 --- affected
firefox48 + fixed
firefox49 + fixed
fennec 48+ ---
firefox50 + fixed

People

(Reporter: bli, Assigned: jchen)

References

Details

(Keywords: regression)

Attachments

(4 files)

Environments:
--------------------------
HUAWEI Mate 8 with Baidu Keyboard( OEM build for HUAWEI ) preloaded
HUAWEI Mate 7 with Baidu Keyboard( OEM build for HUAWEI ) preloaded
HUAWEI Honor V8 with Baidu Keyboard( OEM build for HUAWEI ) preloaded

Android 6.0
EMUI 4.1

Firefox 47 & 48


Steps to reproduce:
----------------------------
Input anything in the urlbar 
==> Fennec will be no response.
Can anyone take a look at this? It's really annoying. We've got lots of feedbacks from Chinese users since 47 released.

Huawei, China's best-known maker of telecommunications equipment, has a considerable market share and a lot of users in China. We really need this issue to be fixed.
Attached file crash log
The attachment is the log when browser crashed.
Summary: Inputting makes Fennec no response when Baidu Keyboard( OEM build for HUAWEI ) is preloaded → Inputting makes Fennec no response when "Secure Input" is enabled
Kevin, do we have one of these devices somewhere, or can we order one?

This might be a good bug for the team in Taipei to look into.
Flags: needinfo?(kbrosnan)
No we don't have one. I tried installing the Baidu Keyboard but it does not have English strings so I don't know how to enable "secure input". Given that this is a known issue I would suggest that the developer who fixes this should order the phone. Jim Chen might be able to fix it, though it would be up to Snorp.
Flags: needinfo?(kbrosnan)
(In reply to Kevin Brosnan [:kbrosnan] from comment #4)
>
> No we don't have one. I tried installing the Baidu Keyboard but it does not
> have English strings so I don't know how to enable "secure input". 
>
Sorry for the missing understanding caused by my inaccurate description. Since we don't have one of those devices either, all the information are collected from users.

First of all, the "secure input" is a specific feature of HUAWEI's devices. It can be found in the system settings.

And second, Baidu Keyboard from application store is different from the OEM build for HUAWEI. 
The OEM build of Baidu Keyboard for HUAWEI is the default keyboard of HUAWEI devices.

We also tried to contacted with Baidu and HUAWEI. The reply we got from Baidu is there is nothing wrong with Baidu Keybaord, but no reply from HUAWEI yet.

So we continued to contact with our users, according to some users, Fennec 47 works normally after "secure input" disabled.

We finally borrowed a HUAWEI device from a colleague - HUAWEI P9 (phone) with "secure input" feature.

And now we're pretty sure that when "secure input" is enabled, no-response issue is reproduced 100% on Fennec 47&48.
If you still have access to the device then finding a regression range with MozRegression would be a good test. http://mozilla.github.io/mozregression/ if you need help with getting it set up try #ateam on irc.
(In reply to Kevin Brosnan [:kbrosnan] from comment #6)
> If you still have access to the device then finding a regression range with
> MozRegression would be a good test. http://mozilla.github.io/mozregression/
> if you need help with getting it set up try #ateam on irc.

last good build: mozilla-inbound build c733bc12
--------------------------------------------------------
build_type: inbound
build_url: https://queue.taskcluster.net/v1/task/cY-sLXwITjW4M2LtHsVr-w/runs/0/artifacts/public%2Fbuild%2Ffennec-47.0a1.en-US.android-arm.apk
changeset: c733bc1211ac32b13cb228d5e2ac146afd0acffc
pushlog_url: https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=c733bc1211ac32b13cb228d5e2ac146afd0acffc&tochange=6ab9c45cffbc119223a03d6826c9dc0d364b75c6
repo_name: mozilla-inbound
repo_url: https://hg.mozilla.org/integration/mozilla-inbound
task_id: cY-sLXwITjW4M2LtHsVr-w


first bad build: mozilla-inbound build 95354561
--------------------------------------------------------------
build_type: inbound
build_url: https://queue.taskcluster.net/v1/task/IulnqxB-RSC_6iExVxPAmg/runs/0/artifacts/public%2Fbuild%2Ffennec-47.0a1.en-US.android-arm.apk
changeset: 953545615bdc2284210016d25a347f7de61c8a75
pushlog_url: https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=c733bc1211ac32b13cb228d5e2ac146afd0acffc&tochange=953545615bdc2284210016d25a347f7de61c8a75
repo_name: mozilla-inbound
repo_url: https://hg.mozilla.org/integration/mozilla-inbound
task_id: IulnqxB-RSC_6iExVxPAmg

commit message: Bug 1241332 - part 2, Request zoomToFocusdInput after resize finishes and propagates through APZ r=kats
[Tracking Requested - why for this release]: Regression that is bad for the Chinese release of Firefox for Android

Snorp does Jim have bandwidth to address this?
Blocks: 1253426
tracking-fennec: --- → ?
Flags: needinfo?(snorp)
Keywords: regression
Jim can you look at this? Might be tough without a device, but there is at least a crash stack attached. Order a P9 if you need to.
Assignee: nobody → nchen
Flags: needinfo?(snorp)
The following is feedback from HUAWEI:
In the start of the input method, the system needs to determine whether the input box for the password, for password box the system will start the security input method by call the onCreateInputConnection View () method. While Firefox browser override this method and restart input method in the method, eventually forming a cycle of death.
Add a check to showSoftInput and hideSoftInput To prevent an infinite
recursive loop of showSoftInput indirectly calling
onCreateInputConnection, which calls showSoftInput again,

This should fix the crash from that stack.
Attachment #8769204 - Flags: review?(esawin)
Comment on attachment 8769204 [details] [diff] [review]
Prevent reentrant calls to showSoftInput and hideSoftInput (v1)

Review of attachment 8769204 [details] [diff] [review]:
-----------------------------------------------------------------

Can you give it a more explicit name, e.g., mSoftInputReentrancyGuard?

Also, can someone with a device confirm that this fixes password input?
Attachment #8769204 - Flags: review?(esawin) → review+
Attached file logcat
I tried on Fennec 48beta4 with this patch. 
There is no crash, but when the keyboard is evoked in a webpage, you need to tap on the tab icon several times to open the tab tray, and the tab tray is all black unless you rotate the phone.

p.s. log attached.
Attached image screenshot.png
(In reply to Bingqing Li from comment #14)
> Created attachment 8769579 [details]
> logcat
> 
> I tried on Fennec 48beta4 with this patch. 
> There is no crash, but when the keyboard is evoked in a webpage, you need to
> tap on the tab icon several times to open the tab tray, and the tab tray is
> all black unless you rotate the phone.
> 
> p.s. log attached.

I think that may be a bad interaction between Fennec and the "Secure Input" feature. In any case, I don't think this patch in particular causes these behaviors.
Pushed by nchen@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/bc0eabedf195
Prevent reentrant calls to showSoftInput and hideSoftInput; r=esawin
(In reply to Jim Chen [:jchen] [:darchons] from comment #16)
> I think that may be a bad interaction between Fennec and the "Secure Input"
> feature. In any case, I don't think this patch in particular causes these
> behaviors.

In this case, should I open another bug to track down the tab-tray issue?
https://hg.mozilla.org/mozilla-central/rev/bc0eabedf195
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 50
(In reply to Bingqing Li from comment #18)
> (In reply to Jim Chen [:jchen] [:darchons] from comment #16)
> > I think that may be a bad interaction between Fennec and the "Secure Input"
> > feature. In any case, I don't think this patch in particular causes these
> > behaviors.
> 
> In this case, should I open another bug to track down the tab-tray issue?

Yes please. Thank you!
Track this as this is a regression.
Hi Jim,
Since this patch also affects 48 and if the patch is not too risky, are you also considering to uplift this patch to 48/49?
Flags: needinfo?(nchen)
Comment on attachment 8769204 [details] [diff] [review]
Prevent reentrant calls to showSoftInput and hideSoftInput (v1)

Approval Request Comment
[Feature/regressing bug #]: N/A
[User impact if declined]: Keyboard on some Huawei devices can cause Fennec to hang/crash
[Describe test coverage new/current, TreeHerder]: Locally, m-c
[Risks and why]: Very small; patch should have no real impact besides working around the hang/crash
[String/UUID change made/needed]: None
Flags: needinfo?(nchen)
Attachment #8769204 - Flags: approval-mozilla-beta?
Attachment #8769204 - Flags: approval-mozilla-aurora?
Comment on attachment 8769204 [details] [diff] [review]
Prevent reentrant calls to showSoftInput and hideSoftInput (v1)

Review of attachment 8769204 [details] [diff] [review]:
-----------------------------------------------------------------

This patch fixes a regression. Take it in 48 beta 8 and aurora.
Attachment #8769204 - Flags: approval-mozilla-beta?
Attachment #8769204 - Flags: approval-mozilla-beta+
Attachment #8769204 - Flags: approval-mozilla-aurora?
Attachment #8769204 - Flags: approval-mozilla-aurora+
tracking-fennec: ? → 48+
You need to log in before you can comment on or make changes to this bug.