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

Unified Diff: net/base/transport_security_state.cc

Issue 6500010: HSTS: add net-internals UI. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ... Created 9 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: net/base/transport_security_state.cc
diff --git a/net/base/transport_security_state.cc b/net/base/transport_security_state.cc
index aed714caafb8f10880947802fef863bb0b2daba6..b7ac9f0a7a50bfff5d59927eccd0def3d00fc09c 100644
--- a/net/base/transport_security_state.cc
+++ b/net/base/transport_security_state.cc
@@ -45,10 +45,32 @@ void TransportSecurityState::EnableHost(const std::string& host,
if (IsEnabledForHost(&existing_state, host))
state_copy.created = existing_state.created;
+ // We don't store these values.
+ state_copy.preloaded = false;
+ state_copy.domain.clear();
+
enabled_hosts_[std::string(hashed, sizeof(hashed))] = state_copy;
DirtyNotify();
}
+bool TransportSecurityState::DeleteHost(const std::string& host) {
+ const std::string canonicalised_host = CanonicaliseHost(host);
eroman 2011/02/16 20:12:45 I don't really care, but the other code I have see
agl 2011/02/16 22:46:22 Done.
+ if (canonicalised_host.empty())
+ return false;
+
+ char hashed[base::SHA256_LENGTH];
+ base::SHA256HashString(canonicalised_host, hashed, sizeof(hashed));
+
+ std::map<std::string, DomainState>::iterator i = enabled_hosts_.find(
+ std::string(hashed, sizeof(hashed)));
+ if (i != enabled_hosts_.end()) {
+ enabled_hosts_.erase(i);
+ DirtyNotify();
+ return true;
+ }
+ return false;
+}
+
// IncludeNUL converts a char* to a std::string and includes the terminating
// NUL in the result.
static std::string IncludeNUL(const char* in) {
@@ -66,9 +88,11 @@ bool TransportSecurityState::IsEnabledForHost(DomainState* result,
result->created = result->expiry = base::Time::FromTimeT(0);
result->mode = DomainState::MODE_STRICT;
result->include_subdomains = include_subdomains;
+ result->preloaded = true;
eroman 2011/02/16 20:12:45 you might consider default initializing everything
agl 2011/02/16 22:46:22 Done.
return true;
}
+ result->preloaded = false;
base::Time current_time(base::Time::Now());
for (size_t i = 0; canonicalised_host[i]; i += canonicalised_host[i] + 1) {
@@ -88,6 +112,7 @@ bool TransportSecurityState::IsEnabledForHost(DomainState* result,
}
*result = j->second;
+ result->domain = DNSDomainToString(&canonicalised_host[i]);
eroman 2011/02/16 20:12:45 why taking the address? isn't the input a const st
agl 2011/02/16 22:46:22 I just wanted a pointer into the string. Switched
// If we matched the domain exactly, it doesn't matter what the value of
// include_subdomains is.

Powered by Google App Engine
This is Rietveld 408576698