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

Only add schemes to URLs with hostnames #1258

Merged
merged 1 commit into from
Feb 9, 2017

Conversation

kevindew
Copy link
Contributor

@kevindew kevindew commented Dec 10, 2016

Q A
Bug fix? yes
New feature? yes
BC breaks? no
Deprecations? no
New tests added? yes
Fixed tickets #1250
License MIT

Description

Fixes: #1250

This changes the way a scheme is prefixed to a URL when linkValidation
is on. Previously any URL that did not match the scheme regex would be
prefixed with 'https://' which meant that an absolute path such as '/'
would be changed to 'https:///'

This changes it so that the 'https://' is only prefixed if the first part
of the path looks like a hostname, which allows absolute paths to be
unchanged and most relative paths to be unchanged.

I say most as a path such as "test.txt" would be matched as a hostname and
converted to 'https://test.txt' but this seems an acceptable trade off
and definitely better than trying to store a list of valid TLDs so
filenames and hostnames can be determined.

@coveralls
Copy link

Coverage Status

Changes Unknown when pulling 3dfc087 on kevindew:single-slash-link into ** on yabwe:master**.

@nmielnik
Copy link
Member

nmielnik commented Feb 5, 2017

@kevindew looks like this conflicts with your previous change that got merged in. Could you fix the merge conflict and then we can get this guy in too?

Fixes: yabwe#1250

This changes the way a scheme is prefixed to a URL when linkValidation
is on. Previously any URL that did not match the scheme regex would be
prefixed with 'https://' which meant that an absolute path such as '/'
would be changed to 'https:///'

This changes it so that the 'https://' is only prefixed if the first part
of the path looks like a hostname, which allows absolute paths to be
unchanged and most relative paths to be unchanged.

I say most as a path such as "test.txt" would be matched as a hostname and
converted to 'https://test.txt' but this seems an acceptable trade off
and definitely better than trying to store a list of valid TLDs so
filenames and hostnames can be determined.
@coveralls
Copy link

Coverage Status

Changes Unknown when pulling 6d67581 on kevindew:single-slash-link into ** on yabwe:master**.

@kevindew
Copy link
Contributor Author

kevindew commented Feb 8, 2017

@nmielnik sure, I've rebased it against master now.

@nmielnik
Copy link
Member

nmielnik commented Feb 9, 2017

Awesome, all the tests pass in saucelabs, thanks for this @kevindew !

@nmielnik nmielnik merged commit 05a0037 into yabwe:master Feb 9, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

linkValidation bug in IE?
4 participants