Closed Bug 1655078 Opened 4 years ago Closed 4 years ago

Make the "Stop Sharing" button stop all display sharing immediately

Categories

(Firefox :: Site Permissions, task, P2)

task

Tracking

()

VERIFIED FIXED
81 Branch
Tracking Status
firefox81 --- verified
firefox82 --- verified
firefox83 --- verified

People

(Reporter: mconley, Assigned: mconley)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

Right now, since bug 1654266 landed, "Stop Sharing" stops individual display streams in LIFO (last-in-first-out) order. We should determine if clicking "Stop Sharing" should stop streams in LIFO or FIFO order, or if it should stop all display streams simultaneously. Or perhaps some other option. We should ask UX what the expected behaviour is here.

Severity: -- → N/A
Priority: -- → P2

Having consulted with UX, the appropriate behaviour is to stop all display sharing streams immediately upon hitting that button.

Summary: Determine behaviour of Stop Sharing button when sharing multiple displays across multiple sites → Make the "Stop Sharing" button stop all display sharing immediately

Hey dbodea, this is the first change that we've been requested to make for the WebRTC global sharing indicator.

Flags: needinfo?(daniel.bodea)
Assignee: nobody → mconley
Status: NEW → ASSIGNED
Pushed by mconley@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/33eb26623d7e
Make the 'Stop Sharing' button in the WebRTC indicator stop all screen sharing streams. r=pbz

Backed out changeset 33eb26623d7e (bug 1655078) for browser_stop_sharing_button.js failures

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&group_state=expanded&selectedTaskRun=T_OQP1HLRwKWt_JorLD7wQ.0&searchStr=mochitests%2Cwith%2Cfission%2Cenabled%2Ctest-linux1804-64%2Fdebug-mochitest-browser-chrome-fis-e10s%2Cbc&fromchange=f6b488b696f30e89806914ae1eee965a6d382019&tochange=5c65d9119017b5ffac691ee850af2438815a2d0b

Backout link: https://hg.mozilla.org/integration/autoland/rev/5c65d9119017b5ffac691ee850af2438815a2d0b

Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=312045452&repo=autoland&lineNumber=16204

