OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef CHROME_BROWSER_SSL_CHROME_SSL_HOST_STATE_DELEGATE_H_ | 5 #ifndef CHROME_BROWSER_SSL_CHROME_SSL_HOST_STATE_DELEGATE_H_ |
6 #define CHROME_BROWSER_SSL_CHROME_SSL_HOST_STATE_DELEGATE_H_ | 6 #define CHROME_BROWSER_SSL_CHROME_SSL_HOST_STATE_DELEGATE_H_ |
7 | 7 |
8 #include "base/gtest_prod_util.h" | 8 #include "base/gtest_prod_util.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/time/time.h" | 10 #include "base/time/time.h" |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
110 | 110 |
111 // A BrokenHostEntry is a pair of (host, process_id) that indicates the host | 111 // A BrokenHostEntry is a pair of (host, process_id) that indicates the host |
112 // contains insecure content in that renderer process. | 112 // contains insecure content in that renderer process. |
113 typedef std::pair<std::string, int> BrokenHostEntry; | 113 typedef std::pair<std::string, int> BrokenHostEntry; |
114 | 114 |
115 // Hosts which have been contaminated with insecure content in the | 115 // Hosts which have been contaminated with insecure content in the |
116 // specified process. Note that insecure content can travel between | 116 // specified process. Note that insecure content can travel between |
117 // same-origin frames in one processs but cannot jump between processes. | 117 // same-origin frames in one processs but cannot jump between processes. |
118 std::set<BrokenHostEntry> ran_insecure_content_hosts_; | 118 std::set<BrokenHostEntry> ran_insecure_content_hosts_; |
119 | 119 |
120 // This is a GUID to mark this unique session. Whenever a certificate decision | |
121 // expiration is set, the GUID is saved as well so Chrome can tell if it was | |
122 // last set during the current session. This is used by the | |
123 // FORGET_SSL_EXCEPTION_DECISIONS_AT_SESSION_END experimental group to | |
124 // determine if the expired_previous_decision bit should be set on queries. | |
125 // | |
126 // Why not just iterate over the set of current extensions and mark them all | |
127 // as expired when the session starts, rather than storing a GUID for the | |
128 // current session? Glad you asked! Unfortunately, content settings does not | |
129 // currently support iterating over all current *compound* content setting | |
130 // values (iteration only works for simple content settings). While this could | |
131 // be added, it would be a fair amount of work for what amounts to a temporary | |
132 // measurement problem, so it's not worth the complexity. | |
133 // | |
134 // TODO(jww): This is only used by the default and disable groups of the | |
135 // certificate memory decisions experiment to tell if a decision has expired | |
136 // since the last session. Since this is only used for UMA purposes, this | |
137 // should be removed after the experiment has finished, and a call to Clear() | |
138 // should be added to the constructor and destructor for members of the | |
139 // FORGET_SSL_EXCEPTION_DECISIONS_AT_SESSION_END groups. | |
felt
2014/09/30 01:50:59
can you associate this TODO with a crbug? either 4
| |
140 const std::string current_expiration_guid_; | |
141 | |
120 DISALLOW_COPY_AND_ASSIGN(ChromeSSLHostStateDelegate); | 142 DISALLOW_COPY_AND_ASSIGN(ChromeSSLHostStateDelegate); |
121 }; | 143 }; |
122 | 144 |
123 #endif // CHROME_BROWSER_SSL_CHROME_SSL_HOST_STATE_DELEGATE_H_ | 145 #endif // CHROME_BROWSER_SSL_CHROME_SSL_HOST_STATE_DELEGATE_H_ |
OLD | NEW |