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

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

Issue 6898026: Eliminate wstring from base/utf_offset_string_conversions.h, net/base/escape.h, and net/base/net_... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 8 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
OLDNEW
1 //* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 1 //* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* ***** BEGIN LICENSE BLOCK ***** 2 /* ***** BEGIN LICENSE BLOCK *****
3 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 3 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
4 * 4 *
5 * The contents of this file are subject to the Mozilla Public License Version 5 * The contents of this file are subject to the Mozilla Public License Version
6 * 1.1 (the "License"); you may not use this file except in compliance with 6 * 1.1 (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at 7 * the License. You may obtain a copy of the License at
8 * http://www.mozilla.org/MPL/ 8 * http://www.mozilla.org/MPL/
9 * 9 *
10 * Software distributed under the License is distributed on an "AS IS" basis, 10 * Software distributed under the License is distributed on an "AS IS" basis,
(...skipping 24 matching lines...) Expand all
35 * the provisions above, a recipient may use your version of this file under 35 * the provisions above, a recipient may use your version of this file under
36 * the terms of any one of the MPL, the GPL or the LGPL. 36 * the terms of any one of the MPL, the GPL or the LGPL.
37 * 37 *
38 * ***** END LICENSE BLOCK ***** */ 38 * ***** END LICENSE BLOCK ***** */
39 39
40 #include "net/base/registry_controlled_domain.h" 40 #include "net/base/registry_controlled_domain.h"
41 41
42 #include "base/logging.h" 42 #include "base/logging.h"
43 #include "base/memory/singleton.h" 43 #include "base/memory/singleton.h"
44 #include "base/string_util.h" 44 #include "base/string_util.h"
45 #include "base/utf_string_conversions.h"
45 #include "googleurl/src/gurl.h" 46 #include "googleurl/src/gurl.h"
46 #include "googleurl/src/url_parse.h" 47 #include "googleurl/src/url_parse.h"
47 #include "net/base/net_module.h" 48 #include "net/base/net_module.h"
48 #include "net/base/net_util.h" 49 #include "net/base/net_util.h"
49 50
50 #include "effective_tld_names.cc" 51 #include "effective_tld_names.cc"
51 52
52 namespace net { 53 namespace net {
53 54
54 namespace { 55 namespace {
(...skipping 20 matching lines...) Expand all
75 std::string RegistryControlledDomainService::GetDomainAndRegistry( 76 std::string RegistryControlledDomainService::GetDomainAndRegistry(
76 const std::string& host) { 77 const std::string& host) {
77 url_canon::CanonHostInfo host_info; 78 url_canon::CanonHostInfo host_info;
78 const std::string canon_host(CanonicalizeHost(host, &host_info)); 79 const std::string canon_host(CanonicalizeHost(host, &host_info));
79 if (canon_host.empty() || host_info.IsIPAddress()) 80 if (canon_host.empty() || host_info.IsIPAddress())
80 return std::string(); 81 return std::string();
81 return GetDomainAndRegistryImpl(canon_host); 82 return GetDomainAndRegistryImpl(canon_host);
82 } 83 }
83 84
84 // static 85 // static
85 std::string RegistryControlledDomainService::GetDomainAndRegistry(
86 const std::wstring& host) {
87 url_canon::CanonHostInfo host_info;
88 const std::string canon_host(CanonicalizeHost(host, &host_info));
89 if (canon_host.empty() || host_info.IsIPAddress())
90 return std::string();
91 return GetDomainAndRegistryImpl(canon_host);
92 }
93
94 // static
95 bool RegistryControlledDomainService::SameDomainOrHost(const GURL& gurl1, 86 bool RegistryControlledDomainService::SameDomainOrHost(const GURL& gurl1,
96 const GURL& gurl2) { 87 const GURL& gurl2) {
97 // See if both URLs have a known domain + registry, and those values are the 88 // See if both URLs have a known domain + registry, and those values are the
98 // same. 89 // same.
99 const std::string domain1(GetDomainAndRegistry(gurl1)); 90 const std::string domain1(GetDomainAndRegistry(gurl1));
100 const std::string domain2(GetDomainAndRegistry(gurl2)); 91 const std::string domain2(GetDomainAndRegistry(gurl2));
101 if (!domain1.empty() || !domain2.empty()) 92 if (!domain1.empty() || !domain2.empty())
102 return domain1 == domain2; 93 return domain1 == domain2;
103 94
104 // No domains. See if the hosts are identical. 95 // No domains. See if the hosts are identical.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 const std::string canon_host(CanonicalizeHost(host, &host_info)); 127 const std::string canon_host(CanonicalizeHost(host, &host_info));
137 if (canon_host.empty()) 128 if (canon_host.empty())
138 return std::string::npos; 129 return std::string::npos;
139 if (host_info.IsIPAddress()) 130 if (host_info.IsIPAddress())
140 return 0; 131 return 0;
141 return GetInstance()->GetRegistryLengthImpl(canon_host, 132 return GetInstance()->GetRegistryLengthImpl(canon_host,
142 allow_unknown_registries); 133 allow_unknown_registries);
143 } 134 }
144 135
145 // static 136 // static
146 size_t RegistryControlledDomainService::GetRegistryLength(
147 const std::wstring& host,
148 bool allow_unknown_registries) {
149 url_canon::CanonHostInfo host_info;
150 const std::string canon_host(CanonicalizeHost(host, &host_info));
151 if (canon_host.empty())
152 return std::string::npos;
153 if (host_info.IsIPAddress())
154 return 0;
155 return GetInstance()->GetRegistryLengthImpl(canon_host,
156 allow_unknown_registries);
157 }
158
159 // static
160 RegistryControlledDomainService* RegistryControlledDomainService::GetInstance() 137 RegistryControlledDomainService* RegistryControlledDomainService::GetInstance()
161 { 138 {
162 if (test_instance_) 139 if (test_instance_)
163 return test_instance_; 140 return test_instance_;
164 141
165 return Singleton<RegistryControlledDomainService>::get(); 142 return Singleton<RegistryControlledDomainService>::get();
166 } 143 }
167 144
168 RegistryControlledDomainService::RegistryControlledDomainService() 145 RegistryControlledDomainService::RegistryControlledDomainService()
169 : find_domain_function_(Perfect_Hash::FindDomain) { 146 : find_domain_function_(Perfect_Hash::FindDomain) {
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 next_dot = host.find('.', curr_start); 262 next_dot = host.find('.', curr_start);
286 } 263 }
287 264
288 // No rule found in the registry. curr_start now points to the first 265 // No rule found in the registry. curr_start now points to the first
289 // character of the last subcomponent of the host, so if we allow unknown 266 // character of the last subcomponent of the host, so if we allow unknown
290 // registries, return the length of this subcomponent. 267 // registries, return the length of this subcomponent.
291 return allow_unknown_registries ? (host.length() - curr_start) : 0; 268 return allow_unknown_registries ? (host.length() - curr_start) : 0;
292 } 269 }
293 270
294 } // namespace net 271 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698