...
[task 2020-08-04T21:32:10.683Z] 21:32:10     INFO - Entering test bound test_stop_sharing_multiple
[task 2020-08-04T21:32:10.684Z] 21:32:10     INFO - Opening first tab
[task 2020-08-04T21:32:10.685Z] 21:32:10     INFO - Buffered messages logged at 21:32:08
[task 2020-08-04T21:32:10.686Z] 21:32:10     INFO - Sharing camera, microphone and screen
[task 2020-08-04T21:32:10.687Z] 21:32:10     INFO - requesting devices
[task 2020-08-04T21:32:10.689Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | webRTC-shareDevices notification shown - 
[task 2020-08-04T21:32:10.690Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | notification panel open - 
[task 2020-08-04T21:32:10.691Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | notification panel populated - 
[task 2020-08-04T21:32:10.691Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | microphone selector visible - 
[task 2020-08-04T21:32:10.692Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | camera selector visible - 
[task 2020-08-04T21:32:10.693Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | screen selector hidden - 
[task 2020-08-04T21:32:10.694Z] 21:32:10     INFO - requesting devices
[task 2020-08-04T21:32:10.695Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | webRTC-shareDevices notification shown - 
[task 2020-08-04T21:32:10.696Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | notification panel open - 
[task 2020-08-04T21:32:10.696Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | notification panel populated - 
[task 2020-08-04T21:32:10.697Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | microphone selector hidden - 
[task 2020-08-04T21:32:10.698Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | camera selector hidden - 
[task 2020-08-04T21:32:10.699Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | screen selector visible - 
[task 2020-08-04T21:32:10.699Z] 21:32:10     INFO - Buffered messages logged at 21:32:09
[task 2020-08-04T21:32:10.700Z] 21:32:10     INFO - Opening second tab
[task 2020-08-04T21:32:10.701Z] 21:32:10     INFO - Sharing camera and screen
[task 2020-08-04T21:32:10.702Z] 21:32:10     INFO - requesting devices
[task 2020-08-04T21:32:10.702Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | webRTC-shareDevices notification shown - 
[task 2020-08-04T21:32:10.703Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | notification panel open - 
[task 2020-08-04T21:32:10.704Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | notification panel populated - 
[task 2020-08-04T21:32:10.705Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | microphone selector hidden - 
[task 2020-08-04T21:32:10.706Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | camera selector visible - 
[task 2020-08-04T21:32:10.706Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | screen selector hidden - 
[task 2020-08-04T21:32:10.706Z] 21:32:10     INFO - requesting devices
[task 2020-08-04T21:32:10.707Z] 21:32:10     INFO - Buffered messages logged at 21:32:10
[task 2020-08-04T21:32:10.707Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | webRTC-shareDevices notification shown - 
[task 2020-08-04T21:32:10.707Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | notification panel open - 
[task 2020-08-04T21:32:10.707Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | notification panel populated - 
[task 2020-08-04T21:32:10.707Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | microphone selector hidden - 
[task 2020-08-04T21:32:10.707Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | camera selector hidden - 
[task 2020-08-04T21:32:10.707Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | screen selector visible - 
[task 2020-08-04T21:32:10.708Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | Should have tab2 selected. - [object XULElement] == [object XULElement] - 
[task 2020-08-04T21:32:10.708Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | sharing attribute is set - 
[task 2020-08-04T21:32:10.708Z] 21:32:10     INFO - Buffered messages finished
[task 2020-08-04T21:32:10.708Z] 21:32:10     INFO - TEST-UNEXPECTED-FAIL | browser/base/content/test/webrtc/browser_stop_sharing_button.js | showing camera icon in the identity block - Got "screen", expected "camera"
[task 2020-08-04T21:32:10.708Z] 21:32:10     INFO - Stack trace:
[task 2020-08-04T21:32:10.708Z] 21:32:10     INFO - chrome://mochikit/content/browser-test.js:test_is:1327
[task 2020-08-04T21:32:10.708Z] 21:32:10     INFO - chrome://mochitests/content/browser/browser/base/content/test/webrtc/head.js:checkSharingUI:719
[task 2020-08-04T21:32:10.708Z] 21:32:10     INFO - chrome://mochitests/content/browser/browser/base/content/test/webrtc/browser_stop_sharing_button.js:test_stop_sharing_multiple:94
[task 2020-08-04T21:32:10.709Z] 21:32:10     INFO - TEST-PASS | browser/base/content/test/webrtc/browser_stop_sharing_button.js | sharing icon(s) should be in paused state when paused - 
...
Flags: needinfo?(mconley)
Pushed by mconley@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/5e8f428cbedd
Make the 'Stop Sharing' button in the WebRTC indicator stop all screen sharing streams. r=pbz
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 81 Branch

Mike,
I am attempting to verify this issue, but I'm not sure how I could reproduce it. How do I share multiple displays across multiple sites? Can you please give me some steps to repro?

Furthermore, it appears it was backed out due to errors. Is it back in now? Is it test ready?

Flags: needinfo?(daniel.bodea)
Flags: needinfo?(mconley)

(In reply to Bodea Daniel [:danibodea] from comment #8)

Furthermore, it appears it was backed out due to errors. Is it back in now? Is it test ready?

Hey dbodea,

Yes, this can be tested. Here are some steps to try:

  1. In one browser tab, go to Google Meet, join a meeting, and share your screen or a window
  2. In another tab, go to Talky.io, just a meeting, and share your screen or a window
  3. In a third tab, go to https://www.webrtc-experiment.com/getDisplayMedia/ and click on "Test getDisplayMedia API", and share your screen or a window.

Then, in the indicator, click "Stop Sharing". Sharing of screen/windows should stop in all tabs.

Flags: qe-verify+

I have managed to test this new implementation around random combinations of web-apps screen sharing at the same time between whereby, jitsi, google meet, Hangouts, getDisplayMedia testpage and talky on Windows 10, Ubuntu 20 and Mac 10.15. It appears to behave as expected. I haven't found an app or a combination of apps that won't stop sharing when the "Stop Sharing" button is pressed.

I will consider this implementation fixed, but I would like to leave it with my Ni on it until we have a full round of testing done, to make sure that NO APP will behave incorrectly.

Flags: qe-verify+ → needinfo?(daniel.bodea)

I have verified this implementation using a few more WebRTC web-apps in different combinations and no unexpected behavior was noticed.
I will deem this bug verified. Thank you.

Status: RESOLVED → VERIFIED
Flags: needinfo?(daniel.bodea)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: