Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(626)

Side by Side Diff: net/base/net_util.cc

Issue 12893: Get rid of kPathSeparator on windows. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 12 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/base/net_util.h ('k') | webkit/tools/test_shell/test_shell_win.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 <algorithm> 5 #include <algorithm>
6 #include <unicode/ucnv.h> 6 #include <unicode/ucnv.h>
7 #include <unicode/uidna.h> 7 #include <unicode/uidna.h>
8 #include <unicode/ulocdata.h> 8 #include <unicode/ulocdata.h>
9 #include <unicode/uniset.h> 9 #include <unicode/uniset.h>
10 #include <unicode/uscript.h> 10 #include <unicode/uscript.h>
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 #include "net/base/net_module.h" 42 #include "net/base/net_module.h"
43 #include "net/base/net_resources.h" 43 #include "net/base/net_resources.h"
44 #include "net/base/base64.h" 44 #include "net/base/base64.h"
45 #include "unicode/datefmt.h" 45 #include "unicode/datefmt.h"
46 46
47 using base::Time; 47 using base::Time;
48 48
49 namespace { 49 namespace {
50 50
51 // what we prepend to get a file URL 51 // what we prepend to get a file URL
52 static const wchar_t kFileURLPrefix[] = L"file:///"; 52 static const FilePath::CharType kFileURLPrefix[] =
53 FILE_PATH_LITERAL("file:///");
53 54
54 // The general list of blocked ports. Will be blocked unless a specific 55 // The general list of blocked ports. Will be blocked unless a specific
55 // protocol overrides it. (Ex: ftp can use ports 20 and 21) 56 // protocol overrides it. (Ex: ftp can use ports 20 and 21)
56 static const int kRestrictedPorts[] = { 57 static const int kRestrictedPorts[] = {
57 1, // tcpmux 58 1, // tcpmux
58 7, // echo 59 7, // echo
59 9, // discard 60 9, // discard
60 11, // systat 61 11, // systat
61 13, // daytime 62 13, // daytime
62 15, // netstat 63 15, // netstat
(...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 // with the literal input. 632 // with the literal input.
632 out->resize(host_begin_in_output + comp_len); 633 out->resize(host_begin_in_output + comp_len);
633 for (int i = 0; i < comp_len; i++) 634 for (int i = 0; i < comp_len; i++)
634 (*out)[host_begin_in_output + i] = comp[i]; 635 (*out)[host_begin_in_output + i] = comp[i];
635 } 636 }
636 637
637 } // namespace 638 } // namespace
638 639
639 namespace net { 640 namespace net {
640 641
641 GURL FilePathToFileURL(const std::wstring& file_path) { 642 GURL FilePathToFileURL(const FilePath& path) {
642 // Produce a URL like "file:///C:/foo" for a regular file, or 643 // Produce a URL like "file:///C:/foo" for a regular file, or
643 // "file://///server/path" for UNC. The URL canonicalizer will fix up the 644 // "file://///server/path" for UNC. The URL canonicalizer will fix up the
644 // latter case to be the canonical UNC form: "file://server/path" 645 // latter case to be the canonical UNC form: "file://server/path"
645 std::wstring url_str(kFileURLPrefix); 646 FilePath::StringType url_string(kFileURLPrefix);
646 url_str.append(file_path); 647 url_string.append(path.value());
647 648
648 // Now do replacement of some characters. Since we assume the input is a 649 // Now do replacement of some characters. Since we assume the input is a
649 // literal filename, anything the URL parser might consider special should 650 // literal filename, anything the URL parser might consider special should
650 // be escaped here. 651 // be escaped here.
651 652
652 // must be the first substitution since others will introduce percents as the 653 // must be the first substitution since others will introduce percents as the
653 // escape character 654 // escape character
654 ReplaceSubstringsAfterOffset(&url_str, 0, L"%", L"%25"); 655 ReplaceSubstringsAfterOffset(&url_string, 0,
656 FILE_PATH_LITERAL("%"), FILE_PATH_LITERAL("%25"));
655 657
656 // semicolon is supposed to be some kind of separator according to RFC 2396 658 // semicolon is supposed to be some kind of separator according to RFC 2396
657 ReplaceSubstringsAfterOffset(&url_str, 0, L";", L"%3B"); 659 ReplaceSubstringsAfterOffset(&url_string, 0,
660 FILE_PATH_LITERAL(";"), FILE_PATH_LITERAL("%3B"));
658 661
659 ReplaceSubstringsAfterOffset(&url_str, 0, L"#", L"%23"); 662 ReplaceSubstringsAfterOffset(&url_string, 0,
663 FILE_PATH_LITERAL("#"), FILE_PATH_LITERAL("%23"));
660 664
661 #if defined(WCHAR_T_IS_UTF32) 665 return GURL(url_string);
662 return GURL(WideToUTF8(url_str)); 666 }
663 #else 667
664 return GURL(url_str); 668 GURL FilePathToFileURL(const std::wstring& path_str) {
665 #endif 669 return FilePathToFileURL(FilePath::FromWStringHack(path_str));
666 } 670 }
667 671
668 std::wstring GetSpecificHeader(const std::wstring& headers, 672 std::wstring GetSpecificHeader(const std::wstring& headers,
669 const std::wstring& name) { 673 const std::wstring& name) {
670 return GetSpecificHeaderT(headers, name); 674 return GetSpecificHeaderT(headers, name);
671 } 675 }
672 676
673 std::string GetSpecificHeader(const std::string& headers, 677 std::string GetSpecificHeader(const std::string& headers,
674 const std::string& name) { 678 const std::string& name) {
675 return GetSpecificHeaderT(headers, name); 679 return GetSpecificHeaderT(headers, name);
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
945 949
946 // Deprecated. 950 // Deprecated.
947 bool FileURLToFilePath(const GURL& gurl, std::wstring* file_path) { 951 bool FileURLToFilePath(const GURL& gurl, std::wstring* file_path) {
948 FilePath path; 952 FilePath path;
949 bool rv = FileURLToFilePath(gurl, &path); 953 bool rv = FileURLToFilePath(gurl, &path);
950 *file_path = path.ToWStringHack(); 954 *file_path = path.ToWStringHack();
951 return rv; 955 return rv;
952 } 956 }
953 957
954 } // namespace net 958 } // namespace net
OLDNEW
« no previous file with comments | « net/base/net_util.h ('k') | webkit/tools/test_shell/test_shell_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698