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

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

Issue 255333003: Renamed namespaces in src/net. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Tue 04/29/2014 19:22:06.75 Created 6 years, 7 months 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.cc ('k') | net/base/net_util_unittest.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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "net/base/net_util.h" 5 #include "net/base/net_util.h"
6 6
7 #include <map> 7 #include <map>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/i18n/time_formatting.h" 10 #include "base/i18n/time_formatting.h"
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 402
403 // Need to add the dot we just found (if we found one). 403 // Need to add the dot we just found (if we found one).
404 if (component_end < input16.length()) 404 if (component_end < input16.length())
405 out16.push_back('.'); 405 out16.push_back('.');
406 } 406 }
407 } 407 }
408 return out16; 408 return out16;
409 } 409 }
410 410
411 // If |component| is valid, its begin is incremented by |delta|. 411 // If |component| is valid, its begin is incremented by |delta|.
412 void AdjustComponent(int delta, url_parse::Component* component) { 412 void AdjustComponent(int delta, url::Component* component) {
413 if (!component->is_valid()) 413 if (!component->is_valid())
414 return; 414 return;
415 415
416 DCHECK(delta >= 0 || component->begin >= -delta); 416 DCHECK(delta >= 0 || component->begin >= -delta);
417 component->begin += delta; 417 component->begin += delta;
418 } 418 }
419 419
420 // Adjusts all the components of |parsed| by |delta|, except for the scheme. 420 // Adjusts all the components of |parsed| by |delta|, except for the scheme.
421 void AdjustAllComponentsButScheme(int delta, url_parse::Parsed* parsed) { 421 void AdjustAllComponentsButScheme(int delta, url::Parsed* parsed) {
422 AdjustComponent(delta, &(parsed->username)); 422 AdjustComponent(delta, &(parsed->username));
423 AdjustComponent(delta, &(parsed->password)); 423 AdjustComponent(delta, &(parsed->password));
424 AdjustComponent(delta, &(parsed->host)); 424 AdjustComponent(delta, &(parsed->host));
425 AdjustComponent(delta, &(parsed->port)); 425 AdjustComponent(delta, &(parsed->port));
426 AdjustComponent(delta, &(parsed->path)); 426 AdjustComponent(delta, &(parsed->path));
427 AdjustComponent(delta, &(parsed->query)); 427 AdjustComponent(delta, &(parsed->query));
428 AdjustComponent(delta, &(parsed->ref)); 428 AdjustComponent(delta, &(parsed->ref));
429 } 429 }
430 430
431 // Helper for FormatUrlWithOffsets(). 431 // Helper for FormatUrlWithOffsets().
432 base::string16 FormatViewSourceUrl( 432 base::string16 FormatViewSourceUrl(
433 const GURL& url, 433 const GURL& url,
434 const std::string& languages, 434 const std::string& languages,
435 FormatUrlTypes format_types, 435 FormatUrlTypes format_types,
436 UnescapeRule::Type unescape_rules, 436 UnescapeRule::Type unescape_rules,
437 url_parse::Parsed* new_parsed, 437 url::Parsed* new_parsed,
438 size_t* prefix_end, 438 size_t* prefix_end,
439 base::OffsetAdjuster::Adjustments* adjustments) { 439 base::OffsetAdjuster::Adjustments* adjustments) {
440 DCHECK(new_parsed); 440 DCHECK(new_parsed);
441 const char kViewSource[] = "view-source:"; 441 const char kViewSource[] = "view-source:";
442 const size_t kViewSourceLength = arraysize(kViewSource) - 1; 442 const size_t kViewSourceLength = arraysize(kViewSource) - 1;
443 443
444 // Format the underlying URL and record adjustments. 444 // Format the underlying URL and record adjustments.
445 const std::string& url_str(url.possibly_invalid_spec()); 445 const std::string& url_str(url.possibly_invalid_spec());
446 adjustments->clear(); 446 adjustments->clear();
447 base::string16 result(base::ASCIIToUTF16(kViewSource) + 447 base::string16 result(base::ASCIIToUTF16(kViewSource) +
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 const UnescapeRule::Type unescape_rules_; 520 const UnescapeRule::Type unescape_rules_;
521 }; 521 };
522 522
523 // Transforms the portion of |spec| covered by |original_component| according to 523 // Transforms the portion of |spec| covered by |original_component| according to
524 // |transform|. Appends the result to |output|. If |output_component| is 524 // |transform|. Appends the result to |output|. If |output_component| is
525 // non-NULL, its start and length are set to the transformed component's new 525 // non-NULL, its start and length are set to the transformed component's new
526 // start and length. If |adjustments| is non-NULL, appends adjustments (if 526 // start and length. If |adjustments| is non-NULL, appends adjustments (if
527 // any) that reflect the transformation the original component underwent to 527 // any) that reflect the transformation the original component underwent to
528 // become the transformed value appended to |output|. 528 // become the transformed value appended to |output|.
529 void AppendFormattedComponent(const std::string& spec, 529 void AppendFormattedComponent(const std::string& spec,
530 const url_parse::Component& original_component, 530 const url::Component& original_component,
531 const AppendComponentTransform& transform, 531 const AppendComponentTransform& transform,
532 base::string16* output, 532 base::string16* output,
533 url_parse::Component* output_component, 533 url::Component* output_component,
534 base::OffsetAdjuster::Adjustments* adjustments) { 534 base::OffsetAdjuster::Adjustments* adjustments) {
535 DCHECK(output); 535 DCHECK(output);
536 if (original_component.is_nonempty()) { 536 if (original_component.is_nonempty()) {
537 size_t original_component_begin = 537 size_t original_component_begin =
538 static_cast<size_t>(original_component.begin); 538 static_cast<size_t>(original_component.begin);
539 size_t output_component_begin = output->length(); 539 size_t output_component_begin = output->length();
540 std::string component_str(spec, original_component_begin, 540 std::string component_str(spec, original_component_begin,
541 static_cast<size_t>(original_component.len)); 541 static_cast<size_t>(original_component.len));
542 542
543 // Transform |component_str| and modify |adjustments| appropriately. 543 // Transform |component_str| and modify |adjustments| appropriately.
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
628 AppendFormattedComponent(url.possibly_invalid_spec(), 628 AppendFormattedComponent(url.possibly_invalid_spec(),
629 url.parsed_for_possibly_invalid_spec().host, 629 url.parsed_for_possibly_invalid_spec().host,
630 HostComponentTransform(languages), output, NULL, NULL); 630 HostComponentTransform(languages), output, NULL, NULL);
631 } 631 }
632 632
633 base::string16 FormatUrlWithOffsets( 633 base::string16 FormatUrlWithOffsets(
634 const GURL& url, 634 const GURL& url,
635 const std::string& languages, 635 const std::string& languages,
636 FormatUrlTypes format_types, 636 FormatUrlTypes format_types,
637 UnescapeRule::Type unescape_rules, 637 UnescapeRule::Type unescape_rules,
638 url_parse::Parsed* new_parsed, 638 url::Parsed* new_parsed,
639 size_t* prefix_end, 639 size_t* prefix_end,
640 std::vector<size_t>* offsets_for_adjustment) { 640 std::vector<size_t>* offsets_for_adjustment) {
641 base::OffsetAdjuster::Adjustments adjustments; 641 base::OffsetAdjuster::Adjustments adjustments;
642 const base::string16& format_url_return_value = 642 const base::string16& format_url_return_value =
643 FormatUrlWithAdjustments(url, languages, format_types, unescape_rules, 643 FormatUrlWithAdjustments(url, languages, format_types, unescape_rules,
644 new_parsed, prefix_end, &adjustments); 644 new_parsed, prefix_end, &adjustments);
645 base::OffsetAdjuster::AdjustOffsets(adjustments, offsets_for_adjustment); 645 base::OffsetAdjuster::AdjustOffsets(adjustments, offsets_for_adjustment);
646 if (offsets_for_adjustment) { 646 if (offsets_for_adjustment) {
647 std::for_each( 647 std::for_each(
648 offsets_for_adjustment->begin(), 648 offsets_for_adjustment->begin(),
649 offsets_for_adjustment->end(), 649 offsets_for_adjustment->end(),
650 base::LimitOffset<std::string>(format_url_return_value.length())); 650 base::LimitOffset<std::string>(format_url_return_value.length()));
651 } 651 }
652 return format_url_return_value; 652 return format_url_return_value;
653 } 653 }
654 654
655 base::string16 FormatUrlWithAdjustments( 655 base::string16 FormatUrlWithAdjustments(
656 const GURL& url, 656 const GURL& url,
657 const std::string& languages, 657 const std::string& languages,
658 FormatUrlTypes format_types, 658 FormatUrlTypes format_types,
659 UnescapeRule::Type unescape_rules, 659 UnescapeRule::Type unescape_rules,
660 url_parse::Parsed* new_parsed, 660 url::Parsed* new_parsed,
661 size_t* prefix_end, 661 size_t* prefix_end,
662 base::OffsetAdjuster::Adjustments* adjustments) { 662 base::OffsetAdjuster::Adjustments* adjustments) {
663 DCHECK(adjustments != NULL); 663 DCHECK(adjustments != NULL);
664 adjustments->clear(); 664 adjustments->clear();
665 url_parse::Parsed parsed_temp; 665 url::Parsed parsed_temp;
666 if (!new_parsed) 666 if (!new_parsed)
667 new_parsed = &parsed_temp; 667 new_parsed = &parsed_temp;
668 else 668 else
669 *new_parsed = url_parse::Parsed(); 669 *new_parsed = url::Parsed();
670 670
671 // Special handling for view-source:. Don't use content::kViewSourceScheme 671 // Special handling for view-source:. Don't use content::kViewSourceScheme
672 // because this library shouldn't depend on chrome. 672 // because this library shouldn't depend on chrome.
673 const char* const kViewSource = "view-source"; 673 const char* const kViewSource = "view-source";
674 // Reject "view-source:view-source:..." to avoid deep recursion. 674 // Reject "view-source:view-source:..." to avoid deep recursion.
675 const char* const kViewSourceTwice = "view-source:view-source:"; 675 const char* const kViewSourceTwice = "view-source:view-source:";
676 if (url.SchemeIs(kViewSource) && 676 if (url.SchemeIs(kViewSource) &&
677 !StartsWithASCII(url.possibly_invalid_spec(), kViewSourceTwice, false)) { 677 !StartsWithASCII(url.possibly_invalid_spec(), kViewSourceTwice, false)) {
678 return FormatViewSourceUrl(url, languages, format_types, 678 return FormatViewSourceUrl(url, languages, format_types,
679 unescape_rules, new_parsed, prefix_end, 679 unescape_rules, new_parsed, prefix_end,
680 adjustments); 680 adjustments);
681 } 681 }
682 682
683 // We handle both valid and invalid URLs (this will give us the spec 683 // We handle both valid and invalid URLs (this will give us the spec
684 // regardless of validity). 684 // regardless of validity).
685 const std::string& spec = url.possibly_invalid_spec(); 685 const std::string& spec = url.possibly_invalid_spec();
686 const url_parse::Parsed& parsed = url.parsed_for_possibly_invalid_spec(); 686 const url::Parsed& parsed = url.parsed_for_possibly_invalid_spec();
687 687
688 // Scheme & separators. These are ASCII. 688 // Scheme & separators. These are ASCII.
689 base::string16 url_string; 689 base::string16 url_string;
690 url_string.insert( 690 url_string.insert(
691 url_string.end(), spec.begin(), 691 url_string.end(), spec.begin(),
692 spec.begin() + parsed.CountCharactersBefore(url_parse::Parsed::USERNAME, 692 spec.begin() + parsed.CountCharactersBefore(url::Parsed::USERNAME, true));
693 true));
694 const char kHTTP[] = "http://"; 693 const char kHTTP[] = "http://";
695 const char kFTP[] = "ftp."; 694 const char kFTP[] = "ftp.";
696 // URLFixerUpper::FixupURL() treats "ftp.foo.com" as ftp://ftp.foo.com. This 695 // URLFixerUpper::FixupURL() treats "ftp.foo.com" as ftp://ftp.foo.com. This
697 // means that if we trim "http://" off a URL whose host starts with "ftp." and 696 // means that if we trim "http://" off a URL whose host starts with "ftp." and
698 // the user inputs this into any field subject to fixup (which is basically 697 // the user inputs this into any field subject to fixup (which is basically
699 // all input fields), the meaning would be changed. (In fact, often the 698 // all input fields), the meaning would be changed. (In fact, often the
700 // formatted URL is directly pre-filled into an input field.) For this reason 699 // formatted URL is directly pre-filled into an input field.) For this reason
701 // we avoid stripping "http://" in this case. 700 // we avoid stripping "http://" in this case.
702 bool omit_http = (format_types & kFormatUrlOmitHTTP) && 701 bool omit_http = (format_types & kFormatUrlOmitHTTP) &&
703 EqualsASCII(url_string, kHTTP) && 702 EqualsASCII(url_string, kHTTP) &&
(...skipping 10 matching lines...) Expand all
714 // Update the adjustments based on removed username and/or password. 713 // Update the adjustments based on removed username and/or password.
715 if (parsed.username.is_nonempty() || parsed.password.is_nonempty()) { 714 if (parsed.username.is_nonempty() || parsed.password.is_nonempty()) {
716 if (parsed.username.is_nonempty() && parsed.password.is_nonempty()) { 715 if (parsed.username.is_nonempty() && parsed.password.is_nonempty()) {
717 // The seeming off-by-two is to account for the ':' after the username 716 // The seeming off-by-two is to account for the ':' after the username
718 // and '@' after the password. 717 // and '@' after the password.
719 adjustments->push_back(base::OffsetAdjuster::Adjustment( 718 adjustments->push_back(base::OffsetAdjuster::Adjustment(
720 static_cast<size_t>(parsed.username.begin), 719 static_cast<size_t>(parsed.username.begin),
721 static_cast<size_t>(parsed.username.len + parsed.password.len + 2), 720 static_cast<size_t>(parsed.username.len + parsed.password.len + 2),
722 0)); 721 0));
723 } else { 722 } else {
724 const url_parse::Component* nonempty_component = 723 const url::Component* nonempty_component =
725 parsed.username.is_nonempty() ? &parsed.username : &parsed.password; 724 parsed.username.is_nonempty() ? &parsed.username : &parsed.password;
726 // The seeming off-by-one is to account for the '@' after the 725 // The seeming off-by-one is to account for the '@' after the
727 // username/password. 726 // username/password.
728 adjustments->push_back(base::OffsetAdjuster::Adjustment( 727 adjustments->push_back(base::OffsetAdjuster::Adjustment(
729 static_cast<size_t>(nonempty_component->begin), 728 static_cast<size_t>(nonempty_component->begin),
730 static_cast<size_t>(nonempty_component->len + 1), 729 static_cast<size_t>(nonempty_component->len + 1),
731 0)); 730 0));
732 } 731 }
733 } 732 }
734 } else { 733 } else {
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
808 AdjustAllComponentsButScheme(delta, new_parsed); 807 AdjustAllComponentsButScheme(delta, new_parsed);
809 } 808 }
810 809
811 return url_string; 810 return url_string;
812 } 811 }
813 812
814 base::string16 FormatUrl(const GURL& url, 813 base::string16 FormatUrl(const GURL& url,
815 const std::string& languages, 814 const std::string& languages,
816 FormatUrlTypes format_types, 815 FormatUrlTypes format_types,
817 UnescapeRule::Type unescape_rules, 816 UnescapeRule::Type unescape_rules,
818 url_parse::Parsed* new_parsed, 817 url::Parsed* new_parsed,
819 size_t* prefix_end, 818 size_t* prefix_end,
820 size_t* offset_for_adjustment) { 819 size_t* offset_for_adjustment) {
821 Offsets offsets; 820 Offsets offsets;
822 if (offset_for_adjustment) 821 if (offset_for_adjustment)
823 offsets.push_back(*offset_for_adjustment); 822 offsets.push_back(*offset_for_adjustment);
824 base::string16 result = FormatUrlWithOffsets(url, languages, format_types, 823 base::string16 result = FormatUrlWithOffsets(url, languages, format_types,
825 unescape_rules, new_parsed, prefix_end, &offsets); 824 unescape_rules, new_parsed, prefix_end, &offsets);
826 if (offset_for_adjustment) 825 if (offset_for_adjustment)
827 *offset_for_adjustment = offsets[0]; 826 *offset_for_adjustment = offsets[0];
828 return result; 827 return result;
829 } 828 }
830 829
831 } // namespace net 830 } // namespace net
OLDNEW
« no previous file with comments | « net/base/net_util.cc ('k') | net/base/net_util_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698