diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-03-11 11:32:04 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-03-18 13:40:17 +0000 |
commit | 31ccca0778db85c159634478b4ec7997f6704860 (patch) | |
tree | 3d33fc3afd9d5ec95541e1bbe074a9cf8da12a0e /chromium/url | |
parent | 248b70b82a40964d5594eb04feca0fa36716185d (diff) | |
download | qtwebengine-chromium-31ccca0778db85c159634478b4ec7997f6704860.tar.gz |
BASELINE: Update Chromium to 80.0.3987.136
Change-Id: I98e1649aafae85ba3a83e67af00bb27ef301db7b
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
Diffstat (limited to 'chromium/url')
-rw-r--r-- | chromium/url/gurl.cc | 12 | ||||
-rw-r--r-- | chromium/url/gurl.h | 3 | ||||
-rw-r--r-- | chromium/url/gurl_unittest.cc | 14 | ||||
-rw-r--r-- | chromium/url/mojom/BUILD.gn | 2 | ||||
-rw-r--r-- | chromium/url/mojom/url_gurl_mojom_traits_unittest.cc | 26 | ||||
-rw-r--r-- | chromium/url/origin_unittest.cc | 4 | ||||
-rw-r--r-- | chromium/url/url_canon_stdurl.cc | 4 | ||||
-rw-r--r-- | chromium/url/url_canon_unittest.cc | 4 | ||||
-rw-r--r-- | chromium/url/url_constants.cc | 4 | ||||
-rw-r--r-- | chromium/url/url_constants.h | 2 | ||||
-rw-r--r-- | chromium/url/url_util.cc | 7 |
11 files changed, 40 insertions, 42 deletions
diff --git a/chromium/url/gurl.cc b/chromium/url/gurl.cc index d2374df4f47..fb06480ed6e 100644 --- a/chromium/url/gurl.cc +++ b/chromium/url/gurl.cc @@ -396,14 +396,14 @@ std::string GURL::ExtractFileName() const { return ComponentString(file_component); } -std::string GURL::PathForRequest() const { +base::StringPiece GURL::PathForRequestPiece() const { DCHECK(parsed_.path.len > 0) << "Canonical path for requests should be non-empty"; if (parsed_.ref.len >= 0) { // Clip off the reference when it exists. The reference starts after the // #-sign, so we have to subtract one to also remove it. - return std::string(spec_, parsed_.path.begin, - parsed_.ref.begin - parsed_.path.begin - 1); + return base::StringPiece(&spec_[parsed_.path.begin], + parsed_.ref.begin - parsed_.path.begin - 1); } // Compute the actual path length, rather than depending on the spec's // terminator. If we're an inner_url, our spec continues on into our outer @@ -412,7 +412,11 @@ std::string GURL::PathForRequest() const { if (parsed_.query.is_valid()) path_len = parsed_.query.end() - parsed_.path.begin; - return std::string(spec_, parsed_.path.begin, path_len); + return base::StringPiece(&spec_[parsed_.path.begin], path_len); +} + +std::string GURL::PathForRequest() const { + return PathForRequestPiece().as_string(); } std::string GURL::HostNoBrackets() const { diff --git a/chromium/url/gurl.h b/chromium/url/gurl.h index 9c680e08538..ad9f565586e 100644 --- a/chromium/url/gurl.h +++ b/chromium/url/gurl.h @@ -386,6 +386,9 @@ class COMPONENT_EXPORT(URL) GURL { // parameter, and query portions of the URL. It is guaranteed to be ASCII. std::string PathForRequest() const; + // Returns the same characters as PathForRequest(), avoiding a copy. + base::StringPiece PathForRequestPiece() const; + // Returns the host, excluding the square brackets surrounding IPv6 address // literals. This can be useful for passing to getaddrinfo(). std::string HostNoBrackets() const; diff --git a/chromium/url/gurl_unittest.cc b/chromium/url/gurl_unittest.cc index 0d7b65b58a8..31767db6546 100644 --- a/chromium/url/gurl_unittest.cc +++ b/chromium/url/gurl_unittest.cc @@ -539,11 +539,14 @@ TEST(GURLTest, PathForRequest) { for (size_t i = 0; i < base::size(cases); i++) { GURL url(cases[i].input); - std::string path_request = url.PathForRequest(); - EXPECT_EQ(cases[i].expected, path_request); + EXPECT_EQ(cases[i].expected, url.PathForRequest()); + EXPECT_EQ(cases[i].expected, url.PathForRequestPiece()); EXPECT_EQ(cases[i].inner_expected == NULL, url.inner_url() == NULL); - if (url.inner_url() && cases[i].inner_expected) + if (url.inner_url() && cases[i].inner_expected) { EXPECT_EQ(cases[i].inner_expected, url.inner_url()->PathForRequest()); + EXPECT_EQ(cases[i].inner_expected, + url.inner_url()->PathForRequestPiece()); + } } } @@ -567,11 +570,6 @@ TEST(GURLTest, EffectiveIntPort) { {"ftp://www.google.com:21/", 21}, {"ftp://www.google.com:80/", 80}, - // gopher - {"gopher://www.google.com/", 70}, - {"gopher://www.google.com:70/", 70}, - {"gopher://www.google.com:80/", 80}, - // file - no port {"file://www.google.com/", PORT_UNSPECIFIED}, {"file://www.google.com:443/", PORT_UNSPECIFIED}, diff --git a/chromium/url/mojom/BUILD.gn b/chromium/url/mojom/BUILD.gn index 55796a98742..e60a2a9058c 100644 --- a/chromium/url/mojom/BUILD.gn +++ b/chromium/url/mojom/BUILD.gn @@ -5,12 +5,14 @@ import("//mojo/public/tools/bindings/mojom.gni") mojom("url_mojom_gurl") { + generate_java = true sources = [ "url.mojom", ] } mojom("url_mojom_origin") { + generate_java = true sources = [ "origin.mojom", ] diff --git a/chromium/url/mojom/url_gurl_mojom_traits_unittest.cc b/chromium/url/mojom/url_gurl_mojom_traits_unittest.cc index 937a5ce0992..665dc07895b 100644 --- a/chromium/url/mojom/url_gurl_mojom_traits_unittest.cc +++ b/chromium/url/mojom/url_gurl_mojom_traits_unittest.cc @@ -7,7 +7,9 @@ #include "base/logging.h" #include "base/stl_util.h" #include "base/test/task_environment.h" -#include "mojo/public/cpp/bindings/binding.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" +#include "mojo/public/cpp/bindings/receiver.h" +#include "mojo/public/cpp/bindings/remote.h" #include "testing/gtest/include/gtest/gtest.h" #include "url/mojom/url_test.mojom.h" @@ -15,8 +17,8 @@ namespace url { class UrlTestImpl : public mojom::UrlTest { public: - explicit UrlTestImpl(mojo::InterfaceRequest<mojom::UrlTest> request) - : binding_(this, std::move(request)) {} + explicit UrlTestImpl(mojo::PendingReceiver<mojom::UrlTest> receiver) + : receiver_(this, std::move(receiver)) {} // UrlTest: void BounceUrl(const GURL& in, BounceUrlCallback callback) override { @@ -28,15 +30,15 @@ class UrlTestImpl : public mojom::UrlTest { } private: - mojo::Binding<UrlTest> binding_; + mojo::Receiver<UrlTest> receiver_; }; // Mojo version of chrome IPC test in url/ipc/url_param_traits_unittest.cc. TEST(MojoGURLStructTraitsTest, Basic) { base::test::SingleThreadTaskEnvironment task_environment; - mojom::UrlTestPtr proxy; - UrlTestImpl impl(MakeRequest(&proxy)); + mojo::Remote<mojom::UrlTest> remote; + UrlTestImpl impl(remote.BindNewPipeAndPassReceiver()); const char* serialize_cases[] = { "http://www.google.com/", "http://user:pass@host.com:888/foo;bar?baz#nop", @@ -45,7 +47,7 @@ TEST(MojoGURLStructTraitsTest, Basic) { for (size_t i = 0; i < base::size(serialize_cases); i++) { GURL input(serialize_cases[i]); GURL output; - EXPECT_TRUE(proxy->BounceUrl(input, &output)); + EXPECT_TRUE(remote->BounceUrl(input, &output)); // We want to test each component individually to make sure its range was // correctly serialized and deserialized, not just the spec. @@ -67,7 +69,7 @@ TEST(MojoGURLStructTraitsTest, Basic) { std::string("http://example.org/").append(kMaxURLChars + 1, 'a'); GURL input(url.c_str()); GURL output; - EXPECT_TRUE(proxy->BounceUrl(input, &output)); + EXPECT_TRUE(remote->BounceUrl(input, &output)); EXPECT_TRUE(output.is_empty()); } @@ -76,7 +78,7 @@ TEST(MojoGURLStructTraitsTest, Basic) { "http", "www.google.com", 80) .value(); Origin output; - EXPECT_TRUE(proxy->BounceOrigin(non_unique, &output)); + EXPECT_TRUE(remote->BounceOrigin(non_unique, &output)); EXPECT_EQ(non_unique, output); EXPECT_FALSE(output.opaque()); @@ -85,11 +87,11 @@ TEST(MojoGURLStructTraitsTest, Basic) { EXPECT_NE(unique1, unique2); EXPECT_NE(unique2, unique1); EXPECT_NE(unique2, non_unique); - EXPECT_TRUE(proxy->BounceOrigin(unique1, &output)); + EXPECT_TRUE(remote->BounceOrigin(unique1, &output)); EXPECT_TRUE(output.opaque()); EXPECT_EQ(unique1, output); Origin output2; - EXPECT_TRUE(proxy->BounceOrigin(unique2, &output2)); + EXPECT_TRUE(remote->BounceOrigin(unique2, &output2)); EXPECT_EQ(unique2, output2); EXPECT_NE(unique2, output); EXPECT_NE(unique1, output2); @@ -97,7 +99,7 @@ TEST(MojoGURLStructTraitsTest, Basic) { Origin normalized = Origin::CreateFromNormalizedTuple("http", "www.google.com", 80); EXPECT_EQ(normalized, non_unique); - EXPECT_TRUE(proxy->BounceOrigin(normalized, &output)); + EXPECT_TRUE(remote->BounceOrigin(normalized, &output)); EXPECT_EQ(normalized, output); EXPECT_EQ(non_unique, output); EXPECT_FALSE(output.opaque()); diff --git a/chromium/url/origin_unittest.cc b/chromium/url/origin_unittest.cc index 978a83301a8..1cd9889ea16 100644 --- a/chromium/url/origin_unittest.cc +++ b/chromium/url/origin_unittest.cc @@ -304,7 +304,6 @@ TEST_F(OriginTest, ConstructFromGURL) { // Registered URLs {"ftp://example.com/", "ftp", "example.com", 21}, - {"gopher://example.com/", "gopher", "example.com", 70}, {"ws://example.com/", "ws", "example.com", 80}, {"wss://example.com/", "wss", "example.com", 443}, {"wss://user:pass@example.com/", "wss", "example.com", 443}, @@ -354,9 +353,6 @@ TEST_F(OriginTest, ConstructFromGURL) { 123}, {"blob:https://example.com/guid-goes-here", "https", "example.com", 443}, {"blob:http://u:p@example.com/guid-goes-here", "http", "example.com", 80}, - - // Gopher: - {"gopher://8u.9.Vx6", "gopher", "8u.9.vx6", 70}, }; for (const auto& test_case : cases) { diff --git a/chromium/url/url_canon_stdurl.cc b/chromium/url/url_canon_stdurl.cc index c6193221985..8c9077acaa2 100644 --- a/chromium/url/url_canon_stdurl.cc +++ b/chromium/url/url_canon_stdurl.cc @@ -128,10 +128,6 @@ int DefaultPortForScheme(const char* scheme, int scheme_len) { else if (!strncmp(scheme, kWssScheme, scheme_len)) default_port = 443; break; - case 6: - if (!strncmp(scheme, kGopherScheme, scheme_len)) - default_port = 70; - break; case 2: if (!strncmp(scheme, kWsScheme, scheme_len)) default_port = 80; diff --git a/chromium/url/url_canon_unittest.cc b/chromium/url/url_canon_unittest.cc index f1f625882b5..fc98ca36525 100644 --- a/chromium/url/url_canon_unittest.cc +++ b/chromium/url/url_canon_unittest.cc @@ -1393,7 +1393,7 @@ TEST(URLCanonTest, CanonicalizeStandardURL) { {"https://foo:80/", "https://foo:80/", true}, {"ftp://foo:21/", "ftp://foo/", true}, {"ftp://foo:80/", "ftp://foo:80/", true}, - {"gopher://foo:70/", "gopher://foo/", true}, + {"gopher://foo:70/", "gopher://foo:70/", true}, {"gopher://foo:443/", "gopher://foo:443/", true}, {"ws://foo:80/", "ws://foo/", true}, {"ws://foo:81/", "ws://foo:81/", true}, @@ -2325,14 +2325,12 @@ TEST(URLCanonTest, DefaultPortForScheme) { {"ftp", 21}, {"ws", 80}, {"wss", 443}, - {"gopher", 70}, {"fake-scheme", PORT_UNSPECIFIED}, {"HTTP", PORT_UNSPECIFIED}, {"HTTPS", PORT_UNSPECIFIED}, {"FTP", PORT_UNSPECIFIED}, {"WS", PORT_UNSPECIFIED}, {"WSS", PORT_UNSPECIFIED}, - {"GOPHER", PORT_UNSPECIFIED}, }; for (auto& test_case : cases) { diff --git a/chromium/url/url_constants.cc b/chromium/url/url_constants.cc index 3540240bbc6..69399e42004 100644 --- a/chromium/url/url_constants.cc +++ b/chromium/url/url_constants.cc @@ -20,11 +20,13 @@ const char kDataScheme[] = "data"; const char kFileScheme[] = "file"; const char kFileSystemScheme[] = "filesystem"; const char kFtpScheme[] = "ftp"; -const char kGopherScheme[] = "gopher"; const char kHttpScheme[] = "http"; const char kHttpsScheme[] = "https"; const char kJavaScriptScheme[] = "javascript"; const char kMailToScheme[] = "mailto"; +// This is for QuicTransport (https://wicg.github.io/web-transport/). +// See also: https://www.iana.org/assignments/uri-schemes/prov/quic-transport +const char kQuicTransportScheme[] = "quic-transport"; const char kTelScheme[] = "tel"; const char kWsScheme[] = "ws"; const char kWssScheme[] = "wss"; diff --git a/chromium/url/url_constants.h b/chromium/url/url_constants.h index d538e4dc023..f5a33dd8135 100644 --- a/chromium/url/url_constants.h +++ b/chromium/url/url_constants.h @@ -26,11 +26,11 @@ COMPONENT_EXPORT(URL) extern const char kDataScheme[]; COMPONENT_EXPORT(URL) extern const char kFileScheme[]; COMPONENT_EXPORT(URL) extern const char kFileSystemScheme[]; COMPONENT_EXPORT(URL) extern const char kFtpScheme[]; -COMPONENT_EXPORT(URL) extern const char kGopherScheme[]; COMPONENT_EXPORT(URL) extern const char kHttpScheme[]; COMPONENT_EXPORT(URL) extern const char kHttpsScheme[]; COMPONENT_EXPORT(URL) extern const char kJavaScriptScheme[]; COMPONENT_EXPORT(URL) extern const char kMailToScheme[]; +COMPONENT_EXPORT(URL) extern const char kQuicTransportScheme[]; COMPONENT_EXPORT(URL) extern const char kTelScheme[]; COMPONENT_EXPORT(URL) extern const char kWsScheme[]; COMPONENT_EXPORT(URL) extern const char kWssScheme[]; diff --git a/chromium/url/url_util.cc b/chromium/url/url_util.cc index 927ed722218..cafe468fad7 100644 --- a/chromium/url/url_util.cc +++ b/chromium/url/url_util.cc @@ -34,11 +34,11 @@ struct SchemeRegistry { // canonicalization. {kFileScheme, SCHEME_WITH_HOST}, {kFtpScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION}, - {kGopherScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION}, {kWssScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION}, // WebSocket secure. {kWsScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION}, // WebSocket. {kFileSystemScheme, SCHEME_WITHOUT_AUTHORITY}, + {kQuicTransportScheme, SCHEME_WITH_HOST_AND_PORT}, }; // Schemes that are allowed for referrers. @@ -49,10 +49,7 @@ struct SchemeRegistry { // Schemes that do not trigger mixed content warning. std::vector<std::string> secure_schemes = { - kHttpsScheme, - kAboutScheme, - kDataScheme, - kWssScheme, + kHttpsScheme, kAboutScheme, kDataScheme, kQuicTransportScheme, kWssScheme, }; // Schemes that normal pages cannot link to or access (i.e., with the same |