summaryrefslogtreecommitdiff
path: root/chromium/url
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-03-11 11:32:04 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-03-18 13:40:17 +0000
commit31ccca0778db85c159634478b4ec7997f6704860 (patch)
tree3d33fc3afd9d5ec95541e1bbe074a9cf8da12a0e /chromium/url
parent248b70b82a40964d5594eb04feca0fa36716185d (diff)
downloadqtwebengine-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.cc12
-rw-r--r--chromium/url/gurl.h3
-rw-r--r--chromium/url/gurl_unittest.cc14
-rw-r--r--chromium/url/mojom/BUILD.gn2
-rw-r--r--chromium/url/mojom/url_gurl_mojom_traits_unittest.cc26
-rw-r--r--chromium/url/origin_unittest.cc4
-rw-r--r--chromium/url/url_canon_stdurl.cc4
-rw-r--r--chromium/url/url_canon_unittest.cc4
-rw-r--r--chromium/url/url_constants.cc4
-rw-r--r--chromium/url/url_constants.h2
-rw-r--r--chromium/url/url_util.cc7
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