summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzabolcs David <davidsz@inf.u-szeged.hu>2022-11-18 14:48:04 +0100
committerSzabolcs David <davidsz@inf.u-szeged.hu>2022-11-22 15:19:55 +0000
commite2006208ec3d5e091455eb4436de3dabe3550816 (patch)
treed61709f2da34ac4590b6dd535e4a5dca033e31e0
parentc5aff33c8daa8f7f6d2acfec636676dcf13ef1e0 (diff)
downloadqtwebengine-chromium-e2006208ec3d5e091455eb4436de3dabe3550816.tar.gz
Fix fragment navigations on custom URL schemes
Don't try to resolve Path syntax custom schemes as authority based schemes. Task-number: QTBUG-102058 Change-Id: I673158f35e30e40f725c9cabb7b32b0babcfdfd9 Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/444185 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r--chromium/url/url_util.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/chromium/url/url_util.cc b/chromium/url/url_util.cc
index e985d3049a7..829200b4679 100644
--- a/chromium/url/url_util.cc
+++ b/chromium/url/url_util.cc
@@ -344,8 +344,11 @@ bool DoResolveRelative(const char* base_spec,
// The effect is to allow, for example, GURL("qrc:foo").Resolve("bar") to
// return "qrc:bar" instead of just erroring out.
base::StringPiece scheme_piece(&base_spec[base_parsed.scheme.begin], base_parsed.scheme.len);
- if (CustomScheme::FindScheme(scheme_piece))
+ if (const CustomScheme* scheme = CustomScheme::FindScheme(scheme_piece)) {
base_is_hierarchical = true;
+ if (scheme->type == SCHEME_WITHOUT_AUTHORITY)
+ base_is_authority_based = false;
+ }
}
SchemeType unused_scheme_type = SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION;