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. See |
| 140 // https://crbug.com/418631 for more details. |
| 141 const std::string current_expiration_guid_; |
| 142 |
120 DISALLOW_COPY_AND_ASSIGN(ChromeSSLHostStateDelegate); | 143 DISALLOW_COPY_AND_ASSIGN(ChromeSSLHostStateDelegate); |
121 }; | 144 }; |
122 | 145 |
123 #endif // CHROME_BROWSER_SSL_CHROME_SSL_HOST_STATE_DELEGATE_H_ | 146 #endif // CHROME_BROWSER_SSL_CHROME_SSL_HOST_STATE_DELEGATE_H_ |
OLD | NEW |