| 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/website_settings/website_settings.h" | 5 #include "chrome/browser/ui/website_settings/website_settings.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 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 content::CertStore* cert_store) | 82 content::CertStore* cert_store) |
| 83 : TabSpecificContentSettings::SiteDataObserver( | 83 : TabSpecificContentSettings::SiteDataObserver( |
| 84 tab_specific_content_settings), | 84 tab_specific_content_settings), |
| 85 ui_(ui), | 85 ui_(ui), |
| 86 infobar_service_(infobar_service), | 86 infobar_service_(infobar_service), |
| 87 show_info_bar_(false), | 87 show_info_bar_(false), |
| 88 site_url_(url), | 88 site_url_(url), |
| 89 site_identity_status_(SITE_IDENTITY_STATUS_UNKNOWN), | 89 site_identity_status_(SITE_IDENTITY_STATUS_UNKNOWN), |
| 90 cert_id_(0), | 90 cert_id_(0), |
| 91 site_connection_status_(SITE_CONNECTION_STATUS_UNKNOWN), | 91 site_connection_status_(SITE_CONNECTION_STATUS_UNKNOWN), |
| 92 cert_transparency_status_(CERT_TRANSPARENCY_STATUS_UNKNOWN), |
| 92 cert_store_(cert_store), | 93 cert_store_(cert_store), |
| 93 content_settings_(profile->GetHostContentSettingsMap()) { | 94 content_settings_(profile->GetHostContentSettingsMap()) { |
| 94 Init(profile, url, ssl); | 95 Init(profile, url, ssl); |
| 95 | 96 |
| 96 HistoryService* history_service = HistoryServiceFactory::GetForProfile( | 97 HistoryService* history_service = HistoryServiceFactory::GetForProfile( |
| 97 profile, Profile::EXPLICIT_ACCESS); | 98 profile, Profile::EXPLICIT_ACCESS); |
| 98 if (history_service) { | 99 if (history_service) { |
| 99 history_service->GetVisibleVisitCountToHost( | 100 history_service->GetVisibleVisitCountToHost( |
| 100 site_url_, | 101 site_url_, |
| 101 &visit_count_request_consumer_, | 102 &visit_count_request_consumer_, |
| (...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 355 site_identity_details_ += errors[i].short_description(); | 356 site_identity_details_ += errors[i].short_description(); |
| 356 } | 357 } |
| 357 | 358 |
| 358 if (ssl.cert_status & net::CERT_STATUS_NON_UNIQUE_NAME) { | 359 if (ssl.cert_status & net::CERT_STATUS_NON_UNIQUE_NAME) { |
| 359 site_identity_details_ += ASCIIToUTF16("\n\n"); | 360 site_identity_details_ += ASCIIToUTF16("\n\n"); |
| 360 site_identity_details_ += l10n_util::GetStringUTF16( | 361 site_identity_details_ += l10n_util::GetStringUTF16( |
| 361 IDS_PAGE_INFO_SECURITY_TAB_NON_UNIQUE_NAME); | 362 IDS_PAGE_INFO_SECURITY_TAB_NON_UNIQUE_NAME); |
| 362 } | 363 } |
| 363 } | 364 } |
| 364 | 365 |
| 366 |
| 367 // Certificate Transparency: Priority for indicators: |
| 368 // 1. Has valid SCT from known log. |
| 369 // 2. Has SCT which could not be verified from a known log. |
| 370 // 3. Has SCT(s) from unknown logs |
| 371 // 4. No CT information |
| 372 if (ssl.cert_id) { |
| 373 if (ssl.cert_status & net::CERT_STATUS_HAS_VALID_SCT) { |
| 374 cert_transparency_status_ = CERT_TRANSPARENCY_STATUS_HAS_VALID_SCT; |
| 375 cert_transparency_details_.assign(l10n_util::GetStringUTF16( |
| 376 IDS_PAGE_INFO_SECURITY_TAB_CT_VERIFIED)); |
| 377 } else if (ssl.cert_status & net::CERT_STATUS_HAS_SCT_FROM_KNOWN_LOG) { |
| 378 cert_transparency_status_ = CERT_TRANSPARENCY_STATUS_HAS_SCT; |
| 379 cert_transparency_details_.assign(l10n_util::GetStringUTF16( |
| 380 IDS_PAGE_INFO_SECURITY_TAB_CT_NOT_VERIFIED)); |
| 381 } else if (ssl.cert_status & net::CERT_STATUS_HAS_ANY_SCT) { |
| 382 cert_transparency_status_ = CERT_TRANSPARENCY_STATUS_HAS_SCT; |
| 383 cert_transparency_details_.assign(l10n_util::GetStringUTF16( |
| 384 IDS_PAGE_INFO_SECURITY_TAB_CT_HAS_SCT)); |
| 385 } else { |
| 386 // No CT information |
| 387 cert_transparency_status_ = CERT_TRANSPARENCY_STATUS_UNKNOWN; |
| 388 cert_transparency_details_.assign(l10n_util::GetStringUTF16( |
| 389 IDS_PAGE_INFO_SECURITY_TAB_CT_NO_SCT)); |
| 390 } |
| 391 } |
| 392 |
| 365 // Site Connection | 393 // Site Connection |
| 366 // We consider anything less than 80 bits encryption to be weak encryption. | 394 // We consider anything less than 80 bits encryption to be weak encryption. |
| 367 // TODO(wtc): Bug 1198735: report mixed/unsafe content for unencrypted and | 395 // TODO(wtc): Bug 1198735: report mixed/unsafe content for unencrypted and |
| 368 // weakly encrypted connections. | 396 // weakly encrypted connections. |
| 369 site_connection_status_ = SITE_CONNECTION_STATUS_UNKNOWN; | 397 site_connection_status_ = SITE_CONNECTION_STATUS_UNKNOWN; |
| 370 | 398 |
| 371 if (!ssl.cert_id) { | 399 if (!ssl.cert_id) { |
| 372 // Not HTTPS. | 400 // Not HTTPS. |
| 373 DCHECK_EQ(ssl.security_style, content::SECURITY_STYLE_UNAUTHENTICATED); | 401 DCHECK_EQ(ssl.security_style, content::SECURITY_STYLE_UNAUTHENTICATED); |
| 374 if (ssl.security_style == content::SECURITY_STYLE_UNAUTHENTICATED) | 402 if (ssl.security_style == content::SECURITY_STYLE_UNAUTHENTICATED) |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 585 else | 613 else |
| 586 info.site_identity = site_url_.host(); | 614 info.site_identity = site_url_.host(); |
| 587 | 615 |
| 588 info.connection_status = site_connection_status_; | 616 info.connection_status = site_connection_status_; |
| 589 info.connection_status_description = | 617 info.connection_status_description = |
| 590 UTF16ToUTF8(site_connection_details_); | 618 UTF16ToUTF8(site_connection_details_); |
| 591 info.identity_status = site_identity_status_; | 619 info.identity_status = site_identity_status_; |
| 592 info.identity_status_description = | 620 info.identity_status_description = |
| 593 UTF16ToUTF8(site_identity_details_); | 621 UTF16ToUTF8(site_identity_details_); |
| 594 info.cert_id = cert_id_; | 622 info.cert_id = cert_id_; |
| 623 |
| 624 info.cert_transparency_status = cert_transparency_status_; |
| 625 info.cert_transparency_description = UTF16ToUTF8(cert_transparency_details_); |
| 626 |
| 595 ui_->SetIdentityInfo(info); | 627 ui_->SetIdentityInfo(info); |
| 596 } | 628 } |
| 597 | 629 |
| 598 void WebsiteSettings::PresentHistoryInfo(base::Time first_visit) { | 630 void WebsiteSettings::PresentHistoryInfo(base::Time first_visit) { |
| 599 if (first_visit == base::Time()) { | 631 if (first_visit == base::Time()) { |
| 600 ui_->SetFirstVisit(string16()); | 632 ui_->SetFirstVisit(string16()); |
| 601 return; | 633 return; |
| 602 } | 634 } |
| 603 | 635 |
| 604 bool visited_before_today = false; | 636 bool visited_before_today = false; |
| 605 base::Time today = base::Time::Now().LocalMidnight(); | 637 base::Time today = base::Time::Now().LocalMidnight(); |
| 606 base::Time first_visit_midnight = first_visit.LocalMidnight(); | 638 base::Time first_visit_midnight = first_visit.LocalMidnight(); |
| 607 visited_before_today = (first_visit_midnight < today); | 639 visited_before_today = (first_visit_midnight < today); |
| 608 | 640 |
| 609 string16 first_visit_text; | 641 string16 first_visit_text; |
| 610 if (visited_before_today) { | 642 if (visited_before_today) { |
| 611 first_visit_text = l10n_util::GetStringFUTF16( | 643 first_visit_text = l10n_util::GetStringFUTF16( |
| 612 IDS_PAGE_INFO_SECURITY_TAB_VISITED_BEFORE_TODAY, | 644 IDS_PAGE_INFO_SECURITY_TAB_VISITED_BEFORE_TODAY, |
| 613 base::TimeFormatShortDate(first_visit)); | 645 base::TimeFormatShortDate(first_visit)); |
| 614 } else { | 646 } else { |
| 615 first_visit_text = l10n_util::GetStringUTF16( | 647 first_visit_text = l10n_util::GetStringUTF16( |
| 616 IDS_PAGE_INFO_SECURITY_TAB_FIRST_VISITED_TODAY); | 648 IDS_PAGE_INFO_SECURITY_TAB_FIRST_VISITED_TODAY); |
| 617 | 649 |
| 618 } | 650 } |
| 619 ui_->SetFirstVisit(first_visit_text); | 651 ui_->SetFirstVisit(first_visit_text); |
| 620 } | 652 } |
| OLD | NEW |