-
Notifications
You must be signed in to change notification settings - Fork 984
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
Add unfurling of URLs in chats #11158
Comments
I've recreated issue #4606 from scratch since bounty-related discussions are long and distracting. |
@errorists, could you please check how up-to-date are designs for this feature? |
I updated the designs to allow more granular whitelisting of domains instead of a global opt-in. You can choose to dismiss it, or proceed to select which websites from a list hosted by us (MVP but I see no reason why it couldn't be a community sourced list or multiple lists similar to ad blocking) you want to enable link previews from. If you enable a website, URLs from that domain get unfurled until disabled. The exact wording could use some massaging 💆 edit: now that I think about it, navigating from Chat to Profile -> Settings instead of a modally presented view embedded in chat, would be the better choice here as it shows where to find it afterwards. |
@errorists, thanks for thinking it out! |
@vkjr @errorists great flow, would like to have fine grained trust/preview settings in a messenger app personally The security/privacy trade off here is weird and complicated. On a high level, previews trade privacy (cause metadata) for security (cause stupid phishing/click jacking is harder).
@vkjr I would totally not make a switch that renders previews for all senders. Instead, I'd add to the above text that opening or rendering links from untrusted/unknown sources poses a security risk. The policy to whitelist previews only for specific domains is great. |
@vkjr Any thoughts on how a white list can be maintained and used by desktop? |
@hesterbruikman, my suggestion is to maintain trusted urls list inside |
status-go sounds like a good place |
Interesting, |
After creating UI ran into the issue - can't find appropriate package to generate link previews. I hoped to use the one I used in old PR for desktop but it is outdated now. |
@vkjr not sure we need to use a library for the link preview, as we only support two domains for now and no need to make it generic for the first iteration. We also probably should consider pulling this information in status-go rather than react-native, so that both desktop and react can benefit from this (this will need to be done asynchronously for performance reasons). @iurimatias what do you think? @flexsurfer / @Ferossgp what do you think? |
@cammellos out of curiosity, which two domains? |
@errorists I was looking at the picture, I assumed github.com & youtube, or am I mistaking? |
that's a placeholder only, I have no clue how it should be decided if a website is good enough to be on the whitelist or not :) |
ah :D , I take those two are a safe bets? especially for starting out? maybe some gif website as well, but I would not expand the list a lot for the first iteration, what do you think? |
Naive question, what happens when link unfurling is unfurled...? E.g. https://twitter.com/ethstatus/status/1309133660357091341?s=20 For example, #artproject (currently bridged) is almost exclusively Twitter links, with in turn include image links |
yea sorry I should've place PornHub in design instead so it's more obvious :) How about Twitter? if GIFs then Tenor / GIPHY, both have terrible privacy policies so I'm not sure. |
Ok, say to cut the scope to a minimum, we just pick one for this task so we have a fully working implementation, and we add the remaining in separate issues? |
Sounds good! In that case I'd say start with Github to increases chances of CC's testing it. Separate issues can still be slated for the same release |
Thank you, I'll update the issue and create one for Youtube so we can use it as a template, unless there are objections. |
I'd really ask for Twitter instead of Youtube 🙏 |
There shouldn't be any difference in implementing url previews for different sites. Basically what we need is to parse tags from pages source code: |
Sure :) |
@vkjr up to you, but it's always best to keep the scope to a minimum and don't commit to extra work, as there might be some unknowns that we are not aware of, and it should not delay testing the meat of this PR, which is not the parsing of websites (any library can do that), but the UI/fetching etc (i.e you don't want to block this because it does not work with website x). |
Just wondering if was https://oembed.com/ spec considered? I think we could use a subset of features, and have our provider.json somewhere on IPFS |
@Ferossgp, thanks a lot! didn't know about this one |
status-im/status#2
User Story
As a user, I want the app to unfurl URLs so that I can easily see what they refer to without needing to open the URL.
Description
Type: Feature
Summary: If another user shares a URL with me (maybe from a 3rd party app #4605), it would be great if I could see the summary of the content of the URL so I have a quick idea of what it's about.
Expected behavior
Acceptance Criteria
http://
orhttps://
are unfurled on the receiving client side only for the URLs in the whitelist if enabledSecurity implications
We have to think about the security implications if we do this on the client side (will it be acceptable to access a random URL which might leak metadata about us?)
The text was updated successfully, but these errors were encountered: