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

Add support for the file scheme to joinUrls. #5989

Merged
merged 3 commits into from
Nov 28, 2017
Merged

Add support for the file scheme to joinUrls. #5989

merged 3 commits into from
Nov 28, 2017

Conversation

emackey
Copy link
Contributor

@emackey emackey commented Nov 18, 2017

Some environments allow local file access from JavaScript. In particular, Electron-based environments, such as the HTML preview window in Visual Studio Code, allow this.

For AnalyticalGraphicsInc/gltf-vscode#58.

@cesium-concierge
Copy link

Signed CLA is on file.

@emackey, thanks for the pull request! Maintainers, we have a signed CLA from @emackey, so you can review this at any time.

⚠️ I noticed that CHANGES.md has not been updated. If this change updates the public API in any way, fixes a bug, or makes any non-trivial update, please add a bullet point to CHANGES.md and comment on this pull request so we know it was updated. For more info, see the Pull Request Guidelines.


I am a bot who helps you make Cesium awesome! Contributions to my configuration are welcome.

🌍 🌎 🌏

@emackey
Copy link
Contributor Author

emackey commented Nov 18, 2017

Travis failed... Was it something on this branch? How can I tell?

@emackey
Copy link
Contributor Author

emackey commented Nov 19, 2017

Ah I guess Travis is OK then, since an edit to CHANGES.md fixed it.

@ggetz
Copy link
Contributor

ggetz commented Nov 21, 2017

Thanks @emackey! This looks good to merge.

Some tests are finicky, but you can restart the build on the log page if you think a failure was a fluke.

@@ -78,6 +78,10 @@ define([
if (baseUri.path !== '' && baseUri.path !== '/') {
url = url.replace(/\/?$/, '/');
baseUri.path = baseUri.path.replace(/^\/?/g, '');

if (baseUri.authority === '') {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What exactly is this checking for? I'd like to better understand this change before we merge.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On line 79, a regex is used to add a slash in case a slash is missing from the end of the authority. For example:

http://host => http://host/

http://host/ => http://host/

But with the file protocol, authority can be blank for local files. So:

file:// => file:// -- incorrect, should be file:///

In this case, the regex on line 79 does not add a needed slash after an empty authority, because it sees a slash that came before the authority as satisfying the expression.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Originally, this test was if (url === 'file://'), but I think checking for the blank authority is potentially more generic.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mramato Are you OK with this now?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, have been out on vacation. Can we just add a one line comment with your above explanation so future devs aren't confused. Once that's in, I'll merge.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@hpinkos
Copy link
Contributor

hpinkos commented Nov 28, 2017

Thanks @emackey !

@hpinkos hpinkos merged commit c31f219 into master Nov 28, 2017
@hpinkos hpinkos deleted the join-file-urls branch November 28, 2017 20:03
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.

5 participants