BuddyUp/Phase2
From MozillaWiki
< BuddyUp
In phase 2, we want helpees to share their screen with helpers so they can get better help.
Contents
Pointing on the screen
Helpers can tap the helpee screen to indicate an area of the screen. The coordinates are sent to the helpee's device and displayed on top of the UI.
The current plan is something like this:
- In Gecko:
- Create a new permission (similar to moz-attention) in Gecko accessible to privileged apps: overlay (proposed name)
- Accept a new value for window functionality features in window.open to declare the overlay type.
- In Gaia:
- Create an OverlayWindow that will stay on top of all the UI and not capture user touches.
- In our app:
- Open an OverlayWindow where we draw the coordinates received via WebRTC.
Protecting the helpee's privacy
Even if you share your screen with someone you trust, you don't want some information to be displayed. In phase2, all helpers will be vouched.
Not displaying passwords
We need to not display the last letter in password fields and also not display which letters are pressed on the keyboard. This will reduce the usability of the phone for that scenario.
- In Gecko:
- WebRTC sets a Gecko preference when screen sharing starts.
- This preference is also reflected as a Gaia setting.
- When that preference is on, we don't display the last letter in password fields http://dxr.mozilla.org/mozilla-central/source/widget/gonk/nsLookAndFeel.cpp#441-453
- In Gaia:
- The keyboard application listens to the Gaia setting to decide whether or not to display the key active effects.
Not displaying user data (text, images)
No clear idea on the best way to do this. Ideas:
- Blurring all the screen. We can already do that by using CSS filters on the helper side. But can it be done on the helpee side before going over the network?
- Blurring specific parts of the screen identified as user data. This seems like a lot of work (adding DOM attributes to specify this, updating all apps to add this attribute, blurring those sections of content before sending over the network) with a fairly limited improvement on blurring all the screen.