Closed Bug 1023642 Opened 10 years ago Closed 10 years ago

Javascript Error: window.lockScreen.classList is undefined

Categories

(Firefox OS Graveyard :: Gaia::System::Lockscreen, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(blocking-b2g:2.0+, b2g-v2.0 verified, b2g-v2.1 verified)

VERIFIED FIXED
2.0 S4 (20june)
blocking-b2g 2.0+
Tracking Status
b2g-v2.0 --- verified
b2g-v2.1 --- verified

People

(Reporter: stephend, Assigned: mnjul)

References

Details

(Keywords: regression, Whiteboard: [fromAutomation][p=1])

Attachments

(4 files)

Since June 7th (at least, from what I can tell on Jenkins[1]), our Flame builds on master/mozilla-central have hit this specific exception/failure:

Traceback (most recent call last):
File "/var/jenkins/workspace/b2g.flame.mozilla-central.unittests/.env/local/lib/python2.7/site-packages/marionette_client-0.7.7-py2.7.egg/marionette/marionette_test.py", line 163, in run
testMethod()
File "/var/jenkins/workspace/b2g.flame.mozilla-central.unittests/tests/python/gaia-ui-tests/gaiatest/tests/unit/test_cleanup_gaia.py", line 51, in test_cleanup_gaia
self.cleanup_gaia()
File "/var/jenkins/workspace/b2g.flame.mozilla-central.unittests/tests/python/gaia-ui-tests/gaiatest/gaia_test.py", line 741, in cleanup_gaia
if self.data_layer.get_setting('airplaneMode.enabled'):
File "/var/jenkins/workspace/b2g.flame.mozilla-central.unittests/tests/python/gaia-ui-tests/gaiatest/gaia_test.py", line 155, in get_setting
return self.marionette.execute_async_script('return GaiaDataLayer.getSetting("%s")' % name, special_powers=True)
File "/var/jenkins/workspace/b2g.flame.mozilla-central.unittests/.env/local/lib/python2.7/site-packages/marionette_client-0.7.7-py2.7.egg/marionette/marionette.py", line 1177, in execute_async_script
filename=os.path.basename(frame[0]))
File "/var/jenkins/workspace/b2g.flame.mozilla-central.unittests/.env/local/lib/python2.7/site-packages/marionette_client-0.7.7-py2.7.egg/marionette/decorators.py", line 35, in _
return func(*args, **kwargs)
File "/var/jenkins/workspace/b2g.flame.mozilla-central.unittests/.env/local/lib/python2.7/site-packages/marionette_client-0.7.7-py2.7.egg/marionette/marionette.py", line 624, in _send_message
self._handle_error(response)
File "/var/jenkins/workspace/b2g.flame.mozilla-central.unittests/.env/local/lib/python2.7/site-packages/marionette_client-0.7.7-py2.7.egg/marionette/marionette.py", line 669, in _handle_error
raise JavascriptException(message=message, status=status, stacktrace=stacktrace)
JavascriptException: JavascriptException: TypeError: window.lockScreen.classList is undefined
stacktrace:
@app://system.gaiamobile.org/js/notifications.js, line 558

