Cookies Disclaimer By continuing to browse the site, you are agreeing to our use of cookies. Learn more at Gitcoin's Privacy Policy.
Privacy Policy Gitcoin is GDPR complaint. Learn more in Gitcoin's Terms & Conditions.
Check out the Issue Explorer
Looking to fund some work? You can submit a new Funded Issue here.
USD
As a user, I want to tap any link on chat or type any char in webview and don't see any crashes or app hanging. ### The app doesn't crash anymore, only parsing URLs in UI is wrong! ### Description _Type_: Bug _Summary_: some of chars are unsafe and couldn't be the part of link; for such types of links other chats (`Telegram`, `Slack`) are excluded them as part of link. In Status these chars are resolved as part of link; If you tap on some of them, it leads to app crash or endless loop on Android. #### Expected behavior _Scenario 1:_ chars are not resolved as part of the link; _Scenario 2_ no crashes or endless spinner #### Actual behavior _Scenario 1:_ chars are resolved as part of the link (Status VS Telegram):  _Scenario 2_ crashes or endless spinner in Android ### Reproduction _Scenario 1:_ * Open Status * Sign in * Join any 1-1 or public chat * Send one link according to table below: |Char | Where is located | Link Examle | Link handling (Slack, Tetlgram) | Link handling (Status chat)| |----|----|----|----|----| |`!`, `$`, `%`, `&`, `*`, `+`, `,`, `.`, `:`, `";"`, `?`, `@`, `\`, `]`, `^`, ` grave accent`, `{`, `\\\|`, `}`, `~`, `‚`, `„`, `†`, `‡`, `‰`, `‹`, `‘`, `’`, `“`, `”`, `•`, `›`, `¡`, `¢`, `£`, `¤`, `¥`, `¦`, `§`, `¨`, `©`, `«`, `¬`, `®`, `¯`, `°`, `±`, `²`, `³`, `´`, `¶`, `·`, `¸`, `¹`, `º`, `»`, `¼`, `½`, `¾`, `¿` , `=`| At the beginning, At the end, At the middle | https://example.com!; !https://example.com; https://exam!ple.com | If char is placed in the end : it is not resolved as part of link;If char is placed in the middle: it splits link in 2 parts and it is not resolved as part of link. | chars are resolved as part of link| |`%`, `:`| At the middle | https://exam%ple.com | Slack: resolved as link;Telegram: link is split; | chars are resolved as part of link| * pay attention how links are handled in Status _Scenario 2:_ * Open Status on Android * Sign in * Join any 1-1 or public chat * Send one link from each category (according to table below): |Char | Where is located | Link Examle | Link handling (Status chat) | Link handling (Status webview)| |----|----|----|----|----| |`"` , `{`, `}`, ` grave accent`, `˜` ,`¨`, `¯`, `´`, `¸`, | At the beginning, At the end, At the middle | exam{ple.com | chars are resolved as part of link | no encoding;crash on Android.| |`space`| At the beginning, At the end, At the middle | exam ple.com | space is not resolved as part of URL | no encoding;crash on Android (known, #4205).| |`;`, `[`, `]`, `^`| At the end,At the middle | https://example.com;https://examp]le.com | chars are resolved as part of link | endless spinner on Android| |`@`, `\`| At the end | example.com@ | chars are resolved as part of link | endless spinner on Android| |The ASCII control characters `%00`-`%1F`| At the middle | https://examp%11le.com | chars are resolved as part of link | control characters are replaced by space on Android; endless spinner is shown| * tap on links or just paste them in Status browser ### Solution [comment]: # (Please summarise the solution and provide a task list on what needs to be fixed.) _Summary_: * [ ] don't resolve chars `!`, `$`, `%`, `&`, `*`, `+`, `,`, `.`, `:`, `";"`, `?`, `@`, `\`, `]`, `^`, ` grave accent`, `{`, `\\|`, `}`, `~`, `‚`, `„`, `†`, `‡`, `‰`, `‹`, `‘`, `’`, `“`, `”`, `•`, `›`, `¡`, `¢`, `£`, `¤`, `¥`, `¦`, `§`, `¨`, `©`, `«`, `¬`, `®`, `¯`, `°`, `±`, `²`, `³`, `´`, `¶`, `·`, `¸`, `¹`, `º`, `»`, `¼`, `½`, `¾`, `¿` , `=`, `"` , `{`, `}`, ` grave accent`, `˜` ,`¨`, `¯`, `´`, `¸` as part of links (according to provided examples); * [ ] encode `"` , `{`, `}`, ` grave accent`, `˜` ,`¨`, `¯`, `´`, `¸` to prevent app crash; * [ ] handle error with chars `;`, `[`, `]`, `^` and The ASCII control characters `%00`-`%1F` on Android ### Additional Information [comment]: # (Please do your best to fill this out.) * Status version: nightly 19/07/18 * Operating System: Android, iOS #### Logs * TF session for crash: https://app.testfairy.com/projects/4803622-status/builds/8526949/sessions/4396502918/?accessToken=ZsO/sUjPZjB2OhT/Z5Z1S1QehnA * TF session for endless spinner: https://app.testfairy.com/projects/4803622-status/builds/8530385/sessions/4396751579/?accessToken=li1UMhqLmGZCf-Es0Km-iE69cgk * Note: issue with whitespaces in URL is already created (https://github.com/status-im/status-react/issues/4205)