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

Side by Side Diff: chrome/browser/autocomplete/search_provider.cc

Issue 6804032: Add TLS-SRP (RFC 5054) support Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: use system srp and mpi libs, not local copies 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 // 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/autocomplete/search_provider.h" 5 #include "chrome/browser/autocomplete/search_provider.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 359
360 // If the input type might be a URL, we take extra care so that private data 360 // If the input type might be a URL, we take extra care so that private data
361 // isn't sent to the server. 361 // isn't sent to the server.
362 362
363 // FORCED_QUERY means the user is explicitly asking us to search for this, so 363 // FORCED_QUERY means the user is explicitly asking us to search for this, so
364 // we assume it isn't a URL and/or there isn't private data. 364 // we assume it isn't a URL and/or there isn't private data.
365 if (input_.type() == AutocompleteInput::FORCED_QUERY) 365 if (input_.type() == AutocompleteInput::FORCED_QUERY)
366 return true; 366 return true;
367 367
368 // Next we check the scheme. If this is UNKNOWN/REQUESTED_URL/URL with a 368 // Next we check the scheme. If this is UNKNOWN/REQUESTED_URL/URL with a
369 // scheme that isn't http/https/ftp, we shouldn't send it. Sending things 369 // scheme that isn't http/https/httpsv/ftp, we shouldn't send it. Sending
370 // like file: and data: is both a waste of time and a disclosure of 370 // things like file: and data: is both a waste of time and a disclosure of
371 // potentially private, local data. Other "schemes" may actually be 371 // potentially private, local data. Other "schemes" may actually be
372 // usernames, and we don't want to send passwords. If the scheme is OK, we 372 // usernames, and we don't want to send passwords. If the scheme is OK, we
373 // still need to check other cases below. If this is QUERY, then the presence 373 // still need to check other cases below. If this is QUERY, then the
374 // of these schemes means the user explicitly typed one, and thus this is 374 // presence of these schemes means the user explicitly typed one, and thus
375 // probably a URL that's being entered and happens to currently be invalid -- 375 // this is probably a URL that's being entered and happens to currently be
376 // in which case we again want to run our checks below. Other QUERY cases are 376 // invalid -- in which case we again want to run our checks below. Other
377 // less likely to be URLs and thus we assume we're OK. 377 // QUERY cases are less likely to be URLs and thus we assume we're OK.
378 if (!LowerCaseEqualsASCII(input_.scheme(), chrome::kHttpScheme) && 378 if (!LowerCaseEqualsASCII(input_.scheme(), chrome::kHttpScheme) &&
379 !LowerCaseEqualsASCII(input_.scheme(), chrome::kHttpsScheme) && 379 !LowerCaseEqualsASCII(input_.scheme(), chrome::kHttpsScheme) &&
380 !LowerCaseEqualsASCII(input_.scheme(), chrome::kHttpsvScheme) &&
380 !LowerCaseEqualsASCII(input_.scheme(), chrome::kFtpScheme)) 381 !LowerCaseEqualsASCII(input_.scheme(), chrome::kFtpScheme))
381 return (input_.type() == AutocompleteInput::QUERY); 382 return (input_.type() == AutocompleteInput::QUERY);
382 383
383 // Don't send URLs with usernames, queries or refs. Some of these are 384 // Don't send URLs with usernames, queries or refs. Some of these are
384 // private, and the Suggest server is unlikely to have any useful results 385 // private, and the Suggest server is unlikely to have any useful results
385 // for any of them. Also don't send URLs with ports, as we may initially 386 // for any of them. Also don't send URLs with ports, as we may initially
386 // think that a username + password is a host + port (and we don't want to 387 // think that a username + password is a host + port (and we don't want to
387 // send usernames/passwords), and even if the port really is a port, the 388 // send usernames/passwords), and even if the port really is a port, the
388 // server is once again unlikely to have and useful results. 389 // server is once again unlikely to have and useful results.
389 const url_parse::Parsed& parts = input_.parts(); 390 const url_parse::Parsed& parts = input_.parts();
390 if (parts.username.is_nonempty() || parts.port.is_nonempty() || 391 if (parts.username.is_nonempty() || parts.port.is_nonempty() ||
391 parts.query.is_nonempty() || parts.ref.is_nonempty()) 392 parts.query.is_nonempty() || parts.ref.is_nonempty())
392 return false; 393 return false;
393 394
394 // Don't send anything for https except the hostname. Hostnames are OK 395 // Don't send anything for https(v) except the hostname. Hostnames are OK
395 // because they are visible when the TCP connection is established, but the 396 // because they are visible when the TCP connection is established, but the
396 // specific path may reveal private information. 397 // specific path may reveal private information.
397 if (LowerCaseEqualsASCII(input_.scheme(), chrome::kHttpsScheme) && 398 if ((LowerCaseEqualsASCII(input_.scheme(), chrome::kHttpsScheme) ||
399 LowerCaseEqualsASCII(input_.scheme(), chrome::kHttpsvScheme)) &&
398 parts.path.is_nonempty()) 400 parts.path.is_nonempty())
399 return false; 401 return false;
400 402
401 return true; 403 return true;
402 } 404 }
403 405
404 void SearchProvider::StopSuggest() { 406 void SearchProvider::StopSuggest() {
405 suggest_results_pending_ = 0; 407 suggest_results_pending_ = 0;
406 timer_.Stop(); 408 timer_.Stop();
407 // Stop any in-progress URL fetches. 409 // Stop any in-progress URL fetches.
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after
880 match.description_class.push_back( 882 match.description_class.push_back(
881 ACMatchClassification(0, ACMatchClassification::DIM)); 883 ACMatchClassification(0, ACMatchClassification::DIM));
882 // Only the first search match gets a description. 884 // Only the first search match gets a description.
883 return; 885 return;
884 886
885 default: 887 default:
886 break; 888 break;
887 } 889 }
888 } 890 }
889 } 891 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698