Chromium Code Reviews| 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 520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 531 // Save the old current directory before we move to the new one. | 531 // Save the old current directory before we move to the new one. |
| 532 file_util::GetCurrentDirectory(&old_cur_directory); | 532 file_util::GetCurrentDirectory(&old_cur_directory); |
| 533 file_util::SetCurrentDirectory(base_dir); | 533 file_util::SetCurrentDirectory(base_dir); |
| 534 } | 534 } |
| 535 | 535 |
| 536 // Allow funny input with extra whitespace and the wrong kind of slashes. | 536 // Allow funny input with extra whitespace and the wrong kind of slashes. |
| 537 FilePath::StringType trimmed; | 537 FilePath::StringType trimmed; |
| 538 PrepareStringForFileOps(text, &trimmed); | 538 PrepareStringForFileOps(text, &trimmed); |
| 539 | 539 |
| 540 bool is_file = true; | 540 bool is_file = true; |
| 541 // Avoid recognizing definite non-file URLs as file paths. | |
| 542 GURL gurl(text.value()); | |
|
jar (doing other things)
2011/08/06 02:33:28
Why did you use |text| instead of |trimmed|?
| |
| 543 if (gurl.is_valid() && gurl.IsStandard()) | |
| 544 is_file = false; | |
| 541 FilePath full_path; | 545 FilePath full_path; |
| 542 if (!ValidPathForFile(trimmed, &full_path)) { | 546 if (is_file && !ValidPathForFile(trimmed, &full_path)) { |
| 543 // 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 |
| 544 // 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 |
| 545 // only represent 8-bit values. | 549 // only represent 8-bit values. |
| 546 #if defined(OS_WIN) | 550 #if defined(OS_WIN) |
| 547 std::wstring unescaped = UTF8ToWide(UnescapeURLComponent( | 551 std::wstring unescaped = UTF8ToWide(UnescapeURLComponent( |
| 548 WideToUTF8(trimmed), | 552 WideToUTF8(trimmed), |
| 549 UnescapeRule::SPACES | UnescapeRule::URL_SPECIAL_CHARS)); | 553 UnescapeRule::SPACES | UnescapeRule::URL_SPECIAL_CHARS)); |
| 550 #elif defined(OS_POSIX) | 554 #elif defined(OS_POSIX) |
| 551 std::string unescaped = UnescapeURLComponent( | 555 std::string unescaped = UnescapeURLComponent( |
| 552 trimmed, | 556 trimmed, |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 593 | 597 |
| 594 if (part->is_valid()) { | 598 if (part->is_valid()) { |
| 595 // Offset the location of this component. | 599 // Offset the location of this component. |
| 596 part->begin += offset; | 600 part->begin += offset; |
| 597 | 601 |
| 598 // This part might not have existed in the original text. | 602 // This part might not have existed in the original text. |
| 599 if (part->begin < 0) | 603 if (part->begin < 0) |
| 600 part->reset(); | 604 part->reset(); |
| 601 } | 605 } |
| 602 } | 606 } |
| OLD | NEW |