Index: url/third_party/mozilla/url_parse.cc |
diff --git a/url/third_party/mozilla/url_parse.cc b/url/third_party/mozilla/url_parse.cc |
index c143ed0073ff4b8125dc5b9bc2456d93bf1e432f..01d9d21fda2fe78718c09fdf5c2170f7f21aa76d 100644 |
--- a/url/third_party/mozilla/url_parse.cc |
+++ b/url/third_party/mozilla/url_parse.cc |
@@ -455,7 +455,8 @@ void DoParseFileSystemURL(const CHAR* spec, int spec_len, Parsed* parsed) { |
// Initializes a path URL which is merely a scheme followed by a path. Examples |
// include "about:foo" and "javascript:alert('bar');" |
template<typename CHAR> |
-void DoParsePathURL(const CHAR* spec, int spec_len, Parsed* parsed) { |
+void DoParsePathURL(const CHAR* spec, int spec_len, Parsed* parsed, |
+ bool trim_tail) { |
// Get the non-path and non-scheme parts of the URL out of the way, we never |
// use them. |
parsed->username.reset(); |
@@ -468,7 +469,8 @@ void DoParsePathURL(const CHAR* spec, int spec_len, Parsed* parsed) { |
// Strip leading & trailing spaces and control characters. |
int begin = 0; |
- TrimURL(spec, &begin, &spec_len); |
+ int dummy_spec_len = spec_len; |
+ TrimURL(spec, &begin, trim_tail ? &spec_len : &dummy_spec_len); |
// Handle empty specs or ones that contain only whitespace or control chars. |
if (begin == spec_len) { |
@@ -877,12 +879,14 @@ void ParseStandardURL(const base::char16* url, int url_len, Parsed* parsed) { |
DoParseStandardURL(url, url_len, parsed); |
} |
-void ParsePathURL(const char* url, int url_len, Parsed* parsed) { |
- DoParsePathURL(url, url_len, parsed); |
+void ParsePathURL(const char* url, int url_len, Parsed* parsed, |
+ bool trim_tail) { |
+ DoParsePathURL(url, url_len, parsed, trim_tail); |
} |
-void ParsePathURL(const base::char16* url, int url_len, Parsed* parsed) { |
- DoParsePathURL(url, url_len, parsed); |
+void ParsePathURL(const base::char16* url, int url_len, Parsed* parsed, |
+ bool trim_tail) { |
+ DoParsePathURL(url, url_len, parsed, trim_tail); |
} |
void ParseFileSystemURL(const char* url, int url_len, Parsed* parsed) { |