The latest result is here: (must be in-office or on VPN with ACL blessing to view: http://selenium.qa.mtv2.mozilla.com:8080/job/b2g.flame.mozilla-central.unittests/81/HTML_Report/)

[1] http://selenium.qa.mtv2.mozilla.com:8080/job/b2g.flame.mozilla-central.unittests/68/
Attached file logcat.txt (deleted) —
Assignee: nobody → 6a68
This is kinda funny: I've run the affected test 50x locally, can't repro at all.

This is using the latest current pvt build. Not sure what to make of this.

I'll try running the full suite tomorrow, I guess? stephend, any thoughts?
Flags: needinfo?(stephen.donner)
I should also mention that I'm using a Flame.
Assignee: 6a68 → zcampbell
This is not a test failure, it's a bug in Gaia.

It's the test coincidentally picking up on a javascript exception in the logcat. You can see the same error throughout the logcat that Stephen posted but the test failed when it tried to execute script at the same time the exception occurred.

I have worked out a way to replicate it manually:
* setup your adb logcat to capture GeckoConsole
1. Lock the phone
2. Press "power + home" to create a notification on the lockscreen.
3. Unlock the lockscreen.


Logcat output:
E/GeckoConsole( 3375): [JavaScript Error: "TypeError: window.lockScreen.classList is undefined" {file: "app://system.gaiamobile.org/js/notifications.js" line: 431}]
E/GeckoConsole( 3375): [JavaScript Error: "TypeError: window.lockScreen.classList is undefined" {file: "app://system.gaiamobile.org/js/notifications.js" line: 558}]
E/GeckoConsole( 3375): [JavaScript Error: "TypeError: window.lockScreen.classList is undefined" {file: "app://system.gaiamobile.org/js/notifications.js" line: 431}]
E/GeckoConsole( 3375): [JavaScript Error: "TypeError: window.lockScreen.classList is undefined" {file: "app://system.gaiamobile.org/js/notifications.js" line: 558}]

Build Under test:
Gaia      0750f66a0004870773c9a743fa6bdbe124379336
Gecko     https://hg.mozilla.org/mozilla-central/rev/429f55154e83
BuildID   20140611072409
Version   33.0a1
ro.build.version.incremental=eng.cltbld.20140611.105510
ro.build.date=Wed Jun 11 10:55:20 EDT 2014
Flags: needinfo?(stephen.donner) → needinfo?(lissyx+mozillians)
Summary: Investigate/fix why test_cleanup_gaia fails, and throws JavascriptException: TypeError: window.lockScreen.classList is undefined → Javascript Error: window.lockScreen.classList is undefined
Assignee: zcampbell → nobody
Component: Gaia::UI Tests → Gaia::System::Lockscreen
I have nothing to do with this code.

git blame shows this is code has been added from bug 950884.
Depends on: 950884
Flags: needinfo?(lissyx+mozillians) → needinfo?(jlu)
Keywords: regression
Confirmed, fix on the way
Status: NEW → ASSIGNED
Flags: needinfo?(jlu)
Assignee: nobody → jlu
Attached file Patch (Github PR) (deleted) —
Comment on attachment 8439035 [details]
Patch (Github PR)

Greg, could you review the patch? Thanks.
Attachment #8439035 - Attachment description: WIP Patch (Github PR) → Patch (Github PR)
Attachment #8439035 - Flags: review?(gweng)
Blocks: 950884
No longer depends on: 950884
Blocks: 1021301
Comment on attachment 8439035 [details]
Patch (Github PR)

Tests passed and it fixed the error code.
Attachment #8439035 - Flags: review?(gweng) → review+
Master: https://github.com/mozilla-b2g/gaia/commit/86353f9b5e133e3787041501e53bbb71c0e5c80d
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Comment on attachment 8439035 [details]
Patch (Github PR)

NOTE: Please see https://wiki.mozilla.org/Release_Management/B2G_Landing to better understand the B2G approval process and landings.

[Approval Request Comment]

[Bug caused by] (feature/regressing bug #): bug 1023642, a follow-up of bug 950884 & bug 1020115; and this bug shares root cause with bug 1021301.

[User impact] if declined: Javascript error that can prevent execution of further code related to receiving/showing notifications; for example, in bug 1021301, sound playing and vibration codes were prevented from execution because of the JS error outlined in this bug.

[Testing completed]: Yes (and was redone today after rebase against master)

[Risk to taking this patch] (and alternatives if risky): Low. I would actually say this is a JS typo bug instead of "functionality alteration". 

[String changes made]: None.
Attachment #8439035 - Flags: approval-gaia-v2.0?
blocking-b2g: --- → 2.0?
No longer blocks: 1021301
Dupe of a 2.0+ blocker.
blocking-b2g: 2.0? → 2.0+
Attachment #8439035 - Flags: approval-gaia-v2.0? → approval-gaia-v2.0+
Verified FIXED using today's engineering build on Flame with the latest base image:

Gaia      431aed0a7c7560c6eacd35ea69aa0a7a4ebe72c7
Gecko     https://hg.mozilla.org/mozilla-central/rev/37f08ddaea48
BuildID   20140618040513
Version   33.0a1
ro.build.version.incremental=108
ro.build.date=Tue Jun 10 19:40:40 CST 2014
Status: RESOLVED → VERIFIED
Whiteboard: [fromAutomation] → [fromAutomation][p=1]
I ran into an issue where receiving an email notification while the device is in sleep mode, prevents the device from vibrating until the user wakes the device up.  This issue however, DOES NOT occur when receiving an SMS in sleep.  

Would you like a separate bug to be filed on this issue?

----------------------------------------------------------------------
This issue DOES reproduce on Flame 2.1

2.1 Environmental Variables:
Device: Flame Master
Build ID: 20140624040203
Gaia: 45479c07cb6ba8c733093d6ee32c767c090c9a28
Gecko: e86b84998b18
Version: 33.0a1 (Master)
Firmware Version: v122
User Agent: Mozilla/5.0 (Mobile; rv:33.0) Gecko/33.0 Firefox/33.0


----------------------------------------------------------------------
This issue DOES reproduce on Flame 2.0

2.0 Environmental Variables:
Device: Flame 2.0
Build ID: 20140623000201
Gaia: 729f214b887ce8efe7d870145d31acb2c6427817
Gecko: 117ba3eda4d2
Version: 32.0a2 (2.0) 
Firmware Version: v121-2
User Agent: Mozilla/5.0 (Mobile; rv:32.0) Gecko/32.0 Firefox/32.0
Yes, please file a separate bug for the issue outlined in comment 19, thanks.
The bug for the issue in comment 19 has been filed. Here is a link in-case someone needs to reference it: Bug 1030310
This issue has been verified successfully on Flame 2.1.
See attachment: 1019.MP4 and logcat_1019.txt
Reproducing rate: 0/5

Step:
1. Lock the phone
2. Press "power + volume down key" to create a notification on the lockscreen.
3. Unlock the lockscreen.

Actual result:
We can't find the "window.lockScreen.classList is undefined" key words in logcat.

Flame 2.1 version:
Gaia-Rev        38e17b0219cbc50a4ad6f51101898f89e513a552
Gecko-Rev       https://hg.mozilla.org/releases/mozilla-2g34_v2_1/rev/8b92c4b8f59a
Build-ID        20141205001201
Version         34.0
Device-Name     flame
FW-Release      4.4.2
FW-Incremental  eng.cltbld.20141205.035305
FW-Date         Fri Dec  5 03:53:16 EST 2014
Bootloader      L1TC00011880
Attached file logcat_1019.txt (deleted) —
Attached video 1019.MP4 (deleted) —
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: