Index: chrome/browser/ui/webui/net_internals/net_internals_ui.cc |
diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc |
index 6ca3b5e09c8984b98a696f7fd6e4f1dcf42a7efd..46d4f88156c98f6aac9e683878082ffe4008984a 100644 |
--- a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc |
+++ b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc |
@@ -1209,26 +1209,62 @@ void NetInternalsMessageHandler::IOThreadImpl::OnHSTSQuery( |
if (!transport_security_state) { |
result->SetString("error", "no TransportSecurityState active"); |
} else { |
- net::TransportSecurityState::DomainState state; |
- const bool found = transport_security_state->GetDomainState( |
- domain, true, &state); |
- |
- result->SetBoolean("result", found); |
- if (found) { |
- result->SetInteger("mode", static_cast<int>(state.upgrade_mode)); |
- result->SetBoolean("sts_subdomains", state.sts_include_subdomains); |
- result->SetBoolean("pkp_subdomains", state.pkp_include_subdomains); |
- result->SetDouble("sts_observed", state.sts_observed.ToDoubleT()); |
- result->SetDouble("pkp_observed", state.pkp_observed.ToDoubleT()); |
- result->SetString("domain", state.domain); |
- result->SetDouble("expiry", state.upgrade_expiry.ToDoubleT()); |
- result->SetDouble("dynamic_spki_hashes_expiry", |
- state.dynamic_spki_hashes_expiry.ToDoubleT()); |
- |
+ net::TransportSecurityState::DomainState static_state; |
+ const bool found_static = transport_security_state->GetStaticDomainState( |
+ domain, true, &static_state); |
+ if (found_static) { |
+ result->SetBoolean("has_static_sts", |
+ found_static && static_state.ShouldUpgradeToSSL()); |
+ result->SetInteger("static_upgrade_mode", |
+ static_cast<int>(static_state.sts.upgrade_mode)); |
+ result->SetBoolean("static_sts_include_subdomains", |
+ static_state.sts.include_subdomains); |
+ result->SetDouble("static_sts_observed", |
+ static_state.sts.last_observed.ToDoubleT()); |
+ result->SetDouble("static_sts_expiry", |
+ static_state.sts.expiry.ToDoubleT()); |
+ result->SetBoolean("has_static_pkp", |
+ found_static && static_state.HasPublicKeyPins()); |
+ result->SetBoolean("static_pkp_include_subdomains", |
+ static_state.pkp.include_subdomains); |
+ result->SetDouble("static_pkp_observed", |
+ static_state.pkp.last_observed.ToDoubleT()); |
+ result->SetDouble("static_pkp_expiry", |
+ static_state.pkp.expiry.ToDoubleT()); |
result->SetString("static_spki_hashes", |
- HashesToBase64String(state.static_spki_hashes)); |
+ HashesToBase64String(static_state.pkp.spki_hashes)); |
+ } |
+ |
+ net::TransportSecurityState::DomainState dynamic_state; |
+ const bool found_dynamic = |
+ transport_security_state->GetDynamicDomainState(domain, |
+ &dynamic_state); |
+ if (found_dynamic) { |
+ result->SetInteger("dynamic_upgrade_mode", |
+ static_cast<int>(dynamic_state.sts.upgrade_mode)); |
+ result->SetBoolean("dynamic_sts_include_subdomains", |
+ dynamic_state.sts.include_subdomains); |
+ result->SetBoolean("dynamic_pkp_include_subdomains", |
+ dynamic_state.pkp.include_subdomains); |
+ result->SetDouble("dynamic_sts_observed", |
+ dynamic_state.sts.last_observed.ToDoubleT()); |
+ result->SetDouble("dynamic_pkp_observed", |
+ dynamic_state.pkp.last_observed.ToDoubleT()); |
+ result->SetDouble("dynamic_sts_expiry", |
+ dynamic_state.sts.expiry.ToDoubleT()); |
+ result->SetDouble("dynamic_pkp_expiry", |
+ dynamic_state.pkp.expiry.ToDoubleT()); |
result->SetString("dynamic_spki_hashes", |
- HashesToBase64String(state.dynamic_spki_hashes)); |
+ HashesToBase64String(dynamic_state.pkp.spki_hashes)); |
+ } |
+ |
+ result->SetBoolean("result", found_static || found_dynamic); |
+ if (found_static) { |
+ result->SetString("domain", static_state.domain); |
+ } else if (found_dynamic) { |
+ result->SetString("domain", dynamic_state.domain); |
+ } else { |
+ result->SetString("domain", domain); |
} |
} |
} |