Closed
Bug 1141973
Opened 10 years ago
Closed 10 years ago
[Settings]Enable SIM PIN, go back to Settings main view, but the status under "SIM Security" is still "Disabled".
Categories
(Firefox OS Graveyard :: Gaia::Settings, defect)
Tracking
(b2g-v2.2 wontfix, b2g-master verified)
VERIFIED
FIXED
People
(Reporter: yue.xia, Assigned: eragonj)
References
Details
(Whiteboard: [v2.2-nexus-5-l][flame-l-testing-needed])
Attachments
(4 files)
[1.Description]:
[Nexus 5][v2.2 & v3.0][Settings]Toggle on "SIM PIN" to enable it, then go back to Settings main view. But the status under "SIM Security" will not update, it is still "Disabled".
See attachment: Video.MP4 & logcat_1547.txt
Found time: 15:47
[2.Testing Steps]:
Precondition: Insert a SIM card in device.
1. Launch Settings.
2. Tap "SIM Security".
3. Toggle on "SIM PIN" -> Set a PIN code -> Tap "Done".
4. Tap "<" icon to go back to Settings main view.
[3.Expected Result]:
4. The status under "SIM Security" should update to "Enabled".
[4.Actual Result]:
4. The status under "SIM Security" is still "Disabled".
[5.Reproduction build]:
N5 v2.2 build:
Build ID 20150310002536
Gaia Revision 166491b92278dc9e648f8d49ab02d9ca00d74421
Gaia Date 2015-03-06 18:26:27
Gecko Revision https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/rev/1cda026f8996
Gecko Version 37.0
Device Name hammerhead
Firmware(Release) 5.0
Firmware(Incremental) eng.cltbld.20150310.042021
Firmware Date Tue Mar 10 04:20:36 EDT 2015
Bootloader HHZ12d
N5 v3.0 build:
Gaia-Rev 943c8b4039f59b08ba100390e164a076a20c892e
Gecko-Rev https://hg.mozilla.org/mozilla-central/rev/a9aff724afc7
Build-ID 20150310160234
Version 39.0a1
Device-Name hammerhead
FW-Release 5.0
FW-Incremental eng.cltbld.20150310.191407
FW-Date Tue Mar 10 19:14:23 EDT 2015
Bootloader HHZ12d
Flame 2.2 build:
Build ID 20150310002536
Gaia Revision 166491b92278dc9e648f8d49ab02d9ca00d74421
Gaia Date 2015-03-06 18:26:27
Gecko Revision https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/rev/1cda026f8996
Gecko Version 37.0
Device Name flame
Firmware(Release) 4.4.2
Firmware(Incremental) eng.cltbld.20150310.042346
Firmware Date Tue Mar 10 04:23:56 EDT 2015
Bootloader L1TC000118D0
[6.Reproduction Frequency]:
Always Recurrence,5/5
[7.TCID]:
Free Test
[8.Note]:
1. After disable the SIM PIN, the status under "SIM Security" can not update too, it is still "Enabled". Relaunch Settings app, the status will update.
2. This problem can be repro on N5 v3.0, and it cannot repro on Flame2.2.
Reporter | ||
Comment 1•10 years ago
|
||
Reporter | ||
Comment 2•10 years ago
|
||
Reporter | ||
Updated•10 years ago
|
status-b2g-v2.2:
--- → affected
Comment 3•10 years ago
|
||
Not sure if this is a dup, adding 'see also' first, https://bugzilla.mozilla.org/show_bug.cgi?id=1141973
Comment 4•10 years ago
|
||
I don't think it is a dup of bug 1138858.
NI settings developer for more information.
Flags: needinfo?(arthur.chen)
Comment 5•10 years ago
|
||
EJ, could you help check this issue? Thanks.
Flags: needinfo?(arthur.chen) → needinfo?(ejchen)
Comment 6•10 years ago
|
||
Assignee | ||
Comment 7•10 years ago
|
||
Comment on attachment 8584334 [details] [review]
[gaia] EragonJ:bug-1141973 > mozilla-b2g:master
Arthur, I just checked the source code and there are some problems I found and I need to discuss with you for more details first.
[Summary]
Check my patch !!
[TL;DR]
Not sure whether you are still remembering the case or not - if we lock / unlock sim card, for some devices (including Nexus 5), there is no "cardstatechange" emitting out from Gecko. After some testing, if we lock the card first and then reboot, the cardstate would be set to "pinRequired", so if we tried to unlock it, we would definitely get the "cardstatechange" for ONLY once ! After that, no matter how we lock / unlock the sim card, it will always be "normal" state, so that's why we won't trigger "cardstatechange".
And after taking a look at codes for simSecurityItem, I noticed that I also used the eventListener in a wrong way, so this may cause another problem that even if Gecko did send the right event back, Gaia can't retrieve it. I should use "window.addEventListener" instead. For more reference, please check this link : https://github.com/mozilla-b2g/gaia/blob/master/shared/js/simslot.js#L95
So, I got two different solutions in mind, the first one is to ask whether we can always get the right event "oncardstatechange" from Gecko no matter the card is locked or not. With this, we can make sure our cardstate would always reflect the real information from hardware. But I am not sure is it possible for Gecko to do so (I remembered there must be some reasons to make this not able to happen but I forgot, any comment ?)
For another solution (that's what I did for this current patch), we will keep requesting latest information from icc.getCardLock('pin') to make sure we would always use the latest value from device instead of relying on the event. When trying to do so, I just noticed for "root panel", its own "onBeforeHide" & "onHide" functions are all ignored by settings_service and no one would call that !!! It is really a mistake because we did write a lot of follow-up works for these two situations in root panel, so I think we have to fix this at the same time !
Flags: needinfo?(ejchen)
Attachment #8584334 -
Flags: feedback?(arthur.chen)
Comment 8•10 years ago
|
||
I think we should clarify the expected behavior with the RIL team first.
As for the root panel problem, actually the root panel should not be deactivated only when on tablets, so I think we should add that check instead.
Updated•10 years ago
|
Attachment #8584334 -
Flags: feedback?(arthur.chen)
Assignee | ||
Updated•10 years ago
|
Assignee: nobody → ejchen
Assignee | ||
Comment 9•10 years ago
|
||
(In reply to EJ Chen [:eragonj][:小龍哥][ni? if you need me] from comment #7)
> [TL;DR]
> Not sure whether you are still remembering the case or not - if we lock /
> unlock sim card, for some devices (including Nexus 5), there is no
> "cardstatechange" emitting out from Gecko. After some testing, if we lock
> the card first and then reboot, the cardstate would be set to "pinRequired",
> so if we tried to unlock it, we would definitely get the "cardstatechange"
> for ONLY once ! After that, no matter how we lock / unlock the sim card, it
> will always be "normal" state, so that's why we won't trigger
> "cardstatechange".
Hi HsinYi !
About the simcard cardstatechange problem, do you know who is familiar with this part ? Can you help us forward this ni? flag to the right person ? Thanks :)
Flags: needinfo?(htsai)
Comment 10•10 years ago
|
||
EJ, let me try to take a close look at this tomorrow :)
Comment 11•10 years ago
|
||
Sorry that I couldn't remember specific behaviour on various devices. But the suggestion I'd like to provide is that don't rely on cardstatechange event if we want to reflect the "sim pin enabled status." That's because, it's very likely that we enable or disable the sim pin enabled function but the sim card state remains ready. From the gecko API point of view, we should decouple "cardstatechange event" and "sim pin enabled" things. In this way, we may also be able to decouple from different hardware behaviour better.
Hope your questions have been answered, EJ :)
Flags: needinfo?(htsai)
Assignee | ||
Comment 12•10 years ago
|
||
Arthur, after discussing some details with HsinYi, we all think the better way here is that we have to keep updating the latest status when entering / leaving root panel. But you did mention that we can't let tablet call onHide, so I can't update its value easily, do you have any recommended way for this ?
Flags: needinfo?(arthur.chen)
Comment 13•10 years ago
|
||
If gecko lacks mechanism notifying gaia about the changes of the security settings, we may have to add a common module wrapping the API and emit the event in gaia. That way we can always keep the item updated.
Flags: needinfo?(arthur.chen)
Assignee | ||
Comment 14•10 years ago
|
||
Okay, that sounds another possible way to do so, let me try to make a new patch for it.
Assignee | ||
Comment 15•10 years ago
|
||
Comment on attachment 8584334 [details] [review]
[gaia] EragonJ:bug-1141973 > mozilla-b2g:master
Arthur, I updated the patch and tried to use a intermediate module called SimPin to pass events. Can you help me review this patch ? Thanks !
Attachment #8584334 -
Flags: review?(arthur.chen)
Comment 16•10 years ago
|
||
Comment on attachment 8584334 [details] [review]
[gaia] EragonJ:bug-1141973 > mozilla-b2g:master
It may require more change than I originally expected. I was thinking a module that wraps simpin related apis, provides methods for querying the current sim security state, and emits events when settings change, instead of just passing events.
The existing code in `simpin_dialog.js` does the work but now it is tight coupled with UI. We can move the business logic to a separate common module. Then `sim_security_item`, `simpin_dialog`, and any other modules interested in information regarding sim security could simply use the module.
Attachment #8584334 -
Flags: review?(arthur.chen)
Assignee | ||
Comment 17•10 years ago
|
||
Comment on attachment 8584334 [details] [review]
[gaia] EragonJ:bug-1141973 > mozilla-b2g:master
Arthur, how about this one ?
Attachment #8584334 -
Flags: review?(arthur.chen)
Comment 18•10 years ago
|
||
Comment on attachment 8584334 [details] [review]
[gaia] EragonJ:bug-1141973 > mozilla-b2g:master
I think we are in the right direction but there are some places need to be refined. Please check my comments in github, thanks.
Attachment #8584334 -
Flags: review?(arthur.chen) → feedback+
Assignee | ||
Comment 19•10 years ago
|
||
Arthur, I just made another change that may fit your opinions, can you help me check whether this one is good or not ?
For this updated patch, I tried to list down all possible status changes and make sure callee of SimSecurity can use them to do related UI updated if needed.
Thanks :)
Flags: needinfo?(arthur.chen)
Comment 20•10 years ago
|
||
Looks good! Please continue to write unit tests for the new module.
Flags: needinfo?(arthur.chen)
Assignee | ||
Comment 21•10 years ago
|
||
Comment on attachment 8584334 [details] [review]
[gaia] EragonJ:bug-1141973 > mozilla-b2g:master
This patch looks better now, can you help me review it, Arthur?
Thanks.
Attachment #8584334 -
Flags: review?(arthur.chen)
Comment 22•10 years ago
|
||
Comment on attachment 8584334 [details] [review]
[gaia] EragonJ:bug-1141973 > mozilla-b2g:master
The patch is looking good but there are a few things to be addressed before merging, please check them in github, thanks.
Attachment #8584334 -
Flags: review?(arthur.chen)
Assignee | ||
Comment 23•10 years ago
|
||
Comment on attachment 8584334 [details] [review]
[gaia] EragonJ:bug-1141973 > mozilla-b2g:master
Arthur, all related comments were addressed, can you help me check this patch again ? Big thanks !
Attachment #8584334 -
Flags: review?(arthur.chen)
Comment 24•10 years ago
|
||
Comment on attachment 8584334 [details] [review]
[gaia] EragonJ:bug-1141973 > mozilla-b2g:master
r=me, thanks a lot!
Attachment #8584334 -
Flags: review?(arthur.chen) → review+
Assignee | ||
Updated•10 years ago
|
Keywords: checkin-needed
Updated•10 years ago
|
Keywords: checkin-needed
Comment 25•10 years ago
|
||
http://docs.taskcluster.net/tools/task-graph-inspector/#A_nfbmsRQy6bX4MkXhcFvQ
The pull request failed to pass integration tests. It could not be landed, please try again.
Updated•10 years ago
|
Keywords: checkin-needed
Comment 27•10 years ago
|
||
http://docs.taskcluster.net/tools/task-graph-inspector/#TTGBRLBLSRiWwHAd0iaO2A
The pull request failed to pass integration tests. It could not be landed, please try again.
Assignee | ||
Updated•10 years ago
|
Keywords: checkin-needed
Updated•10 years ago
|
Keywords: checkin-needed
Comment 28•10 years ago
|
||
Pull request has landed in master: https://github.com/mozilla-b2g/gaia/commit/0bfa1219536af541d55d59ed00359f95a8698623
Updated•10 years ago
|
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Assignee | ||
Comment 29•10 years ago
|
||
@Autolander, Goooood job !
Comment 30•10 years ago
|
||
This bug has been verified as pass on latest build of Nexus 5 v3.0 by the STR in Comment 0.
Results: The status under "SIM Security" will update to "Enabled" when turning SIM PIN on. Then disable the SIM PIN, the status under "SIM Security" update to "Disabled" as expected.
See attachment: verified_v3.0.mp4
Reproduce rate: 0/5
Device: Nexus 5 3.0 build(Pass)
Build ID 20150505160203
Gaia Revision 42dc5f02a9df006b129824cd9bffa93cab937ab2
Gaia Date 2015-05-05 11:06:17
Gecko Revision https://hg.mozilla.org/mozilla-central/rev/5907a8eca521
Gecko Version 40.0a1
Device Name hammerhead
Firmware(Release) 5.1
Firmware(Incremental) eng.cltbld.20150505.192812
Firmware Date Tue May 5 19:28:29 EDT 2015
Bootloader HHZ12f
Updated•10 years ago
|
QA Whiteboard: [MGSEI-Triage+]
status-b2g-master:
--- → fixed
Updated•10 years ago
|
Comment 31•10 years ago
|
||
Hi Josh,
Could you help to check Whether it will uplift to v2.2? thanks. :)
Flags: needinfo?(jocheng)
Comment 32•10 years ago
|
||
Considering the code change is quite a lot, and the user can restart the settings to make it showing correct status, suggest not to uplift to v2.2 at this stage.
Whiteboard: 2.2-nexus-5-l → [v2.2-nexus-5-l][flame-l-testing-needed]
Reporter | ||
Comment 34•10 years ago
|
||
According to comment 33, set the status of issue to VERIFIED-FIXED.
Status: RESOLVED → VERIFIED
You need to log in
before you can comment on or make changes to this bug.
Description
•