Closed Bug 1126107 Opened 9 years ago Closed 9 years ago

Intermittent browser_devices_get_user_media.js | WebRTC indicator hidden - Got true, expected false

Categories

(Firefox :: Site Permissions, defect)

x86_64
Linux
defect
Not set
normal
Points:
3

Tracking

()

RESOLVED FIXED
Firefox 40
Iteration:
40.1 - 13 Apr
Tracking Status
firefox37 --- wontfix
firefox38 --- fixed
firefox38.0.5 --- fixed
firefox39 --- fixed
firefox40 --- fixed
firefox-esr31 --- unaffected

People

(Reporter: KWierso, Assigned: florian)

References

Details

(Keywords: intermittent-failure)

Attachments

(1 file)

16:13:18 INFO - 458 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | no webRTC-sharingDevices popup notification
16:13:18 INFO - 459 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | WebRTC indicator hidden
16:13:18 INFO - 460 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | camera global indicator as expected
16:13:18 INFO - 461 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | microphone global indicator as expected
16:13:18 INFO - 462 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | screen global indicator as expected
16:13:18 INFO - 463 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | WebRTC menu should be hidden
16:13:18 INFO - 464 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | popup WebRTC indicator hidden
16:13:18 INFO - 465 INFO getUserMedia audio+video: stop sharing
16:13:18 INFO - 466 INFO requesting devices
16:13:18 INFO - 467 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | webRTC-shareDevices notification shown
16:13:18 INFO - 468 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | notification panel open
16:13:18 INFO - 469 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | notification panel populated
16:13:18 INFO - 470 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | expected notification getUserMedia:request
16:13:18 INFO - 471 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | microphone selector visible
16:13:18 INFO - 472 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | camera selector visible
16:13:18 INFO - 473 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | received ok
16:13:18 INFO - 474 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | expected notification getUserMedia:response:allow
16:13:18 INFO - 475 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | expected notification recording-device-events
16:13:18 INFO - 476 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | expected camera and microphone to be shared
16:13:18 INFO - 477 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | webRTC-sharingDevices notification appeared
16:13:18 INFO - 478 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | WebRTC indicator visible
16:13:18 INFO - 479 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | camera global indicator as expected
16:13:18 INFO - 480 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | microphone global indicator as expected
16:13:18 INFO - 481 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | screen global indicator as expected
16:13:18 INFO - 482 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | WebRTC menu should be visible
16:13:18 INFO - 483 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | popup WebRTC indicator visible
16:13:18 INFO - 484 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | video global indicator attribute as expected
16:13:18 INFO - 485 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | audio global indicator attribute as expected
16:13:18 INFO - 486 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | screen global indicator attribute as expected
16:13:18 INFO - 487 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | only one global indicator window
16:13:18 INFO - 488 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | got recording-device-events notification
16:13:18 INFO - 489 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | expected notification getUserMedia:revoke
16:13:18 INFO - 490 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | webRTC-sharingDevices notification removed
16:13:18 INFO - 491 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | expected notification recording-window-ended
16:13:18 INFO - 492 INFO TEST-FAIL | browser/base/content/test/general/browser_devices_get_user_media.js | Got the 'recording-device-events' notification twice, likely because of bug 962719
16:13:18 INFO - 493 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | expected nothing to be shared
16:13:18 INFO - 494 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | no webRTC-sharingDevices popup notification
16:13:18 INFO - 495 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | WebRTC indicator hidden
16:13:18 INFO - 496 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | camera global indicator as expected
16:13:18 INFO - 497 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | microphone global indicator as expected
16:13:18 INFO - 498 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | screen global indicator as expected
16:13:18 INFO - 499 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | WebRTC menu should be hidden
16:13:18 INFO - 500 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | popup WebRTC indicator hidden
16:13:18 INFO - 501 INFO closing the stream
16:13:18 INFO - 502 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | webRTC-sharingDevices notification removed
16:13:18 INFO - 503 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | WebRTC indicator hidden
16:13:18 INFO - 504 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | camera global indicator as expected
16:13:18 INFO - 505 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | microphone global indicator as expected
16:13:18 INFO - 506 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | screen global indicator as expected
16:13:18 INFO - 507 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | WebRTC menu should be hidden
16:13:18 INFO - 508 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | popup WebRTC indicator hidden
16:13:18 INFO - 509 INFO getUserMedia audio+video: reloading the page removes all gUM UI
16:13:18 INFO - 510 INFO requesting devices
16:13:18 INFO - 511 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | webRTC-shareDevices notification shown
16:13:18 INFO - 512 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | notification panel open
16:13:18 INFO - 513 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | notification panel populated
16:13:18 INFO - 514 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | expected notification getUserMedia:request
16:13:18 INFO - 515 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | microphone selector visible
16:13:18 INFO - 516 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | camera selector visible
16:13:18 INFO - 517 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | received ok
16:13:18 INFO - 518 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | expected notification getUserMedia:response:allow
16:13:18 INFO - 519 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | expected notification recording-device-events
16:13:18 INFO - 520 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | expected camera and microphone to be shared
16:13:18 INFO - 521 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | webRTC-sharingDevices notification appeared
16:13:18 INFO - 522 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | WebRTC indicator visible
16:13:18 INFO - 523 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | camera global indicator as expected
16:13:18 INFO - 524 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | microphone global indicator as expected
16:13:18 INFO - 525 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | screen global indicator as expected
16:13:18 INFO - 526 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | WebRTC menu should be visible
16:13:18 INFO - 527 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | popup WebRTC indicator visible
16:13:19 INFO - 528 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | video global indicator attribute as expected
16:13:19 INFO - 529 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | audio global indicator attribute as expected
16:13:19 INFO - 530 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | screen global indicator attribute as expected
16:13:19 INFO - 531 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | only one global indicator window
16:13:19 INFO - 532 INFO reloading the web page
16:13:19 INFO - 533 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | webRTC-sharingDevices notification removed
16:13:19 INFO - 534 INFO TEST-FAIL | browser/base/content/test/general/browser_devices_get_user_media.js | Got the 'recording-device-events' notification twice, likely because of bug 962719
16:13:19 INFO - 535 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | expected notification recording-device-events
16:13:19 INFO - 536 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | expected notification recording-window-ended
16:13:19 INFO - 537 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | expected nothing to be shared
16:13:19 INFO - 538 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | no webRTC-sharingDevices popup notification
16:13:19 INFO - 539 INFO TEST-UNEXPECTED-FAIL | browser/base/content/test/general/browser_devices_get_user_media.js | WebRTC indicator hidden - Got true, expected false
16:13:19 INFO - Stack trace:
16:13:19 INFO - chrome://mochikit/content/browser-test.js:test_is:851
16:13:19 INFO - chrome://mochitests/content/browser/browser/base/content/test/general/head.js:assertWebRTCIndicatorStatus:618
16:13:19 INFO - self-hosted:next:660
16:13:19 INFO - self-hosted:LegacyIteratorNext:2239
16:13:19 INFO - chrome://mochitests/content/browser/browser/base/content/test/general/browser_devices_get_user_media.js:checkNotSharing:223
16:13:19 INFO - self-hosted:InterpretGeneratorResume:702
16:13:19 INFO - self-hosted:next:610
16:13:19 INFO - Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:870:23
16:13:19 INFO - this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:749:7
16:13:19 INFO - this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:691:37
16:13:19 INFO - 540 INFO TEST-UNEXPECTED-FAIL | browser/base/content/test/general/browser_devices_get_user_media.js | camera global indicator as expected - Got true, expected false
16:13:19 INFO - Stack trace:
16:13:19 INFO - chrome://mochikit/content/browser-test.js:test_is:851
16:13:19 INFO - chrome://mochitests/content/browser/browser/base/content/test/general/head.js:assertWebRTCIndicatorStatus:629
16:13:19 INFO - self-hosted:next:660
16:13:19 INFO - self-hosted:LegacyIteratorNext:2239
16:13:19 INFO - chrome://mochitests/content/browser/browser/base/content/test/general/browser_devices_get_user_media.js:checkNotSharing:223
16:13:19 INFO - self-hosted:InterpretGeneratorResume:702
16:13:19 INFO - self-hosted:next:610
16:13:19 INFO - Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:870:23
16:13:19 INFO - this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:749:7
16:13:19 INFO - this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:691:37
16:13:19 INFO - 541 INFO TEST-UNEXPECTED-FAIL | browser/base/content/test/general/browser_devices_get_user_media.js | microphone global indicator as expected - Got true, expected false
16:13:19 INFO - Stack trace:
16:13:19 INFO - chrome://mochikit/content/browser-test.js:test_is:851
16:13:19 INFO - chrome://mochitests/content/browser/browser/base/content/test/general/head.js:assertWebRTCIndicatorStatus:630
16:13:19 INFO - self-hosted:next:660
16:13:19 INFO - self-hosted:LegacyIteratorNext:2239
16:13:19 INFO - chrome://mochitests/content/browser/browser/base/content/test/general/browser_devices_get_user_media.js:checkNotSharing:223
16:13:19 INFO - self-hosted:InterpretGeneratorResume:702
16:13:19 INFO - self-hosted:next:610
16:13:19 INFO - Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:870:23
16:13:19 INFO - this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:749:7
16:13:19 INFO - this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:691:37
16:13:19 INFO - 542 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | screen global indicator as expected
16:13:19 INFO - 543 INFO TEST-UNEXPECTED-FAIL | browser/base/content/test/general/browser_devices_get_user_media.js | WebRTC menu should be hidden - Got true, expected false
16:13:19 INFO - Stack trace:
16:13:19 INFO - chrome://mochikit/content/browser-test.js:test_is:851
16:13:19 INFO - chrome://mochitests/content/browser/browser/base/content/test/general/head.js:assertWebRTCIndicatorStatus:637
16:13:19 INFO - self-hosted:next:660
16:13:19 INFO - self-hosted:LegacyIteratorNext:2239
16:13:19 INFO - chrome://mochitests/content/browser/browser/base/content/test/general/browser_devices_get_user_media.js:checkNotSharing:223
16:13:19 INFO - self-hosted:InterpretGeneratorResume:702
16:13:19 INFO - self-hosted:next:610
16:13:19 INFO - Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:870:23
16:13:19 INFO - this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:749:7
16:13:19 INFO - this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:691:37
16:13:19 INFO - 544 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | popup WebRTC indicator hidden
16:13:19 INFO - 545 INFO getUserMedia prompt: Always/Never Share
16:13:19 INFO - 546 INFO audio+video, user grants, expect both perms set to allow
16:13:19 INFO - 547 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | webRTC-shareDevices notification shown
16:13:19 INFO - 548 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | notification panel open
16:13:19 INFO - 549 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | notification panel populated
16:13:19 INFO - 550 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | expected notification getUserMedia:request
16:13:19 INFO - 551 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | microphone selector expected to be visible
16:13:19 INFO - 552 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | camera selector expected to be visible
16:13:19 INFO - 553 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | received ok
16:13:19 INFO - 554 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | expected notification getUserMedia:response:allow
16:13:19 INFO - 555 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | expected notification recording-device-events
16:13:19 INFO - 556 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | expected CameraAndMicrophone to be shared
16:13:19 INFO - 557 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | microphone persistently allowed
16:13:19 INFO - 558 INFO TEST-PASS | browser/base/content/test/general/browser_devices_get_user_media.js | camera persistently allowed
16:13:19 INFO - 559 INFO closing the stream
Component: WebRTC → Device Permissions
Product: Core → Firefox
This is a regression from bug 1120546.
Blocks: 1120546
(In reply to Florian Quèze [:florian] [:flo] from comment #163)
> This is a regression from bug 1120546.

Actually, bug 1121852 shows that reloading an iframe isn't the only case triggering this failure.
Attached patch PatchSplinter Review
The current test assumes that when we stop a stream the global indicator is removed immediately. I think this is still true in most cases, but it seems there are edge cases where it's slightly async (eg. reloading an iframe using gUM to stop the stream in it, like I pointed out in comment 163). I haven't fully investigated bug 1121852, but I suspect it's just that Loop also has a case where the global indicator is removed asynchronously.

When running with e10s, I don't expect this to be synchronous anymore, so I think making the test wait is one step toward making these tests less broken on e10s.

Of course, I'm assuming here that only the test has an issue, and that the code behaves correctly. If it turns out this patch doesn't help with the intermittent failure, I may have to revise that assumption.

https://treeherder.mozilla.org/#/jobs?repo=try&revision=1ec31c3fdac6
Attachment #8591616 - Flags: review?(gijskruitbosch+bugs)
Comment on attachment 8591616 [details] [diff] [review]
Patch

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

::: browser/base/content/test/general/head.js
@@ +667,5 @@
> +  if (!expected && ui.showGlobalIndicator) {
> +    // It seems the global indicator is not always removed synchronously
> +    // in some cases.
> +    info("waiting for the global indicator to be hidden");
> +    yield promiseWaitForCondition(() => !ui.showGlobalIndicator);

I mean, I'll take it, but is 3s going to be enough?
Attachment #8591616 - Flags: review?(gijskruitbosch+bugs) → review+
https://hg.mozilla.org/mozilla-central/rev/ee039853cec3
Assignee: nobody → florian
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 40
Hi Florian, can you provide a point value.
Iteration: --- → 40.1 - 13 Apr
Flags: qe-verify?
Flags: needinfo?(florian)
Flags: firefox-backlog+
Points: --- → 3
Flags: qe-verify?
Flags: qe-verify-
Flags: needinfo?(florian)
We haven't seen any similar failure since the patch landed, I think this is a success :).
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: