Closed Bug 1112392 Opened 6 years ago Closed 3 months ago

Desktop support for tab sharing (platform)

Categories

(Core :: WebRTC, defect, P3)

x86_64
Linux
defect

Tracking

()

RESOLVED FIXED
mozilla80
Tracking Status
firefox80 --- fixed
Blocking Flags:

People

(Reporter: jesup, Assigned: jesup)

References

(Blocks 2 open bugs)

Details

Attachments

(1 file)

Enable tab sharing for Desktop targets and resolve any issues.

UI changes will also be needed, and I believe changes to some MediaManager interfaces.

We need to identify the right stable identifier for a tab so the UI can pass it to us.
Just so that this is recorded: As long as screensharing as a whole is guarded by the whitelist, this is OK, but I'd like us to develop the right UX before the whitelist comes off.
This likely needs to turn into a ux/ui bug because I believe the platform support for desktop is done modulo any testing bugs found.
backlog: --- → webRTC+
Rank: 25
Priority: -- → P2
I ran into an issue with WebRTC in today's Nightly with tab sharing turned ON by default and no way to turn it off without killing the current call. It was alarming when the callee told me "Did you know I can see your browser tab?" Known issue?
(In reply to Jet Villegas (:jet) from comment #3)
> I ran into an issue with WebRTC in today's Nightly with tab sharing turned
> ON by default and no way to turn it off without killing the current call. It
> was alarming when the callee told me "Did you know I can see your browser
> tab?" Known issue?

This is actually Hello, not in webrtc screen/etc sharing; they've been reworking it to be focused around tab-sharing.  I think there's also a bug currently that you can't even 'pause' a tab-share in Hello.
ian, see comment 3
Flags: needinfo?(ianb)
Flags: needinfo?(ianb)
Mass change P2->P3 to align with new Mozilla triage process.
Priority: P2 → P3
Depends on: 1646597
Blocks: 1646597
No longer depends on: 1646597

Also we drop support for an independent-of-scroll/viewport capture, which
the old Tab Sharing supported, for security reasons (and we don't need it).

Depends on: 1648583
Assignee: nobody → rjesup
Attachment #9159090 - Attachment description: Bug 1112392: Move webrtc Tab Sharing to work in e10s/fission r=dminor,smaug,jib → Bug 1112392: Move webrtc Tab Sharing to work in e10s/fission r=dminor,smaug,jib,rhunt
Status: NEW → ASSIGNED
Attachment #9159090 - Attachment description: Bug 1112392: Move webrtc Tab Sharing to work in e10s/fission r=dminor,smaug,jib,rhunt → Bug 1112392: Move webrtc Tab Sharing to work in e10s/fission r=dminor,smaug,jib
Attachment #9159090 - Attachment description: Bug 1112392: Move webrtc Tab Sharing to work in e10s/fission r=dminor,smaug,jib → Bug 1112392: Move webrtc Tab Sharing to work in e10s/fission r=dminor,nika,jib
Blocks: 1651145
Pushed by rjesup@wgate.com:
https://hg.mozilla.org/integration/autoland/rev/20e97810b319
Move webrtc Tab Sharing to work in e10s/fission r=dminor

Backed out for bustages on tab_capturer.h

backout: https://hg.mozilla.org/integration/autoland/rev/59dc1d478e9467c1b8bc25f315f6e7f905faf8aa

push: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=20e97810b31987d2472f1a07ae81d1842b9a122c&group_state=expanded&selectedTaskRun=CEhhZtQuST-4anhA6GaNAw.0

failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=309201222&repo=autoland&lineNumber=15411

[task 2020-07-09T21:25:56.564Z] 21:25:56 INFO - In file included from /builds/worker/checkouts/gecko/dom/media/systemservices/video_engine/tab_capturer.cc:14:
[task 2020-07-09T21:25:56.564Z] 21:25:56 INFO - /builds/worker/checkouts/gecko/dom/media/systemservices/video_engine/tab_capturer.h(56,5): error: bad implicit conversion constructor for 'StartRunnable'
[task 2020-07-09T21:25:56.565Z] 21:25:56 INFO - StartRunnable(TabCapturer* videoSource)
[task 2020-07-09T21:25:56.565Z] 21:25:56 INFO - ^
[task 2020-07-09T21:25:56.565Z] 21:25:56 INFO - /builds/worker/checkouts/gecko/dom/media/systemservices/video_engine/tab_capturer.h(56,5): note: consider adding the explicit keyword to the constructor
[task 2020-07-09T21:25:56.565Z] 21:25:56 INFO - StartRunnable(TabCapturer* videoSource)
[task 2020-07-09T21:25:56.565Z] 21:25:56 INFO - ^
[task 2020-07-09T21:25:56.565Z] 21:25:56 INFO - explicit
[task 2020-07-09T21:25:56.565Z] 21:25:56 INFO - 1 error generated.
[task 2020-07-09T21:25:56.565Z] 21:25:56 ERROR - make[4]: *** [/builds/worker/checkouts/gecko/config/rules.mk:748: Unified_cpp_systemservices0.obj] Error 1
[task 2020-07-09T21:25:56.565Z] 21:25:56 INFO - make[4]: Leaving directory '/builds/worker/workspace/obj-build/dom/media/systemservices'
[task 2020-07-09T21:25:56.565Z] 21:25:56 ERROR - make[3]: *** [/builds/worker/checkouts/gecko/config/recurse.mk:72: dom/media/systemservices/target-objects] Error 2
[task 2020-07-09T21:25:56.565Z] 21:25:56 INFO - make[3]: *** Waiting for unfinished jobs....

Flags: needinfo?(rjesup)
Pushed by rjesup@wgate.com:
https://hg.mozilla.org/integration/autoland/rev/6318d54b7068
Move webrtc Tab Sharing to work in e10s/fission r=dminor
Pushed by rjesup@wgate.com:
https://hg.mozilla.org/integration/autoland/rev/6dea878aaf36
Move webrtc Tab Sharing to work in e10s/fission r=dminor

Backed out changeset 6dea878aaf36 (bug 1112392) for tab_capturer.cc related bustage

Push with failure: https://treeherder.mozilla.org/#/jobs?repo=autoland&group_state=expanded&searchStr=os%2Cx%2Cbuild&fromchange=68b50e39d159a266a8f2fa52ba032119396596e4&tochange=5cff164097d9d5eb441d7908ceaf370b865258c1&selectedTaskRun=MEU0_kc0SNy2T-ol_phtFg.0

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

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

[task 2020-07-10T20:10:54.087Z] 20:10:54     INFO -  make[4]: Entering directory '/builds/worker/workspace/obj-build/dom/media/systemservices'
[task 2020-07-10T20:10:54.092Z] 20:10:54     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang++ -isysroot /builds/worker/checkouts/gecko/MacOSX10.11.sdk -std=gnu++17 --target=x86_64-apple-darwin -o Unified_cpp_systemservices1.o -c  -fvisibility=hidden -fvisibility-inlines-hidden -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -ftrivial-auto-var-init=pattern -DDEBUG=1 -DHAVE_UINT64_T -DWEBRTC_POSIX -DWEBRTC_BUILD_LIBEVENT -DWEBRTC_MAC -DOS_POSIX=1 -DOS_MACOSX=1 -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DSTATIC_EXPORTABLE_JS_API -I/builds/worker/checkouts/gecko/dom/media/systemservices -I/builds/worker/workspace/obj-build/dom/media/systemservices -I/builds/worker/checkouts/gecko/media/libyuv/libyuv/include -I/builds/worker/checkouts/gecko/media/webrtc/signaling -I/builds/worker/checkouts/gecko/media/webrtc/trunk -I/builds/worker/checkouts/gecko/media/webrtc/trunk/webrtc -I/builds/worker/checkouts/gecko/dom/base -I/builds/worker/workspace/obj-build/ipc/ipdl/_ipdlheaders -I/builds/worker/checkouts/gecko/ipc/chromium/src -I/builds/worker/checkouts/gecko/ipc/glue -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/nspr -I/builds/worker/workspace/obj-build/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/obj-build/mozilla-config.h -Qunused-arguments -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wempty-init-stmt -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wc++2a-compat -Wcomma -Wimplicit-fallthrough -Wunused-function -Wunused-variable -Werror=non-literal-null-conversion -Wstring-conversion -Wtautological-overlap-compare -Wtautological-unsigned-enum-zero-compare -Wtautological-unsigned-zero-compare -Wno-error=tautological-type-limit-compare -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=backend-plugin -Wno-error=return-std-move -Wno-error=atomic-alignment -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-unknown-warning-option -fno-sized-deallocation -fno-aligned-new -fcrash-diagnostics-dir=/builds/worker/artifacts -fno-exceptions -fno-strict-aliasing -stdlib=libc++ -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -Xclang -load -Xclang /builds/worker/workspace/obj-build/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O3 -fno-omit-frame-pointer -funwind-tables -Werror -Wno-error=shadow -Wno-error=shadow  -MD -MP -MF .deps/Unified_cpp_systemservices1.o.pp   Unified_cpp_systemservices1.cpp
[task 2020-07-10T20:10:54.093Z] 20:10:54     INFO -  In file included from Unified_cpp_systemservices1.cpp:2:
[task 2020-07-10T20:10:54.093Z] 20:10:54    ERROR -  /builds/worker/checkouts/gecko/dom/media/systemservices/video_engine/tab_capturer.cc:102:39: error: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Werror,-Wformat]
[task 2020-07-10T20:10:54.093Z] 20:10:54     INFO -            ("TabShare: Start, id=%lu", mVideoSource->mBrowserId));
[task 2020-07-10T20:10:54.093Z] 20:10:54     INFO -                                  ~~~   ^~~~~~~~~~~~~~~~~~~~~~~~
[task 2020-07-10T20:10:54.093Z] 20:10:54     INFO -                                  %llu
[task 2020-07-10T20:10:54.093Z] 20:10:54     INFO -  /builds/worker/workspace/obj-build/dist/include/mozilla/Logging.h:281:56: note: expanded from macro 'MOZ_LOG'
[task 2020-07-10T20:10:54.093Z] 20:10:54     INFO -                                     MOZ_LOG_EXPAND_ARGS _args); \
[task 2020-07-10T20:10:54.093Z] 20:10:54     INFO -                                                         ^~~~~
[task 2020-07-10T20:10:54.093Z] 20:10:54     INFO -  /builds/worker/workspace/obj-build/dist/include/mozilla/Logging.h:218:34: note: expanded from macro 'MOZ_LOG_EXPAND_ARGS'
[task 2020-07-10T20:10:54.093Z] 20:10:54     INFO -  #define MOZ_LOG_EXPAND_ARGS(...) __VA_ARGS__
[task 2020-07-10T20:10:54.093Z] 20:10:54     INFO -                                   ^~~~~~~~~~~
[task 2020-07-10T20:10:54.093Z] 20:10:54     INFO -  1 error generated.
[task 2020-07-10T20:10:54.093Z] 20:10:54    ERROR -  make[4]: *** [/builds/worker/checkouts/gecko/config/rules.mk:748: Unified_cpp_systemservices1.o] Error 1
[task 2020-07-10T20:10:54.093Z] 20:10:54     INFO -  make[4]: Leaving directory '/builds/worker/workspace/obj-build/dom/media/systemservices'
[task 2020-07-10T20:10:54.093Z] 20:10:54     INFO -  make[4]: *** Waiting for unfinished jobs....
Pushed by rjesup@wgate.com:
https://hg.mozilla.org/integration/autoland/rev/ef25e5648b14
Move webrtc Tab Sharing to work in e10s/fission r=dminor
Status: ASSIGNED → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla80
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Target Milestone: mozilla80 → ---
Pushed by rjesup@wgate.com:
https://hg.mozilla.org/integration/autoland/rev/d57a030e6e3a
Move webrtc Tab Sharing to work in e10s/fission r=dminor
Status: REOPENED → RESOLVED
Closed: 3 months ago3 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla80
Flags: needinfo?(rjesup)
QA Whiteboard: [qa-80b-p2]
You need to log in before you can comment on or make changes to this bug.