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.
This PR improves the performance of URL parsing regular expression by preventing catastrophic backtracking . This was causing performance issues on mobile devices. The PR adds an early return in regex matching by excluding text that doesn't match a url pattern and there by avoiding the need to validate the string for possible TLDs which is more than 10K characters long.
This is a reattempt to fix the issue, which had caused a regression earlier. #657
Fixed Issues
$ Expensify/App#34324
Proposal: Expensify/App#34324 (comment)
Tests
What unit/integration tests cover your change? What autoQA tests cover your change?
New test cases were added to verify that urls nested inside tags are not matched.
What tests did you perform that validates your changed worked?
Tested with Expensify App to make sure that url parsing is working as expected.
Follow steps below:
npm i
QA
Same as tests
This PR shouldn't introduce any regression related to URL validation and parsing within Expensify app.