Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Accept a help/hint string for screencasting/remote desktop portal #758

Open
salmanmlk opened this issue Mar 29, 2022 · 12 comments · May be fixed by #939
Open

Accept a help/hint string for screencasting/remote desktop portal #758

salmanmlk opened this issue Mar 29, 2022 · 12 comments · May be fixed by #939
Labels
help wanted new api This requires adding API to an existing portal portal: screencast Screencast portal

Comments

@salmanmlk
Copy link

Consider the use case where a user wants to allow someone they trust (e.g. [email protected]) remote support to have access to their computer. This can be achieved today by starting a remote desktop portal session along with selecing sources to capture to allow the interested party to take control of local computer. The dialog/prompt shown to the user currently doesn't have a mechanism to display a custom help/hint message as to why access to screencapture and/or remote desktop portal is required. It will be nice if an app, that is starting these portal sessions, have a way to provide the session start method a help/hint string that tells the user why the app intends to capture screen e.g. if a remoting solution is allowing "[email protected]" in, it should be to display as part of the portal dialog: "Hint: [email protected] is requesting access to your computer. Allow them to access the following resources?"

Of course, the app starting the portal/session could have this help/hint only dialog to the user but then it isn't a smooth workflow. User will be prompted twice (one to inform the user that a remote support is being provided i.e. by presenting the help/hint dialog and another one for user to confirm that certain resources should be allowed to be accessed remotely) which isn't a very smooth user experience in my opinion. It will be great if we could unify these two (potential) dialogs.

@jadahl
Copy link
Collaborator

jadahl commented Mar 30, 2022

Perhaps something like

diff --git a/data/org.freedesktop.portal.RemoteDesktop.xml b/data/org.freedesktop.portal.RemoteDesktop.xml
index 0a93ea4..6bc2ca6 100644
--- a/data/org.freedesktop.portal.RemoteDesktop.xml
+++ b/data/org.freedesktop.portal.RemoteDesktop.xml
@@ -134,6 +134,15 @@
               more information about the @handle.
             </para></listitem>
           </varlistentry>
+          <varlistentry>
+            <term>hint s</term>
+            <listitem><para>
+              A localized user facing string meant to provide a hint
+              about the context the application intends use the shared
+              resources. Portal backends may incorporate this into potential
+              dialogs allowing users to make more well informed decisions.
+            </para></listitem>
+          </varlistentry>
         </variablelist>
 
         The following results get returned via the

But would perhaps be good to also provide some more guidelines. For example avoid "Hint" in the text, or "Allow them to access following resources?" since those can be stylized better by the backend.

Anyhow, I think this makes sense to have.

@GeorgesStavracas
Copy link
Member

I'd have chosen description for the name, but I agree it makes sense to have this

@jadahl
Copy link
Collaborator

jadahl commented Mar 30, 2022

I'd have chosen description for the name, but I agree it makes sense to have this

Works for me.

@snwh
Copy link

snwh commented Mar 31, 2022

Weighing in here with some design input. I agree that description or purpose is a better term here over "hint". As for how this could be displayed to the user, this could simply be a part of the existing portal dialog wherein the reason for the request is presented as part of the overall request, see the quick mockup below for an example.

image

@grulja
Copy link
Contributor

grulja commented Apr 8, 2022

+1. I would also like such option be available for the ScreenCast portal? The use-case I have here is web browsers, where we can show the user specific web page that is asking to share a screen.

@jadahl
Copy link
Collaborator

jadahl commented Apr 8, 2022

I would also like such option be available for the ScreenCast portal?

I see no reason to limit it to the remote desktop portal. The remote desktop and screen cast portals come hand in hand after all.

@jadahl
Copy link
Collaborator

jadahl commented Apr 8, 2022

see the quick mockup below for an example.

We still need to have some kind of separation, one where the portal provides trusted info about the source, and then a way for the application to provide context/description, e.g.

Select monitor to share with Some App

╭────────────────────────────────────╮
│ www.videomeeting.com is requesting │
│ to access your screen              │
╰────────────────────────────────────╯

In the first part, we only know about the application ID, not about any user or context inside that application, at most we can say what application and e.g. provide an application icon.

The second part would be completely provided by the application. I think the thing we need to define is what expectations applications can have on how it will be presented, so that it is possible to know how to formulate the text in a way that fits into how it is presented.

@hadess
Copy link
Contributor

hadess commented Apr 19, 2022

FWIW, I don't think that the reason for requesting screencast access should be in shown in the portal authorisation dialogue, it should be in the application instead, except for debugging purposes. See the "Displaying a Custom Screen Before a Permission Alert" section for an example:
https://developer.apple.com/design/human-interface-guidelines/ios/app-architecture/accessing-user-data/

Ideally, just like when popping up a file chooser, the reason for asking access is clear based on context.

The authorisation workflow for websites is obviously different, especially when the browser doesn't trust the site, and the site doesn't trust the portal, so this might will need careful design.

Maybe the reason for authorisation is only displayed when the program statically declares itself as being a browser because in all other cases the application should be showing details ahead of time?

@GeorgesStavracas
Copy link
Member

GeorgesStavracas commented May 13, 2022

@hadess on OBS Studio, multiple screencasts can be set up simultaneously, and even with the screencast restoration feature, multiple dialogs can pop up (e.g. when monitors changed or previously shared windows are not available anymore). Hinting which scene and source on the dialog is the only good option I can think of. What would you suggest on this case?

@allanday
Copy link

on OBS Studio, multiple screencasts can be set up simultaneously, and even with the screencast restoration feature, multiple dialogs can pop up (e.g. when monitors changed or previously shared windows are not available anymore). Hinting which scene and source on the dialog is the only good option I can think of. What would you suggest on this case?

It would be good to know what's going on this case a bit better. Is a single screen share request for OBS equivalent to a website requesting access to the screen? Generally speaking, these user requests are about privacy - you're agreeing to show a particular recipient your screen, whether that be a website or an app. The idea in each case is that there's a different viewer on the other side.

The other thing to consider here is how we handle multiple simultaneous requests, because multiple dialogs popping up at the same time doesn't sound like a great experience...

@allanday
Copy link

Three points from a UX design perspective:

  1. Showing an URL as a descriptor is pretty straightforward. It doesn't need to be translated, and would be fairly easy to incorporate into a authorization dialog. "Firefox wants to share your screen with meet.gnome.org" works fine.

  2. I'm not sure what non-URL descriptors of share destinations would look like in practice. "OBS wants to share your screen with "my show episode 2"" doesn't quite make sense. (On the other hand, "OBS wants to view your screen" does work.)

  3. I have some concerns about including a longer explanation from an app. I suspect that these would often state the obvious, be low quality, and not fit with the rest of a permission dialog. Plus there's the translation issue.

@Mikenux
Copy link

Mikenux commented Aug 10, 2023

For web browser URLs, if it is certain that the web browser will forward the record to said website, then it is fine. If not, it's not right. The portal should tell the truth. Even if we communicate in a portal dialog that the given reason comes from the app, does this have any real added value since the given reason could probably be false? in other words, would it be worth presenting a potentially false reason to the user? In my opinion, no.

@GeorgesStavracas GeorgesStavracas added help wanted new api This requires adding API to an existing portal portal: screencast Screencast portal labels Oct 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted new api This requires adding API to an existing portal portal: screencast Screencast portal
Projects
Status: Triaged
Development

Successfully merging a pull request may close this issue.

8 participants