Chromium Code Reviews| Index: net/http/transport_security_persister.cc |
| diff --git a/net/http/transport_security_persister.cc b/net/http/transport_security_persister.cc |
| index d93291f4e7e29742e13e8004e646e42716a5c9bc..876bb7a90ac4a812f590815663142d07e088c478 100644 |
| --- a/net/http/transport_security_persister.cc |
| +++ b/net/http/transport_security_persister.cc |
| @@ -148,16 +148,18 @@ bool TransportSecurityPersister::SerializeData(std::string* output) { |
| base::DictionaryValue* serialized = new base::DictionaryValue; |
| serialized->SetBoolean(kStsIncludeSubdomains, |
| - domain_state.sts_include_subdomains); |
| + domain_state.dynamic_sts.include_subdomains); |
| serialized->SetBoolean(kPkpIncludeSubdomains, |
| - domain_state.pkp_include_subdomains); |
| - serialized->SetDouble(kStsObserved, domain_state.sts_observed.ToDoubleT()); |
| - serialized->SetDouble(kPkpObserved, domain_state.pkp_observed.ToDoubleT()); |
| - serialized->SetDouble(kExpiry, domain_state.upgrade_expiry.ToDoubleT()); |
| + domain_state.dynamic_pkp.include_subdomains); |
| + serialized->SetDouble(kStsObserved, |
| + domain_state.dynamic_sts.last_observed.ToDoubleT()); |
| + serialized->SetDouble(kPkpObserved, |
| + domain_state.dynamic_pkp.last_observed.ToDoubleT()); |
| + serialized->SetDouble(kExpiry, domain_state.dynamic_sts.expiry.ToDoubleT()); |
| serialized->SetDouble(kDynamicSPKIHashesExpiry, |
| - domain_state.dynamic_spki_hashes_expiry.ToDoubleT()); |
| + domain_state.dynamic_pkp.expiry.ToDoubleT()); |
| - switch (domain_state.upgrade_mode) { |
| + switch (domain_state.dynamic_sts.upgrade_mode) { |
| case TransportSecurityState::DomainState::MODE_FORCE_HTTPS: |
| serialized->SetString(kMode, kForceHTTPS); |
| break; |
| @@ -171,11 +173,11 @@ bool TransportSecurityPersister::SerializeData(std::string* output) { |
| } |
| serialized->Set(kStaticSPKIHashes, |
| - SPKIHashesToListValue(domain_state.static_spki_hashes)); |
| + SPKIHashesToListValue(domain_state.static_pkp.spki_hashes)); |
| - if (now < domain_state.dynamic_spki_hashes_expiry) { |
| + if (now < domain_state.dynamic_pkp.expiry) { |
| serialized->Set(kDynamicSPKIHashes, |
| - SPKIHashesToListValue(domain_state.dynamic_spki_hashes)); |
| + SPKIHashesToListValue(domain_state.dynamic_pkp.spki_hashes)); |
| } |
| toplevel.Set(HashedDomainToExternalString(hostname), serialized); |
| @@ -226,14 +228,14 @@ bool TransportSecurityPersister::Deserialize(const std::string& serialized, |
| bool include_subdomains = false; |
| bool parsed_include_subdomains = parsed->GetBoolean(kIncludeSubdomains, |
| &include_subdomains); |
| - domain_state.sts_include_subdomains = include_subdomains; |
| - domain_state.pkp_include_subdomains = include_subdomains; |
| + domain_state.dynamic_sts.include_subdomains = include_subdomains; |
| + domain_state.dynamic_pkp.include_subdomains = include_subdomains; |
| if (parsed->GetBoolean(kStsIncludeSubdomains, &include_subdomains)) { |
| - domain_state.sts_include_subdomains = include_subdomains; |
| + domain_state.dynamic_sts.include_subdomains = include_subdomains; |
| parsed_include_subdomains = true; |
| } |
| if (parsed->GetBoolean(kPkpIncludeSubdomains, &include_subdomains)) { |
| - domain_state.pkp_include_subdomains = include_subdomains; |
| + domain_state.dynamic_pkp.include_subdomains = include_subdomains; |
| parsed_include_subdomains = true; |
| } |
| @@ -250,20 +252,25 @@ bool TransportSecurityPersister::Deserialize(const std::string& serialized, |
| &dynamic_spki_hashes_expiry); |
| const base::ListValue* pins_list = NULL; |
| + // TODO(palmer): crbug.com/339907: We should stop deserializing into the |
| + // static set. |
| + // |
|
Ryan Sleevi
2014/03/07 01:39:19
comment nit:
// TODO(palmer): http://crbug.com/33
palmer
2014/03/14 21:33:39
Done.
|
| // preloaded_spki_hashes is a legacy synonym for static_spki_hashes. |
| if (parsed->GetList(kStaticSPKIHashes, &pins_list)) |
| - SPKIHashesFromListValue(*pins_list, &domain_state.static_spki_hashes); |
| + SPKIHashesFromListValue(*pins_list, &domain_state.static_pkp.spki_hashes); |
| else if (parsed->GetList(kPreloadedSPKIHashes, &pins_list)) |
| - SPKIHashesFromListValue(*pins_list, &domain_state.static_spki_hashes); |
| + SPKIHashesFromListValue(*pins_list, &domain_state.static_pkp.spki_hashes); |
| - if (parsed->GetList(kDynamicSPKIHashes, &pins_list)) |
| - SPKIHashesFromListValue(*pins_list, &domain_state.dynamic_spki_hashes); |
| + if (parsed->GetList(kDynamicSPKIHashes, &pins_list)) { |
| + SPKIHashesFromListValue(*pins_list, |
| + &domain_state.dynamic_pkp.spki_hashes); |
| + } |
| if (mode_string == kForceHTTPS || mode_string == kStrict) { |
| - domain_state.upgrade_mode = |
| + domain_state.dynamic_sts.upgrade_mode = |
| TransportSecurityState::DomainState::MODE_FORCE_HTTPS; |
| } else if (mode_string == kDefault || mode_string == kPinningOnly) { |
| - domain_state.upgrade_mode = |
| + domain_state.dynamic_sts.upgrade_mode = |
| TransportSecurityState::DomainState::MODE_DEFAULT; |
| } else { |
| LOG(WARNING) << "Unknown TransportSecurityState mode string " |
| @@ -272,34 +279,38 @@ bool TransportSecurityPersister::Deserialize(const std::string& serialized, |
| continue; |
| } |
| - domain_state.upgrade_expiry = base::Time::FromDoubleT(expiry); |
| - domain_state.dynamic_spki_hashes_expiry = |
| + domain_state.dynamic_sts.expiry = base::Time::FromDoubleT(expiry); |
| + domain_state.dynamic_pkp.expiry = |
| base::Time::FromDoubleT(dynamic_spki_hashes_expiry); |
| double sts_observed; |
| double pkp_observed; |
| if (parsed->GetDouble(kStsObserved, &sts_observed)) { |
| - domain_state.sts_observed = base::Time::FromDoubleT(sts_observed); |
| + domain_state.dynamic_sts.last_observed = |
| + base::Time::FromDoubleT(sts_observed); |
| } else if (parsed->GetDouble(kCreated, &sts_observed)) { |
| // kCreated is a legacy synonym for both kStsObserved and kPkpObserved. |
| - domain_state.sts_observed = base::Time::FromDoubleT(sts_observed); |
| + domain_state.dynamic_sts.last_observed = |
| + base::Time::FromDoubleT(sts_observed); |
| } else { |
| // We're migrating an old entry with no observation date. Make sure we |
| // write the new date back in a reasonable time frame. |
| dirtied = true; |
| - domain_state.sts_observed = base::Time::Now(); |
| + domain_state.dynamic_sts.last_observed = base::Time::Now(); |
| } |
| if (parsed->GetDouble(kPkpObserved, &pkp_observed)) { |
| - domain_state.pkp_observed = base::Time::FromDoubleT(pkp_observed); |
| + domain_state.dynamic_pkp.last_observed = |
| + base::Time::FromDoubleT(pkp_observed); |
| } else if (parsed->GetDouble(kCreated, &pkp_observed)) { |
| - domain_state.pkp_observed = base::Time::FromDoubleT(pkp_observed); |
| + domain_state.dynamic_pkp.last_observed = |
| + base::Time::FromDoubleT(pkp_observed); |
| } else { |
| dirtied = true; |
| - domain_state.pkp_observed = base::Time::Now(); |
| + domain_state.dynamic_pkp.last_observed = base::Time::Now(); |
| } |
| - if (domain_state.upgrade_expiry <= current_time && |
| - domain_state.dynamic_spki_hashes_expiry <= current_time) { |
| + if (domain_state.dynamic_sts.expiry <= current_time && |
| + domain_state.dynamic_pkp.expiry <= current_time) { |
| // Make sure we dirty the state if we drop an entry. |
| dirtied = true; |
| continue; |