OLD | NEW |
---|---|
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 "chrome/browser/ui/login/login_handler.h" | 5 #include "chrome/browser/ui/login/login_handler.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 23 matching lines...) Expand all Loading... | |
34 #include "content/public/common/origin_util.h" | 34 #include "content/public/common/origin_util.h" |
35 #include "net/base/auth.h" | 35 #include "net/base/auth.h" |
36 #include "net/base/host_port_pair.h" | 36 #include "net/base/host_port_pair.h" |
37 #include "net/base/load_flags.h" | 37 #include "net/base/load_flags.h" |
38 #include "net/http/http_auth_scheme.h" | 38 #include "net/http/http_auth_scheme.h" |
39 #include "net/http/http_transaction_factory.h" | 39 #include "net/http/http_transaction_factory.h" |
40 #include "net/url_request/url_request.h" | 40 #include "net/url_request/url_request.h" |
41 #include "net/url_request/url_request_context.h" | 41 #include "net/url_request/url_request_context.h" |
42 #include "ui/base/l10n/l10n_util.h" | 42 #include "ui/base/l10n/l10n_util.h" |
43 #include "ui/gfx/text_elider.h" | 43 #include "ui/gfx/text_elider.h" |
44 #include "url/origin.h" | |
44 | 45 |
45 #if defined(ENABLE_EXTENSIONS) | 46 #if defined(ENABLE_EXTENSIONS) |
46 #include "components/guest_view/browser/guest_view_base.h" | 47 #include "components/guest_view/browser/guest_view_base.h" |
47 #include "extensions/browser/view_type_utils.h" | 48 #include "extensions/browser/view_type_utils.h" |
48 #endif | 49 #endif |
49 | 50 |
50 using autofill::PasswordForm; | 51 using autofill::PasswordForm; |
51 using content::BrowserThread; | 52 using content::BrowserThread; |
52 using content::NavigationController; | 53 using content::NavigationController; |
53 using content::RenderViewHost; | 54 using content::RenderViewHost; |
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
442 | 443 |
443 // static | 444 // static |
444 std::string LoginHandler::GetSignonRealm( | 445 std::string LoginHandler::GetSignonRealm( |
445 const GURL& url, | 446 const GURL& url, |
446 const net::AuthChallengeInfo& auth_info) { | 447 const net::AuthChallengeInfo& auth_info) { |
447 std::string signon_realm; | 448 std::string signon_realm; |
448 if (auth_info.is_proxy) { | 449 if (auth_info.is_proxy) { |
449 // Historically we've been storing the signon realm for proxies using | 450 // Historically we've been storing the signon realm for proxies using |
450 // net::HostPortPair::ToString(). | 451 // net::HostPortPair::ToString(). |
451 net::HostPortPair host_port_pair = | 452 net::HostPortPair host_port_pair = |
452 net::HostPortPair::FromURL(GURL(auth_info.challenger.Serialize())); | 453 net::HostPortPair::FromURL(auth_info.challenger.GetURL()); |
453 signon_realm = host_port_pair.ToString(); | 454 signon_realm = host_port_pair.ToString(); |
454 signon_realm.append("/"); | 455 signon_realm.append("/"); |
455 } else { | 456 } else { |
456 // Take scheme, host, and port from the url. | 457 // Take scheme, host, and port from the url. |
457 signon_realm = url.GetOrigin().spec(); | 458 signon_realm = url.GetOrigin().spec(); |
458 // This ends with a "/". | 459 // This ends with a "/". |
459 } | 460 } |
460 signon_realm.append(auth_info.realm); | 461 signon_realm.append(auth_info.realm); |
461 return signon_realm; | 462 return signon_realm; |
462 } | 463 } |
463 | 464 |
464 // static | 465 // static |
465 PasswordForm LoginHandler::MakeInputForPasswordManager( | 466 PasswordForm LoginHandler::MakeInputForPasswordManager( |
466 const GURL& request_url, | 467 const GURL& request_url, |
467 const net::AuthChallengeInfo& auth_info) { | 468 const net::AuthChallengeInfo& auth_info) { |
468 PasswordForm dialog_form; | 469 PasswordForm dialog_form; |
469 if (base::LowerCaseEqualsASCII(auth_info.scheme, net::kBasicAuthScheme)) { | 470 if (base::LowerCaseEqualsASCII(auth_info.scheme, net::kBasicAuthScheme)) { |
470 dialog_form.scheme = PasswordForm::SCHEME_BASIC; | 471 dialog_form.scheme = PasswordForm::SCHEME_BASIC; |
471 } else if (base::LowerCaseEqualsASCII(auth_info.scheme, | 472 } else if (base::LowerCaseEqualsASCII(auth_info.scheme, |
472 net::kDigestAuthScheme)) { | 473 net::kDigestAuthScheme)) { |
473 dialog_form.scheme = PasswordForm::SCHEME_DIGEST; | 474 dialog_form.scheme = PasswordForm::SCHEME_DIGEST; |
474 } else { | 475 } else { |
475 dialog_form.scheme = PasswordForm::SCHEME_OTHER; | 476 dialog_form.scheme = PasswordForm::SCHEME_OTHER; |
476 } | 477 } |
477 if (auth_info.is_proxy) { | 478 if (auth_info.is_proxy) { |
478 dialog_form.origin = GURL(auth_info.challenger.Serialize()); | 479 dialog_form.origin = auth_info.challenger.GetURL(); |
479 } else if (!auth_info.challenger.IsSameOriginWith(url::Origin(request_url))) { | 480 } else if (!auth_info.challenger.IsSameOriginWith(url::Origin(request_url))) { |
480 dialog_form.origin = GURL(); | 481 dialog_form.origin = GURL(); |
481 NOTREACHED(); // crbug.com/32718 | 482 NOTREACHED(); // crbug.com/32718 |
482 } else { | 483 } else { |
483 dialog_form.origin = GURL(auth_info.challenger.Serialize()); | 484 dialog_form.origin = auth_info.challenger.GetURL(); |
484 } | 485 } |
Peter Kasting
2016/10/05 00:32:08
I don't want to force you to clean this up in this
Charlie Harrison
2016/10/05 12:32:03
Yikes you're right, this should get cleaned up. I
| |
485 dialog_form.signon_realm = GetSignonRealm(dialog_form.origin, auth_info); | 486 dialog_form.signon_realm = GetSignonRealm(dialog_form.origin, auth_info); |
486 return dialog_form; | 487 return dialog_form; |
487 } | 488 } |
488 | 489 |
489 // static | 490 // static |
490 void LoginHandler::GetDialogStrings(const GURL& request_url, | 491 void LoginHandler::GetDialogStrings(const GURL& request_url, |
491 const net::AuthChallengeInfo& auth_info, | 492 const net::AuthChallengeInfo& auth_info, |
492 base::string16* authority, | 493 base::string16* authority, |
493 base::string16* explanation) { | 494 base::string16* explanation) { |
494 GURL authority_url; | 495 GURL authority_url; |
495 | 496 |
496 if (auth_info.is_proxy) { | 497 if (auth_info.is_proxy) { |
497 *authority = l10n_util::GetStringFUTF16( | 498 *authority = l10n_util::GetStringFUTF16( |
498 IDS_LOGIN_DIALOG_PROXY_AUTHORITY, | 499 IDS_LOGIN_DIALOG_PROXY_AUTHORITY, |
499 url_formatter::FormatOriginForSecurityDisplay( | 500 url_formatter::FormatOriginForSecurityDisplay( |
500 auth_info.challenger, url_formatter::SchemeDisplay::SHOW)); | 501 auth_info.challenger, url_formatter::SchemeDisplay::SHOW)); |
501 authority_url = GURL(auth_info.challenger.Serialize()); | 502 authority_url = auth_info.challenger.GetURL(); |
502 } else { | 503 } else { |
503 *authority = l10n_util::GetStringFUTF16( | 504 *authority = l10n_util::GetStringFUTF16( |
504 IDS_LOGIN_DIALOG_AUTHORITY, | 505 IDS_LOGIN_DIALOG_AUTHORITY, |
505 url_formatter::FormatUrlForSecurityDisplay(request_url)); | 506 url_formatter::FormatUrlForSecurityDisplay(request_url)); |
506 authority_url = request_url; | 507 authority_url = request_url; |
507 } | 508 } |
508 | 509 |
509 if (!content::IsOriginSecure(authority_url)) { | 510 if (!content::IsOriginSecure(authority_url)) { |
510 // TODO(asanka): The string should be different for proxies and servers. | 511 // TODO(asanka): The string should be different for proxies and servers. |
511 // http://crbug.com/620756 | 512 // http://crbug.com/620756 |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
650 bool is_main_frame = | 651 bool is_main_frame = |
651 (request->load_flags() & net::LOAD_MAIN_FRAME_DEPRECATED) != 0; | 652 (request->load_flags() & net::LOAD_MAIN_FRAME_DEPRECATED) != 0; |
652 LoginHandler* handler = LoginHandler::Create(auth_info, request); | 653 LoginHandler* handler = LoginHandler::Create(auth_info, request); |
653 BrowserThread::PostTask( | 654 BrowserThread::PostTask( |
654 BrowserThread::UI, FROM_HERE, | 655 BrowserThread::UI, FROM_HERE, |
655 base::Bind(&LoginHandler::LoginDialogCallback, request->url(), | 656 base::Bind(&LoginHandler::LoginDialogCallback, request->url(), |
656 base::RetainedRef(auth_info), base::RetainedRef(handler), | 657 base::RetainedRef(auth_info), base::RetainedRef(handler), |
657 is_main_frame)); | 658 is_main_frame)); |
658 return handler; | 659 return handler; |
659 } | 660 } |
OLD | NEW |