| Index: url/url_canon_unittest.cc | 
| diff --git a/url/url_canon_unittest.cc b/url/url_canon_unittest.cc | 
| index 8ac73bc44b1f39580217e10f19b39e0a29ca6ba9..9ca51aaaf37e8d818c27dcd056f124b47f5fac85 100644 | 
| --- a/url/url_canon_unittest.cc | 
| +++ b/url/url_canon_unittest.cc | 
| @@ -1847,20 +1847,51 @@ TEST(URLCanonTest, CanonicalizeMailtoURL) { | 
| Component expected_path; | 
| Component expected_query; | 
| } cases[] = { | 
| -    {"mailto:addr1", "mailto:addr1", true, Component(7, 5), Component()}, | 
| -    {"mailto:addr1@foo.com", "mailto:addr1@foo.com", true, Component(7, 13), Component()}, | 
| +    // Null character should be escaped to %00. | 
| +    // Keep this test first in the list as it is handled specially below. | 
| +    {"mailto:addr1\0addr2?foo", | 
| +     "mailto:addr1%00addr2?foo", | 
| +     true, Component(7, 13), Component(21, 3)}, | 
| +    {"mailto:addr1", | 
| +     "mailto:addr1", | 
| +     true, Component(7, 5), Component()}, | 
| +    {"mailto:addr1@foo.com", | 
| +     "mailto:addr1@foo.com", | 
| +     true, Component(7, 13), Component()}, | 
| // Trailing whitespace is stripped. | 
| -    {"MaIlTo:addr1 \t ", "mailto:addr1", true, Component(7, 5), Component()}, | 
| -    {"MaIlTo:addr1?to=jon", "mailto:addr1?to=jon", true, Component(7, 5), Component(13,6)}, | 
| -    {"mailto:addr1,addr2", "mailto:addr1,addr2", true, Component(7, 11), Component()}, | 
| -    {"mailto:addr1, addr2", "mailto:addr1, addr2", true, Component(7, 12), Component()}, | 
| -    {"mailto:addr1%2caddr2", "mailto:addr1%2caddr2", true, Component(7, 13), Component()}, | 
| -    {"mailto:\xF0\x90\x8C\x80", "mailto:%F0%90%8C%80", true, Component(7, 12), Component()}, | 
| -    // Null character should be escaped to %00 | 
| -    {"mailto:addr1\0addr2?foo", "mailto:addr1%00addr2?foo", true, Component(7, 13), Component(21, 3)}, | 
| +    {"MaIlTo:addr1 \t ", | 
| +     "mailto:addr1", | 
| +     true, Component(7, 5), Component()}, | 
| +    {"MaIlTo:addr1?to=jon", | 
| +     "mailto:addr1?to=jon", | 
| +     true, Component(7, 5), Component(13,6)}, | 
| +    {"mailto:addr1,addr2", | 
| +     "mailto:addr1,addr2", | 
| +     true, Component(7, 11), Component()}, | 
| +    // Embedded spaces must be encoded. | 
| +    {"mailto:addr1, addr2", | 
| +     "mailto:addr1,%20addr2", | 
| +     true, Component(7, 14), Component()}, | 
| +    {"mailto:addr1, addr2?subject=one two ", | 
| +     "mailto:addr1,%20addr2?subject=one%20two", | 
| +     true, Component(7, 14), Component(22, 17)}, | 
| +    {"mailto:addr1%2caddr2", | 
| +     "mailto:addr1%2caddr2", | 
| +     true, Component(7, 13), Component()}, | 
| +    {"mailto:\xF0\x90\x8C\x80", | 
| +     "mailto:%F0%90%8C%80", | 
| +     true, Component(7, 12), Component()}, | 
| // Invalid -- UTF-8 encoded surrogate value. | 
| -    {"mailto:\xed\xa0\x80", "mailto:%EF%BF%BD", false, Component(7, 9), Component()}, | 
| -    {"mailto:addr1?", "mailto:addr1?", true, Component(7, 5), Component(13, 0)}, | 
| +    {"mailto:\xed\xa0\x80", | 
| +     "mailto:%EF%BF%BD", | 
| +     false, Component(7, 9), Component()}, | 
| +    {"mailto:addr1?", | 
| +     "mailto:addr1?", | 
| +     true, Component(7, 5), Component(13, 0)}, | 
| +    // Certain characters have special meanings and must be encoded. | 
| +    {"mailto:! \x22$&()+,-./09:;<=>@AZ[\\]&_`az{|}~\x7f?Query! \x22$&()+,-./09:;<=>@AZ[\\]&_`az{|}~", | 
| +     "mailto:!%20%22$&()+,-./09:;%3C=%3E@AZ[\\]&_%60az%7B%7C%7D~%7F?Query!%20%22$&()+,-./09:;%3C=%3E@AZ[\\]&_`az{|}~", | 
| +     true, Component(7, 53), Component(61, 47)}, | 
| }; | 
|  | 
| // Define outside of loop to catch bugs where components aren't reset | 
| @@ -1869,8 +1900,8 @@ TEST(URLCanonTest, CanonicalizeMailtoURL) { | 
|  | 
| 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 | 
| +    if (i == 0) { | 
| +      // The first test case purposely has a '\0' in it -- don't count it | 
| // as the string terminator. | 
| url_len = 22; | 
| } | 
|  |