Revved to chromium 2a04445358913b81ed786927172647b701b73113 refs/remotes/origin/HEAD
diff --git a/gurl_unittest.cc b/gurl_unittest.cc index f38d7f9..3e94550 100644 --- a/gurl_unittest.cc +++ b/gurl_unittest.cc
@@ -2,18 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "base/macros.h" #include "testing/gtest/include/gtest/gtest.h" #include "url/gurl.h" #include "url/url_canon.h" #include "url/url_test_utils.h" -// Some implementations of base/basictypes.h may define ARRAYSIZE. -// If it's not defined, we define it to the ARRAYSIZE_UNSAFE macro -// which is in our version of basictypes.h. -#ifndef ARRAYSIZE -#define ARRAYSIZE ARRAYSIZE_UNSAFE -#endif - namespace url { using test_utils::WStringToUTF16; @@ -232,7 +226,7 @@ "http:path", "://google.com", }; - for (size_t i = 0; i < ARRAYSIZE(valid_cases); i++) { + for (size_t i = 0; i < arraysize(valid_cases); i++) { EXPECT_TRUE(GURL(valid_cases[i]).is_valid()) << "Case: " << valid_cases[i]; } @@ -244,7 +238,7 @@ "http://google.com:12three45", "path", }; - for (size_t i = 0; i < ARRAYSIZE(invalid_cases); i++) { + for (size_t i = 0; i < arraysize(invalid_cases); i++) { EXPECT_FALSE(GURL(invalid_cases[i]).is_valid()) << "Case: " << invalid_cases[i]; } @@ -299,7 +293,7 @@ {"filesystem:http://www.google.com/type/", "../foo.html", true, "filesystem:http://www.google.com/type/foo.html"}, }; - for (size_t i = 0; i < ARRAYSIZE(resolve_cases); i++) { + for (size_t i = 0; i < arraysize(resolve_cases); i++) { // 8-bit code path. GURL input(resolve_cases[i].base); GURL output = input.Resolve(resolve_cases[i].relative); @@ -331,7 +325,7 @@ {"filesystem:http://www.google.com/temp/foo?q#b", "http://www.google.com/"}, {"filesystem:http://user:pass@google.com:21/blah#baz", "http://google.com:21/"}, }; - for (size_t i = 0; i < ARRAYSIZE(cases); i++) { + for (size_t i = 0; i < arraysize(cases); i++) { GURL url(cases[i].input); GURL origin = url.GetOrigin(); EXPECT_EQ(cases[i].expected, origin.spec()); @@ -350,7 +344,7 @@ {"http://:@www.google.com", "http://www.google.com/"}, {"http://www.google.com/temp/foo?q#b", "http://www.google.com/temp/foo?q"}, }; - for (size_t i = 0; i < ARRAYSIZE(cases); i++) { + for (size_t i = 0; i < arraysize(cases); i++) { GURL url(cases[i].input); GURL origin = url.GetAsReferrer(); EXPECT_EQ(cases[i].expected, origin.spec()); @@ -369,7 +363,7 @@ {"filesystem:file:///temporary/bar.html?baz=22", "filesystem:file:///temporary/"}, }; - for (size_t i = 0; i < ARRAYSIZE(cases); i++) { + for (size_t i = 0; i < arraysize(cases); i++) { GURL url(cases[i].input); GURL empty_path = url.GetWithEmptyPath(); EXPECT_EQ(cases[i].expected, empty_path.spec()); @@ -401,7 +395,7 @@ {"filesystem:http://www.google.com/foo/bar.html?foo#bar", NULL, NULL, NULL, NULL, NULL, "/", "", "", "filesystem:http://www.google.com/foo/"}, }; - for (size_t i = 0; i < ARRAYSIZE(replace_cases); i++) { + for (size_t i = 0; i < arraysize(replace_cases); i++) { const ReplaceCase& cur = replace_cases[i]; GURL url(cur.base); GURL::Replacements repl; @@ -458,7 +452,7 @@ {"filesystem:http://www.google.com/temporary/foo/bar.html?query", "/foo/bar.html?query", "/temporary"}, }; - for (size_t i = 0; i < ARRAYSIZE(cases); i++) { + for (size_t i = 0; i < arraysize(cases); i++) { GURL url(cases[i].input); std::string path_request = url.PathForRequest(); EXPECT_EQ(cases[i].expected, path_request); @@ -506,7 +500,7 @@ {"filesystem:file:///t/foo", PORT_UNSPECIFIED}, }; - for (size_t i = 0; i < ARRAYSIZE(port_tests); i++) { + for (size_t i = 0; i < arraysize(port_tests); i++) { GURL url(port_tests[i].spec); EXPECT_EQ(port_tests[i].expected_int_port, url.EffectiveIntPort()); } @@ -527,7 +521,7 @@ {"some random input!", false}, }; - for (size_t i = 0; i < ARRAYSIZE(ip_tests); i++) { + for (size_t i = 0; i < arraysize(ip_tests); i++) { GURL url(ip_tests[i].spec); EXPECT_EQ(ip_tests[i].expected_ip, url.HostIsIPAddress()); } @@ -552,7 +546,7 @@ {"http://]/", "]", "]"}, {"", "", ""}, }; - for (size_t i = 0; i < ARRAYSIZE(cases); i++) { + for (size_t i = 0; i < arraysize(cases); i++) { GURL url(cases[i].input); EXPECT_EQ(cases[i].expected_host, url.host()); EXPECT_EQ(cases[i].expected_plainhost, url.HostNoBrackets());
diff --git a/third_party/mozilla/url_parse.cc b/third_party/mozilla/url_parse.cc index 6256796..ba842b8 100644 --- a/third_party/mozilla/url_parse.cc +++ b/third_party/mozilla/url_parse.cc
@@ -621,23 +621,13 @@ return; } - // Search backwards for a parameter, which is a normally unused field in a - // URL delimited by a semicolon. We parse the parameter as part of the - // path, but here, we don't want to count it. The last semicolon is the - // parameter. The path should start with a slash, so we don't need to check - // the first one. + // Extract the filename range from the path which is between + // the last slash and the following semicolon. int file_end = path.end(); - for (int i = path.end() - 1; i > path.begin; i--) { + for (int i = path.end() - 1; i >= path.begin; i--) { if (spec[i] == ';') { file_end = i; - break; - } - } - - // Now search backwards from the filename end to the previous slash - // to find the beginning of the filename. - for (int i = file_end - 1; i >= path.begin; i--) { - if (IsURLSlash(spec[i])) { + } else if (IsURLSlash(spec[i])) { // File name is everything following this character to the end *file_name = MakeRange(i + 1, file_end); return;
diff --git a/url_canon_icu_unittest.cc b/url_canon_icu_unittest.cc index b28c30a..12b7ded 100644 --- a/url_canon_icu_unittest.cc +++ b/url_canon_icu_unittest.cc
@@ -10,13 +10,6 @@ #include "url/url_canon_stdstring.h" #include "url/url_test_utils.h" -// Some implementations of base/basictypes.h may define ARRAYSIZE. -// If it's not defined, we define it to the ARRAYSIZE_UNSAFE macro -// which is in our version of basictypes.h. -#ifndef ARRAYSIZE -#define ARRAYSIZE ARRAYSIZE_UNSAFE -#endif - namespace url { using test_utils::WStringToUTF16; @@ -61,7 +54,7 @@ "hello\xa7\x41%26%231758%3B\xa6\x6eworld"}, }; - for (size_t i = 0; i < ARRAYSIZE(icu_cases); i++) { + for (size_t i = 0; i < arraysize(icu_cases); i++) { UConvScoper conv(icu_cases[i].encoding); ASSERT_TRUE(conv.converter() != NULL); ICUCharsetConverter converter(conv.converter()); @@ -118,7 +111,7 @@ "?q=Chinese%26%2365319%3B"}, }; - for (size_t i = 0; i < ARRAYSIZE(query_cases); i++) { + for (size_t i = 0; i < arraysize(query_cases); i++) { Component out_comp; UConvScoper conv(query_cases[i].encoding);
diff --git a/url_canon_unittest.cc b/url_canon_unittest.cc index 469e8a0..3ab8710 100644 --- a/url_canon_unittest.cc +++ b/url_canon_unittest.cc
@@ -12,13 +12,6 @@ #include "url/url_parse.h" #include "url/url_test_utils.h" -// Some implementations of base/basictypes.h may define ARRAYSIZE. -// If it's not defined, we define it to the ARRAYSIZE_UNSAFE macro -// which is in our version of basictypes.h. -#ifndef ARRAYSIZE -#define ARRAYSIZE ARRAYSIZE_UNSAFE -#endif - namespace url { using test_utils::WStringToUTF16; @@ -123,7 +116,7 @@ {0x10FFFF, "\xF4\x8F\xBF\xBF"}, }; std::string out_str; - for (size_t i = 0; i < ARRAYSIZE(utf_cases); i++) { + for (size_t i = 0; i < arraysize(utf_cases); i++) { out_str.clear(); StdStringCanonOutput output(&out_str); AppendUTF8Value(utf_cases[i].input, &output); @@ -182,7 +175,7 @@ }; std::string out_str; - for (size_t i = 0; i < ARRAYSIZE(utf_cases); i++) { + for (size_t i = 0; i < arraysize(utf_cases); i++) { if (utf_cases[i].input8) { out_str.clear(); StdStringCanonOutput output(&out_str); @@ -899,7 +892,7 @@ {"ftp://me\\mydomain:pass@foo.com/", "", Component(0, -1), Component(0, -1), true}, }; - for (size_t i = 0; i < ARRAYSIZE(user_info_cases); i++) { + for (size_t i = 0; i < arraysize(user_info_cases); i++) { int url_len = static_cast<int>(strlen(user_info_cases[i].input)); Parsed parsed; ParseStandardURL(user_info_cases[i].input, url_len, &parsed); @@ -968,7 +961,7 @@ {"80", PORT_UNSPECIFIED, ":80", Component(1, 2), true}, }; - for (size_t i = 0; i < ARRAYSIZE(port_cases); i++) { + for (size_t i = 0; i < arraysize(port_cases); i++) { int url_len = static_cast<int>(strlen(port_cases[i].input)); Component in_comp(0, url_len); Component out_comp; @@ -1152,7 +1145,7 @@ {"q=\"asdf\"", L"q=\"asdf\"", "?q=%22asdf%22"}, }; - for (size_t i = 0; i < ARRAYSIZE(query_cases); i++) { + for (size_t i = 0; i < arraysize(query_cases); i++) { Component out_comp; if (query_cases[i].input8) { @@ -1309,7 +1302,7 @@ {"wss://foo:815/", "wss://foo:815/", true}, }; - for (size_t i = 0; i < ARRAYSIZE(cases); i++) { + for (size_t i = 0; i < arraysize(cases); i++) { int url_len = static_cast<int>(strlen(cases[i].input)); Parsed parsed; ParseStandardURL(cases[i].input, url_len, &parsed); @@ -1648,7 +1641,7 @@ #endif // _WIN32 }; - for (size_t i = 0; i < ARRAYSIZE(cases); i++) { + for (size_t i = 0; i < arraysize(cases); i++) { int url_len = static_cast<int>(strlen(cases[i].input)); Parsed parsed; ParseFileURL(cases[i].input, url_len, &parsed); @@ -1691,7 +1684,7 @@ {"filesystem:File:///temporary/Bob?qUery#reF", "filesystem:file:///temporary/Bob?qUery#reF", true}, }; - for (size_t i = 0; i < ARRAYSIZE(cases); i++) { + for (size_t i = 0; i < arraysize(cases); i++) { int url_len = static_cast<int>(strlen(cases[i].input)); Parsed parsed; ParseFileSystemURL(cases[i].input, url_len, &parsed); @@ -1726,7 +1719,7 @@ {":\":This /is interesting;?#", ":\":This /is interesting;?#"}, }; - for (size_t i = 0; i < ARRAYSIZE(path_cases); i++) { + for (size_t i = 0; i < arraysize(path_cases); i++) { int url_len = static_cast<int>(strlen(path_cases[i].input)); Parsed parsed; ParsePathURL(path_cases[i].input, url_len, true, &parsed); @@ -1780,7 +1773,7 @@ Parsed parsed; Parsed out_parsed; - for (size_t i = 0; i < ARRAYSIZE(cases); i++) { + for (size_t i = 0; i < arraysize(cases); i++) { int url_len = static_cast<int>(strlen(cases[i].input)); if (i == 8) { // The 9th test case purposely has a '\0' in it -- don't count it @@ -2043,7 +2036,7 @@ {"about:blank", false, false, "content://content.Provider/", true, false, true, ""}, }; - for (size_t i = 0; i < ARRAYSIZE(rel_cases); i++) { + for (size_t i = 0; i < arraysize(rel_cases); i++) { const RelativeCase& cur_case = rel_cases[i]; Parsed parsed;
diff --git a/url_parse_unittest.cc b/url_parse_unittest.cc index a8b7f85..71b2438 100644 --- a/url_parse_unittest.cc +++ b/url_parse_unittest.cc
@@ -4,17 +4,10 @@ #include "url/url_parse.h" -#include "base/basictypes.h" +#include "base/macros.h" #include "testing/gtest/include/gtest/gtest.h" #include "url/url_parse.h" -// Some implementations of base/basictypes.h may define ARRAYSIZE. -// If it's not defined, we define it to the ARRAYSIZE_UNSAFE macro -// which is in our version of basictypes.h. -#ifndef ARRAYSIZE -#define ARRAYSIZE ARRAYSIZE_UNSAFE -#endif - // Interesting IE file:isms... // // file:/foo/bar file:///foo/bar @@ -201,7 +194,7 @@ {"file:///c:/foo", Parsed::HOST, true, 7}, {"file:///c:/foo", Parsed::PATH, true, 7}, }; - for (size_t i = 0; i < ARRAYSIZE(count_cases); i++) { + for (size_t i = 0; i < arraysize(count_cases); i++) { int length = static_cast<int>(strlen(count_cases[i].url)); // Simple test to distinguish file and standard URLs. @@ -505,11 +498,16 @@ {"http://www.google.com/foo/bar.html#ref", "bar.html"}, {"http://www.google.com/search/;param", ""}, {"http://www.google.com/foo/bar.html;param#ref", "bar.html"}, - {"http://www.google.com/foo/bar.html;foo;param#ref", "bar.html;foo"}, + {"http://www.google.com/foo/bar.html;foo;param#ref", "bar.html"}, {"http://www.google.com/foo/bar.html?query#ref", "bar.html"}, + {"http://www.google.com/foo;/bar.html", "bar.html"}, + {"http://www.google.com/foo;/", ""}, + {"http://www.google.com/foo;", "foo"}, + {"http://www.google.com/;", ""}, + {"http://www.google.com/foo;bar;html", "foo"}, }; - for (size_t i = 0; i < ARRAYSIZE(file_cases); i++) { + for (size_t i = 0; i < arraysize(file_cases); i++) { const char* url = file_cases[i].input; int len = static_cast<int>(strlen(url));
diff --git a/url_util_unittest.cc b/url_util_unittest.cc index f84b70d..ea4824f 100644 --- a/url_util_unittest.cc +++ b/url_util_unittest.cc
@@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "base/macros.h" #include "testing/gtest/include/gtest/gtest.h" #include "url/url_canon.h" #include "url/url_canon_stdstring.h" @@ -159,7 +160,7 @@ {"%e4%bd%a0%e5%a5%bd", "\xe4\xbd\xa0\xe5\xa5\xbd"}, }; - for (size_t i = 0; i < ARRAYSIZE_UNSAFE(decode_cases); i++) { + for (size_t i = 0; i < arraysize(decode_cases); i++) { const char* input = decode_cases[i].input; RawCanonOutputT<base::char16> output; DecodeURLEscapeSequences(input, strlen(input), &output); @@ -209,7 +210,7 @@ "pqrstuvwxyz%7B%7C%7D~%7F"}, }; - for (size_t i = 0; i < ARRAYSIZE_UNSAFE(encode_cases); i++) { + for (size_t i = 0; i < arraysize(encode_cases); i++) { const char* input = encode_cases[i].input; RawCanonOutputT<char> buffer; EncodeURIComponent(input, strlen(input), &buffer); @@ -274,7 +275,7 @@ "javascript:alert('foo#badfrag" }, }; - for (size_t i = 0; i < ARRAYSIZE_UNSAFE(resolve_non_standard_cases); i++) { + for (size_t i = 0; i < arraysize(resolve_non_standard_cases); i++) { const ResolveRelativeCase& test_data = resolve_non_standard_cases[i]; Parsed base_parsed; ParsePathURL(test_data.base, strlen(test_data.base), false, &base_parsed);