Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include "net/url_request/url_request_http_job.h" | 5 #include "net/url_request/url_request_http_job.h" |
| 6 | 6 |
| 7 #include "base/base_switches.h" | 7 #include "base/base_switches.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/bind_helpers.h" | 9 #include "base/bind_helpers.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 58 static const char kAvailDictionaryHeader[] = "Avail-Dictionary"; | 58 static const char kAvailDictionaryHeader[] = "Avail-Dictionary"; |
| 59 | 59 |
| 60 namespace { | 60 namespace { |
| 61 | 61 |
| 62 // True if the request method is "safe" (per section 4.2.1 of RFC 7231). | 62 // True if the request method is "safe" (per section 4.2.1 of RFC 7231). |
| 63 bool IsMethodSafe(const std::string& method) { | 63 bool IsMethodSafe(const std::string& method) { |
| 64 return method == "GET" || method == "HEAD" || method == "OPTIONS" || | 64 return method == "GET" || method == "HEAD" || method == "OPTIONS" || |
| 65 method == "TRACE"; | 65 method == "TRACE"; |
| 66 } | 66 } |
| 67 | 67 |
| 68 void LogChannelIDAndCookieStores(const net::URLRequestContext* context, | 68 void LogChannelIDAndCookieStores(const net::URLRequestContext* context, |
|
mmenke
2016/03/28 17:54:00
This function really needs a comment., or the hist
nharper
2016/03/29 00:30:20
Done. Comments added for both.
| |
| 69 const net::SSLInfo& ssl_info) { | 69 const net::SSLInfo& ssl_info) { |
| 70 if (!ssl_info.channel_id_sent) | 70 if (!ssl_info.channel_id_sent) |
| 71 return; | 71 return; |
| 72 // This enum is used for an UMA histogram - don't reuse or renumber entries. | 72 // This enum is used for an UMA histogram - don't reuse or renumber entries. |
| 73 enum { | 73 enum { |
| 74 // Value 0 was removed (CID_EPHEMERAL_COOKIE_EPHEMERAL) | 74 // Value 0 was removed (CID_EPHEMERAL_COOKIE_EPHEMERAL) |
| 75 CID_EPHEMERAL_COOKIE_PERSISTENT = 1, | 75 CID_EPHEMERAL_COOKIE_PERSISTENT = 1, |
| 76 CID_PERSISTENT_COOKIE_EPHEMERAL = 2, | 76 CID_PERSISTENT_COOKIE_EPHEMERAL = 2, |
| 77 // Value 3 was removed (CID_PERSISTENT_COOKIE_PERSISTENT) | 77 // Value 3 was removed (CID_PERSISTENT_COOKIE_PERSISTENT) |
| 78 NO_COOKIE_STORE = 4, | 78 NO_COOKIE_STORE = 4, |
| 79 NO_CHANNEL_ID_STORE = 5, | 79 NO_CHANNEL_ID_STORE = 5, |
| 80 KNOWN_MISMATCH = 6, | 80 KNOWN_MISMATCH = 6, |
| 81 EPHEMERAL_MATCH = 7, | 81 EPHEMERAL_MATCH = 7, |
| 82 EPHEMERAL_MISMATCH = 8, | 82 EPHEMERAL_MISMATCH = 8, |
| 83 PERSISTENT_MATCH = 9, | 83 PERSISTENT_MATCH = 9, |
| 84 PERSISTENT_MISMATCH = 10, | 84 PERSISTENT_MISMATCH = 10, |
| 85 EPHEMERAL_UNKNOWN = 11, | |
| 86 PERSISTENT_UNKNOWN = 12, | |
| 85 EPHEMERALITY_MAX | 87 EPHEMERALITY_MAX |
| 86 } ephemerality; | 88 } ephemerality; |
| 87 const net::HttpNetworkSession::Params* params = | 89 const net::HttpNetworkSession::Params* params = |
| 88 context->GetNetworkSessionParams(); | 90 context->GetNetworkSessionParams(); |
| 89 net::CookieStore* cookie_store = context->cookie_store(); | 91 net::CookieStore* cookie_store = context->cookie_store(); |
|
mmenke
2016/03/28 17:54:00
We allow NULL cookie stores.
nharper
2016/03/29 00:30:20
I check for a null cookie store a few lines down.
| |
| 90 if (params == nullptr || params->channel_id_service == nullptr) { | 92 if (params == nullptr || params->channel_id_service == nullptr) { |
| 91 ephemerality = NO_CHANNEL_ID_STORE; | 93 ephemerality = NO_CHANNEL_ID_STORE; |
| 92 } else if (cookie_store == nullptr) { | 94 } else if (cookie_store == nullptr) { |
| 93 ephemerality = NO_COOKIE_STORE; | 95 ephemerality = NO_COOKIE_STORE; |
| 94 } else if (params->channel_id_service->GetChannelIDStore()->IsEphemeral()) { | 96 } else if (params->channel_id_service->GetChannelIDStore()->IsEphemeral()) { |
| 95 if (cookie_store->IsEphemeral()) { | 97 if (cookie_store->IsEphemeral()) { |
| 96 if (context->channel_id_service() && | 98 if (cookie_store->GetChannelIDServiceID() == -1) { |
| 97 params->channel_id_service->GetUniqueID() == | 99 ephemerality = EPHEMERAL_UNKNOWN; |
| 98 context->channel_id_service()->GetUniqueID()) { | 100 } else if (cookie_store->GetChannelIDServiceID() == |
| 101 params->channel_id_service->GetUniqueID()) { | |
| 99 ephemerality = EPHEMERAL_MATCH; | 102 ephemerality = EPHEMERAL_MATCH; |
| 100 } else { | 103 } else { |
| 101 ephemerality = EPHEMERAL_MISMATCH; | 104 ephemerality = EPHEMERAL_MISMATCH; |
|
mmenke
2016/03/28 17:54:00
If this happens, it is a bug. Should we really be
nharper
2016/03/29 00:30:20
I don't see any reason why we can't DCHECK.
| |
| 102 } | 105 } |
| 103 } else if (context->has_known_mismatched_cookie_store()) { | 106 } else if (context->has_known_mismatched_cookie_store()) { |
| 104 ephemerality = KNOWN_MISMATCH; | 107 ephemerality = KNOWN_MISMATCH; |
| 105 } else { | 108 } else { |
| 106 ephemerality = CID_EPHEMERAL_COOKIE_PERSISTENT; | 109 ephemerality = CID_EPHEMERAL_COOKIE_PERSISTENT; |
| 107 } | 110 } |
| 108 } else if (cookie_store->IsEphemeral()) { | 111 } else if (cookie_store->IsEphemeral()) { |
| 109 ephemerality = CID_PERSISTENT_COOKIE_EPHEMERAL; | 112 ephemerality = CID_PERSISTENT_COOKIE_EPHEMERAL; |
| 110 } else if (context->channel_id_service() && | 113 } else if (cookie_store->GetChannelIDServiceID() == -1) { |
| 111 params->channel_id_service->GetUniqueID() == | 114 ephemerality = PERSISTENT_UNKNOWN; |
| 112 context->channel_id_service()->GetUniqueID()) { | 115 } else if (cookie_store->GetChannelIDServiceID() == |
| 116 params->channel_id_service->GetUniqueID()) { | |
| 113 ephemerality = PERSISTENT_MATCH; | 117 ephemerality = PERSISTENT_MATCH; |
| 114 } else { | 118 } else { |
| 115 ephemerality = PERSISTENT_MISMATCH; | 119 ephemerality = PERSISTENT_MISMATCH; |
| 116 } | 120 } |
| 117 UMA_HISTOGRAM_ENUMERATION("Net.TokenBinding.StoreEphemerality", ephemerality, | 121 UMA_HISTOGRAM_ENUMERATION("Net.TokenBinding.StoreEphemerality", ephemerality, |
| 118 EPHEMERALITY_MAX); | 122 EPHEMERALITY_MAX); |
| 119 } | 123 } |
| 120 | 124 |
| 121 } // namespace | 125 } // namespace |
| 122 | 126 |
| (...skipping 1478 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1601 return override_response_headers_.get() ? | 1605 return override_response_headers_.get() ? |
| 1602 override_response_headers_.get() : | 1606 override_response_headers_.get() : |
| 1603 transaction_->GetResponseInfo()->headers.get(); | 1607 transaction_->GetResponseInfo()->headers.get(); |
| 1604 } | 1608 } |
| 1605 | 1609 |
| 1606 void URLRequestHttpJob::NotifyURLRequestDestroyed() { | 1610 void URLRequestHttpJob::NotifyURLRequestDestroyed() { |
| 1607 awaiting_callback_ = false; | 1611 awaiting_callback_ = false; |
| 1608 } | 1612 } |
| 1609 | 1613 |
| 1610 } // namespace net | 1614 } // namespace net |
| OLD | NEW |