diff options
author | Szabolcs David <davidsz@inf.u-szeged.hu> | 2022-11-18 14:48:04 +0100 |
---|---|---|
committer | Szabolcs David <davidsz@inf.u-szeged.hu> | 2022-11-22 15:19:55 +0000 |
commit | e2006208ec3d5e091455eb4436de3dabe3550816 (patch) | |
tree | d61709f2da34ac4590b6dd535e4a5dca033e31e0 | |
parent | c5aff33c8daa8f7f6d2acfec636676dcf13ef1e0 (diff) | |
download | qtwebengine-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.cc | 5 |
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; |