feat: add "trust this website" button in external link popup when clicking on a link #3088
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
First time contributor checklist:
Contributor checklist:
clearnet
branchyarn ready
run passes successfully (more about tests here)Description
Feature request: #2662
This PR adds separate SessionOpenExternalLinkDialog component which is used instead of customized confirmation modal when opening links. This component has significant design changes to links popup, instead of forcing user to choose: either copy link or open it in browser, it allows to copy URL fully, partially, close popup and open link in default browser.
Additionally, second commit adds trusted websites controller which is essentially a list of hostnames that user trusts. When clicking on a link that can be parsed and that has matching hostname in that list, user will not be prompted to copy url, but instead, this link will be opened in default browser instantly.
User can add trusted websites by clicking on a "trust this website" button under main actions buttons in SessionOpenExternalLinkDialog, and remove websites from trusted websites list from settings -> privacy section.
Trusted websites controller is based on BlockedNumberController and saves hostnames list by
trusted-websites
key in db.I've added 4 localization keys:
trustHostname
(hashostname
variable),trustedWebsites
,trustedWebsitesDescription
,noTrustedWebsitesEntries
.This commit also fixes 2 bugs: