Closed Bug 988610 Opened 7 years ago Closed 7 years ago

[Camera][Madai] Black screen when opening camera from lockscreen and camera app isn't open


(Firefox OS Graveyard :: Gaia::Camera, defect, P1)

Gonk (Firefox OS)


(b2g-v1.4 verified, b2g-v2.0 verified)

1.4 S5 (11apr)
Tracking Status
b2g-v1.4 --- verified
b2g-v2.0 --- verified


(Reporter: marcia, Assigned: justindarc)



(Keywords: regression, Whiteboard: [reviewed-ready-to-land][m+])


(2 files)

Buri, while running with the latest master.

Gaia   5ae2df02e30bda2ae04830d6e181ecf31ff38817
SourceStamp c69c55582faa
BuildID 20140326040202
Version 31.0a1

1. Lock the screen using the power button.
2. Swipe to the left to open camera.
3. Observe a black screen.

Logcat attached.

I checked a recent build on Nexus 4 and the issue doesn't exist.
Marcia: I just confirmed this is happening on my Hamachi as well. I noticed though that if the camera app is running and you return to homescreen and lock the phone, you can re-open the camera from the lockscreen. However, if you terminate the Camera app and then try opening it from the lock screen, it ends up at a black screen as you described.
Marking this a blocker (regression after merge from madai camera features branch)
blocking-b2g: --- → madai+
Confirming Justin's comment that it doesn't happen if the camera app is open on both devices.
Summary: [Camera][Madai] Black screen when opening camera from lockscreen → [Camera][Madai] Black screen when opening camera from lockscreen and camera app isn't open
Unfortunately the logcat doesn't show anything related to the camera (the word 'camera' doesn't appear anywhere in it).
Mike/Justin, we need one of you to dig in to see whats going on. 

Flags: needinfo?(mhabicher)
Flags: needinfo?(jdarcangelo)
Blocks: 983405
Assignee: nobody → jdarcangelo
Flags: needinfo?(jdarcangelo)
The following JS error is visible in the logcat when reproducing this:

E/GeckoConsole( 2688): [JavaScript Error: "types.forEach is not a function" {file: "app://" line: 6011}]
E/GeckoConsole( 2688): [JavaScript Error: "NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS: [JavaScript Error: "types.forEach is not a function" {file: "app://" line: 6011}]'[JavaScript Error: "types.forEach is not a function" {file: "app://" line: 6011}]' when calling method: [nsIDOMSystemMessageCallback::handleMessage]" {file: "null" line: 0}]

`types.forEach` is referring to line 141 in lib/activity.js:
Also: Black screen when launching Camera from Gallery app (when Camera was not already previously running). Both of these issues have the same root cause. Submitting a PR now.
Flags: needinfo?(mhabicher)
Attached file pull-request (master)
Attachment #8398133 - Flags: review?(dflanagan)
Comment on attachment 8398133 [details] [review]
pull-request (master)

The patch probably fixes the bug, but the code around the patch is so bad to begin with that I'd like to take this opportunity to request a bigger, better fix.

Ideally: the getModes() function would only be called for pick activities and not for the "record" activity that we use to invoke the camera.

Failing that, the logic of the getModes() function needs to be cleaned up and commented. Because right now it seems incoherent to me.
Attachment #8398133 - Flags: review?(dflanagan) → review-
Blocks: 989113
Comment on attachment 8398133 [details] [review]
pull-request (master)

David: I have cleaned up the code in activity.js. I think it is much easier to understand now. Please re-review. Thanks!
Attachment #8398133 - Flags: review- → review?(dflanagan)
Comment on attachment 8398133 [details] [review]
pull-request (master)

A couple of bugs and a couple of suggestions.  See github.
Attachment #8398133 - Flags: review?(dflanagan) → review-
Whiteboard: [m+]
Comment on attachment 8398133 [details] [review]
pull-request (master)

David: Please re-review and let me know if this looks ok. The app is now properly handling the 'record' activities and setting the correct `mode` (e.g.: picture, video) accordingly. So, the Gallery app will launch the Camera in the 'picture' mode by default, whereas the Video app will launch in the 'video' mode. Also, unit tests have been added/updated for everything in this patch.
Attachment #8398133 - Flags: review- → review?(dflanagan)
blocking-b2g: madai+ → ---
Duplicate of this bug: 989113
Comment on attachment 8398133 [details] [review]
pull-request (master)

r+ with nits addressed.

Most of my comments are requests for more comments in the code.

One of them seems like it might be a bug: I think the picture mode gets configured twice when the Camera is launched by activity, and I think lib/activity.js is taking over the definition of the default mode from config/app.js

I can review again if you'd like but if you address my nits and test carefully you can land this without re-review.
Attachment #8398133 - Flags: review?(dflanagan) → review+
Priority: -- → P1
We can reproduce this in the today's automation build:

Gaia      874fe42b82e8d819d592690e74db91c07179e68c
BuildID   20140401040202
Version   31.0a1 Dec 19 14:04:55 CST 2013
Whiteboard: [m+] → [reviewed-ready-to-land][m+]
Landed on master:
Closed: 7 years ago
Resolution: --- → FIXED
Depends on: 990653
Bulk edit for camera bugs.

If earlier comments do not show how this bug landed to master, it probably landed as part of which merged the camera-new-features branch into master.

This bug was uplifted from master to v1.4 as part of
Target Milestone: --- → 1.4 S5 (11apr)
Depends on: 992370
The bug is no longer reproduces on the latest 1.4 and master builds
No black screen appears when the camera is opened from "Lock" screen

1.4 Environmental Variables:
Device: Buri 1.4 MOZ
BuildID: 20140408000202
Gaia: 26983f356ecb1bcf30e862d334b5de790071803e
Gecko: 70b076fc7558
Version: 30.0a2
Firmware Version: v1.2-device.cfg

Master Environmental Variables:
Device: Buri Master 
BuildID: 20140408040204
Gaia: 1958454595b1fa0e061f0652ae965629993f5708
Gecko: 8883360b1edb
Version: 31.0a1
Firmware Version: v1.2-device.cfg
Depends on: 991925
You need to log in before you can comment on or make changes to this bug.