Skip to content
This repository has been archived by the owner on Oct 8, 2021. It is now read-only.

Navigation with authority-less URI schemes fail #6599

Closed
datag opened this issue Oct 11, 2013 · 1 comment
Closed

Navigation with authority-less URI schemes fail #6599

datag opened this issue Oct 11, 2013 · 1 comment

Comments

@datag
Copy link

datag commented Oct 11, 2013

For URI schemes like qrc: (Qt resource; http://qt-project.org/doc/qt-5.0/qtcore/resources.html) which do not include an
authority but only a path the method $.mobile.path.getLocation()
incorrectly returns a URL with a double-slash (//) after the scheme name.

In a Qt Webkit ThinClient application ("Web application wrapper"; http://qt-project.org/doc/qt-4.8/qtwebkit-bridge.html) this resulted in continuously
adding up slashes in front of the path (e.g. "qrc://////index.html") when jQuery Mobile handles navigation. This in turn resulted in a complete page reload for pure anchor links instead of just handling the hash change.

(The issue occured in combination with a application using BackboneJS as a router.)

As this issue can only be fully reproduced in a ThinClient (demo code: http://qt-project.org/doc/qt-4.8/webkit-imageanalyzer.html), no full jsbin testcase is attached.

So what is the issue: The method $.mobile.path.getLocation() incorrectly assumes that the URI's hierarchical part (http://en.wikipedia.org/wiki/URI_scheme) always starts with a double-slash (//). A URI "mailto:foobar@example.com" (which is authority-less, too) might not make much sense when supplied to $.mobile.path.getLocation(). However, for qrc: URIs it's the way resources are addressed in Qt. jQuery mobile alters a qrc:/index.html URI to qrc:///index.html, which does not seem correct to me.


Original pull request is #6597 and commit is e5290d2 (5 tests failed)
Affected versions: at least 1.3.1 until master
Simple testcase: http://jsbin.com/ofuhaw/606/

gabrielschulhof pushed a commit that referenced this issue Mar 20, 2014
Note: this does indeed represent a fix for gh-6574, but only once a version of
Cordova sporting apache/cordova-wp8#30 is released.

Closes gh-6597
Fixes gh-6574
Fixes gh-6599
gabrielschulhof pushed a commit that referenced this issue Apr 8, 2014
Note: this does indeed represent a fix for gh-6574, but only once a version of
Cordova sporting apache/cordova-wp8#30 is released.

Closes gh-6597
Fixes gh-6574
Fixes gh-6599
gabrielschulhof pushed a commit that referenced this issue May 29, 2014
@datag
Copy link
Author

datag commented May 31, 2014

@gabrielschulhof Awesome, thank you for fixing this issue!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
1 participant