Closed
Bug 1202967
Opened 9 years ago
Closed 9 years ago
[AriesKK]Screen will be freezed if you launch camera by pressing HW camera key in Recent View.
Categories
(Firefox OS Graveyard :: Gaia::System::Window Mgmt, defect, P2)
Tracking
(blocking-b2g:2.5+, b2g-master verified)
People
(Reporter: yi.zou, Assigned: lchang)
References
Details
(Whiteboard: [2.5-aries-test-run-2])
Attachments
(5 files)
[1.Description]: [AriesKK v2.5][Camera]Screen will be freezed if you launch camera by pressing HW camera key in Recent View. See attachment: AriesKK_V2.5.3gp and logcat.txt Found at: 23:19 [2.Testing Steps]: 1. Long tap home button; 2. Long press HW Camera key [3.Expected Result]: 2. Camera can work normally. [4.Actual Result]: 2. Screen is freezed untill you tap home button to exit. [5.Reproduction build]: Device: Aries KK v2.5(Affected) Build ID 20150909010033 Gaia Revision e69f2c86b931b723dd405115e33a1d02e6c5f5e6 Gaia Date 2015-09-08 20:39:40 Gecko Revision https://hg.mozilla.org/mozilla-central/rev/a4f512250d7d6199ae8c39eafdb3a2d8977a7dc4 Gecko Version 43.0a1 Device Name aries Firmware(Release) 4.4.2 Firmware(Incremental) eng.worker.20150909.002137 Firmware Date Wed Sep 9 00:21:45 UTC 2015 Bootloader s1 [6.Reproduction Frequency]: Always Recurrence,5/5 [7.TCID]: Free Test [8. Note]: HW Camera key is not supported by Flame
Reporter | ||
Comment 1•9 years ago
|
||
Reporter | ||
Updated•9 years ago
|
status-b2g-master:
--- → affected
Comment 2•9 years ago
|
||
Hi No-Jun, Could you help to dispatch the bug? thanks :)
Flags: needinfo?(npark)
Comment 3•9 years ago
|
||
[Blocking Requested - why for this release]: Hmm, if it freezes the device that easily, then I would assume this is a blocker for 2.5. I suppose we do support the camera button
blocking-b2g: --- → 2.5?
Flags: needinfo?(npark)
Comment 5•9 years ago
|
||
Andrew, Can you take up the initial investigation for this issue? Thanks Hema
Assignee: nobody → aosmond
Comment 6•9 years ago
|
||
Reproducing this, it appears only the viewfinder is stuck. You can take pictures (and the thumbnail appears), auto focus, touch-to-focus, etc. Viewing a taken picture causes the viewfinder to match the picture (but still frozen) when exiting the preview gallery.
Comment 7•9 years ago
|
||
The gecko preview is running fine. It appears to be related to the video element state. In a normal app launch, we see that while the video element may become paused during startup, it will become unpaused after configuration is complete: 09-14 14:42:35.330 1783 1783 I PRLog : -1225465516[b6852000]: b1910000 SuspendOrResumeElement(pause=1, suspendEvents=0) hidden=0 09-14 14:42:35.370 1783 1783 I Camera : Content JS LOG: camera configuration success +43ms 09-14 14:42:35.370 1783 1783 I Camera : Content JS LOG: controller:viewfinder configuring +8ms 09-14 14:42:35.370 1783 1783 I Camera : Content JS LOG: camera loading stream into element +1ms 09-14 14:42:35.380 1783 1783 I Camera : Content JS LOG: camera camera didn't change +1ms 09-14 14:42:35.380 1783 1783 I Camera : Content JS LOG: controller:viewfinder stream started +2ms 09-14 14:42:35.430 1783 1783 I Camera : Content JS LOG: controller:activity configured mode +1ms picture,video 09-14 14:42:35.490 1783 1783 I PRLog : -1225465516[b6852000]: b1910000 SuspendOrResumeElement(pause=0, suspendEvents=0) hidden=0 With this bug's STR, the video element never gets unpaused: 09-14 14:37:33.100 1557 1557 I PRLog : -1225465516[b6852000]: b2855400 SuspendOrResumeElement(pause=1, suspendEvents=0) hidden=0 09-14 14:37:33.180 1557 1557 I Camera : Content JS LOG: camera configuration success +44ms 09-14 14:37:33.190 1557 1557 I Camera : Content JS LOG: controller:viewfinder configuring +15ms 09-14 14:37:33.200 1557 1557 I Camera : Content JS LOG: camera loading stream into element +4ms 09-14 14:37:33.200 1557 1557 I Camera : Content JS LOG: camera camera didn't change +1ms 09-14 14:37:33.200 1557 1557 I Camera : Content JS LOG: controller:viewfinder stream started +2ms 09-14 14:37:33.260 1557 1557 I Camera : Content JS LOG: controller:activity configured mode +1ms picture,video 09-14 14:37:33.260 1557 1557 I PRLog : -1225465516[b6852000]: b2855400 SuspendOrResumeElement(pause=1, suspendEvents=0) hidden=0
Comment 8•9 years ago
|
||
When the window volume changes between muted and unmuted, this can change the state of the video element between paused and unpaused respectively. It seems the window volume is muted in the STR case as evidenced by the "mozinterruptbegin" event dispatched by the video element (that is the only case it is issued). 09-14 14:37:33.100 1557 1557 I PRLog : -1225465516[b6852000]: b2855400 Queuing event mozinterruptbegin 09-14 14:37:33.100 1557 1557 I PRLog : -1225465516[b6852000]: b2855400 SuspendOrResumeElement(pause=1, suspendEvents=0) hidden=0 App sounds (shutter, recording start/stop) are still heard. Recorded videos can be played back (with sound) in the preview gallery. One possible solution is to ensure that when the camera preview stream is loaded into video element, we mark it as having no audio component (which we used to do in Gecko I thought...) so that it doesn't pause due to audio changes. However it does leave the question of how the element got into the muted state in the first place.
Comment 9•9 years ago
|
||
As it turns out, the camera preview media stream *does not* have an audio track. But HTMLMediaElement will stop playing regardless if it is muted. The interactions with the audio channel agent are not obvious to me (e.g. why do we trigger the agent at all if we don't have an audio track...) so someone on the DOM side should take a look at this point.
Updated•9 years ago
|
Assignee: aosmond → nobody
Component: Gaia::Camera → Audio/Video
Product: Firefox OS → Core
Comment 10•9 years ago
|
||
Alastor, Per comment 8 and 9, it seems related to audio channel, can you have a look?
Flags: needinfo?(alwu)
Updated•9 years ago
|
Summary: [AriesKK][Camera]Screen will be freezed if you launch camera by pressing HW camera key in Recent View. → [AriesKK]Screen will be freezed if you launch camera by pressing HW camera key in Recent View.
Comment 11•9 years ago
|
||
I'll investigate it later.
Updated•9 years ago
|
Assignee: nobody → alwu
Flags: needinfo?(alwu)
Comment 12•9 years ago
|
||
Hi, Even, Could you help to take a look to this issue? From the log, we can see that the system app muted the MediaElement when it get the "activestatechanged". The system app should unmute MediaElement, but it didn't. Thanks!
Flags: needinfo?(evan)
Comment 13•9 years ago
|
||
Alastor, I'll investigate this later.
Comment 14•9 years ago
|
||
Cannot reproduce in the below build. Build ID 20150812231434 Gaia Revision 52f3ea58df38e5427f6afeb636bc6ad01d24022f Gaia Date 2015-08-12 16:40:43 Gecko Revision https://hg.mozilla.org/mozilla-central/rev/7649ffe28b67aa2dad0f67ea01500c0ff91b2bac Gecko Version 43.0a1 Device Name aries Firmware(Release) 4.4.2 Firmware(Incremental) eng.worker.20150619.224059 Firmware Date Fri Jun 19 22:41:08 UTC 2015 Bootloader s1 Will use the build in [1](Comment 0) to investigate. [1]: https://bugzilla.mozilla.org/show_bug.cgi?id=1202967#c0
Comment 15•9 years ago
|
||
Can reproduce in the build in Comment 0. Investigate...
Comment 16•9 years ago
|
||
The root cause is about HierarchyManager. `HierarchyManager.getTopMostWindow()`[1] will get `undefined` in `HierarchyManager.updateTopMostWindow()` method[2] after long tap home button and long press HW Camera key. Then the `topmostwindowchanged` will not be sent from [3]. It means that System app will think no any window in foreground. But actually the Camera window is foreground. Because of the above reason, Audio Channel Service[4] will think the Camera window is in background. So it cannot be played. Then the screen is freezed. We need to fix this bug from HierarchyManager. Luke will investigate this. Thanks a lot. [1]: https://github.com/mozilla-b2g/gaia/blob/master/apps/system/js/hierarchy_manager.js#L40 [2]: https://github.com/mozilla-b2g/gaia/blob/master/apps/system/js/hierarchy_manager.js#L148 [3]: https://github.com/mozilla-b2g/gaia/blob/master/apps/system/js/hierarchy_manager.js#L152 [4]: https://github.com/mozilla-b2g/gaia/blob/master/apps/system/js/audio_channel_service.js
Flags: needinfo?(evan) → needinfo?(lchang)
Updated•9 years ago
|
Component: Audio/Video → Gaia::System::Window Mgmt
Product: Core → Firefox OS
Assignee | ||
Comment 17•9 years ago
|
||
Sorry to steal it from Alastor because it may be fixed from Gaia side. The cause is, if TaskManager is closed because of activity window (in this case, launching camera app by HW button), it won't hide until the activity app window is fully opened. Thus, HierarchyManager will always get "undefined" when calling "getTopMostWindow" at "windowopened" stage since TaskManager is still active at that moment and there's no "TopMostWindow" defined for sure. To fix it, I force HierarchyManager to update the TopMostWindow again after TaskManager is closed and it looks good now. I'll upload my patch later.
Assignee: alwu → lchang
Status: NEW → ASSIGNED
Component: Gaia::System::Window Mgmt → Gaia::System
Flags: needinfo?(lchang)
Comment 18•9 years ago
|
||
Assignee | ||
Comment 19•9 years ago
|
||
Comment on attachment 8666727 [details] [review] [gaia] luke-chang:1202967_camera_freeze > mozilla-b2g:master Hi Tim, Could you take a look at this? Thanks a lot.
Attachment #8666727 -
Flags: review?(timdream)
Updated•9 years ago
|
Attachment #8666727 -
Flags: review?(timdream) → review+
Updated•9 years ago
|
Component: Gaia::System → Gaia::System::Window Mgmt
Assignee | ||
Comment 20•9 years ago
|
||
Tim, Thanks a lot. test passed: https://treeherder.mozilla.org/#/jobs?repo=gaia&revision=968a54ab0a2046d22d7605c2d37739a0c7b02723 landed on master: https://github.com/mozilla-b2g/gaia/commit/28b0f9fb59e7659e3717fa9936076041225e5f2a
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Comment 21•9 years ago
|
||
Thanks, Luke.
Comment 22•9 years ago
|
||
According to the STR of Comment 0, this bug has been verified as pass on latest Aries KK v2.5. Actual results: Camera can work normally. See attachment: verified_Aries KK v2.5.3gp Reproduce rate: 0/6 Device: Aries KK v2.5 (Pass) Build ID 20151008233852 Gaia Revision e698df503ff700eb5782e3d50c6eb753567d3451 Gaia Date 2015-10-08 17:26:52 Gecko Revision https://hg.mozilla.org/mozilla-central/rev/23b7f289df923c01e692299fcd4be7029de8b155 Gecko Version 44.0a1 Device Name aries Firmware(Release) 4.4.2 Firmware(Incremental) eng.worker.20151008.225742 Firmware Date Thu Oct 8 22:57:51 UTC 2015 Bootloader s1
You need to log in
before you can comment on or make changes to this bug.
Description
•