| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/net/url_fixer_upper.h" | 5 #include "chrome/browser/net/url_fixer_upper.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #if defined(OS_POSIX) | 9 #if defined(OS_POSIX) |
| 10 #include "base/environment.h" | 10 #include "base/environment.h" |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 166 FilePath input_path(text); | 166 FilePath input_path(text); |
| 167 PrepareStringForFileOps(input_path, &filename); | 167 PrepareStringForFileOps(input_path, &filename); |
| 168 if (filename.length() > 0 && filename[0] == '~') | 168 if (filename.length() > 0 && filename[0] == '~') |
| 169 filename = FixupHomedir(filename); | 169 filename = FixupHomedir(filename); |
| 170 #endif | 170 #endif |
| 171 | 171 |
| 172 // Here, we know the input looks like a file. | 172 // Here, we know the input looks like a file. |
| 173 GURL file_url = net::FilePathToFileURL(FilePath(filename)); | 173 GURL file_url = net::FilePathToFileURL(FilePath(filename)); |
| 174 if (file_url.is_valid()) { | 174 if (file_url.is_valid()) { |
| 175 return UTF16ToUTF8(net::FormatUrl(file_url, std::string(), | 175 return UTF16ToUTF8(net::FormatUrl(file_url, std::string(), |
| 176 net::kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL, NULL, | 176 net::kFormatUrlOmitUsernamePassword, net::UnescapeRule::NORMAL, NULL, |
| 177 NULL, NULL)); | 177 NULL, NULL)); |
| 178 } | 178 } |
| 179 | 179 |
| 180 // Invalid file URL, just return the input. | 180 // Invalid file URL, just return the input. |
| 181 return text; | 181 return text; |
| 182 } | 182 } |
| 183 | 183 |
| 184 // Checks |domain| to see if a valid TLD is already present. If not, appends | 184 // Checks |domain| to see if a valid TLD is already present. If not, appends |
| 185 // |desired_tld| to the domain, and prepends "www." unless it's already present. | 185 // |desired_tld| to the domain, and prepends "www." unless it's already present. |
| 186 static void AddDesiredTLD(const std::string& desired_tld, | 186 static void AddDesiredTLD(const std::string& desired_tld, |
| (...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 543 if (gurl.is_valid() && gurl.IsStandard()) | 543 if (gurl.is_valid() && gurl.IsStandard()) |
| 544 is_file = false; | 544 is_file = false; |
| 545 FilePath full_path; | 545 FilePath full_path; |
| 546 if (is_file && !ValidPathForFile(trimmed, &full_path)) { | 546 if (is_file && !ValidPathForFile(trimmed, &full_path)) { |
| 547 // Not a path as entered, try unescaping it in case the user has | 547 // Not a path as entered, try unescaping it in case the user has |
| 548 // escaped things. We need to go through 8-bit since the escaped values | 548 // escaped things. We need to go through 8-bit since the escaped values |
| 549 // only represent 8-bit values. | 549 // only represent 8-bit values. |
| 550 #if defined(OS_WIN) | 550 #if defined(OS_WIN) |
| 551 std::wstring unescaped = UTF8ToWide(net::UnescapeURLComponent( | 551 std::wstring unescaped = UTF8ToWide(net::UnescapeURLComponent( |
| 552 WideToUTF8(trimmed), | 552 WideToUTF8(trimmed), |
| 553 UnescapeRule::SPACES | UnescapeRule::URL_SPECIAL_CHARS)); | 553 net::UnescapeRule::SPACES | net::UnescapeRule::URL_SPECIAL_CHARS)); |
| 554 #elif defined(OS_POSIX) | 554 #elif defined(OS_POSIX) |
| 555 std::string unescaped = net::UnescapeURLComponent( | 555 std::string unescaped = net::UnescapeURLComponent( |
| 556 trimmed, | 556 trimmed, |
| 557 UnescapeRule::SPACES | UnescapeRule::URL_SPECIAL_CHARS); | 557 net::UnescapeRule::SPACES | net::UnescapeRule::URL_SPECIAL_CHARS); |
| 558 #endif | 558 #endif |
| 559 | 559 |
| 560 if (!ValidPathForFile(unescaped, &full_path)) | 560 if (!ValidPathForFile(unescaped, &full_path)) |
| 561 is_file = false; | 561 is_file = false; |
| 562 } | 562 } |
| 563 | 563 |
| 564 // Put back the current directory if we saved it. | 564 // Put back the current directory if we saved it. |
| 565 if (!base_dir.empty()) | 565 if (!base_dir.empty()) |
| 566 file_util::SetCurrentDirectory(old_cur_directory); | 566 file_util::SetCurrentDirectory(old_cur_directory); |
| 567 | 567 |
| 568 if (is_file) { | 568 if (is_file) { |
| 569 GURL file_url = net::FilePathToFileURL(full_path); | 569 GURL file_url = net::FilePathToFileURL(full_path); |
| 570 if (file_url.is_valid()) | 570 if (file_url.is_valid()) |
| 571 return GURL(UTF16ToUTF8(net::FormatUrl(file_url, std::string(), | 571 return GURL(UTF16ToUTF8(net::FormatUrl(file_url, std::string(), |
| 572 net::kFormatUrlOmitUsernamePassword, UnescapeRule::NORMAL, NULL, | 572 net::kFormatUrlOmitUsernamePassword, net::UnescapeRule::NORMAL, NULL, |
| 573 NULL, NULL))); | 573 NULL, NULL))); |
| 574 // Invalid files fall through to regular processing. | 574 // Invalid files fall through to regular processing. |
| 575 } | 575 } |
| 576 | 576 |
| 577 // Fall back on regular fixup for this input. | 577 // Fall back on regular fixup for this input. |
| 578 #if defined(OS_WIN) | 578 #if defined(OS_WIN) |
| 579 std::string text_utf8 = WideToUTF8(text.value()); | 579 std::string text_utf8 = WideToUTF8(text.value()); |
| 580 #elif defined(OS_POSIX) | 580 #elif defined(OS_POSIX) |
| 581 std::string text_utf8 = text.value(); | 581 std::string text_utf8 = text.value(); |
| 582 #endif | 582 #endif |
| (...skipping 14 matching lines...) Expand all Loading... |
| 597 | 597 |
| 598 if (part->is_valid()) { | 598 if (part->is_valid()) { |
| 599 // Offset the location of this component. | 599 // Offset the location of this component. |
| 600 part->begin += offset; | 600 part->begin += offset; |
| 601 | 601 |
| 602 // This part might not have existed in the original text. | 602 // This part might not have existed in the original text. |
| 603 if (part->begin < 0) | 603 if (part->begin < 0) |
| 604 part->reset(); | 604 part->reset(); |
| 605 } | 605 } |
| 606 } | 606 } |
| OLD | NEW |