| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "content/common/origin_trials/trial_token.h" | 5 #include "content/common/origin_trials/trial_token.h" |
| 6 | 6 |
| 7 #include <openssl/curve25519.h> | 7 #include <openssl/curve25519.h> |
| 8 | 8 |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 54 *out_status = Extract(token_text, public_key, &token_payload); | 54 *out_status = Extract(token_text, public_key, &token_payload); |
| 55 if (*out_status != blink::WebOriginTrialTokenStatus::Success) { | 55 if (*out_status != blink::WebOriginTrialTokenStatus::Success) { |
| 56 return nullptr; | 56 return nullptr; |
| 57 } | 57 } |
| 58 std::unique_ptr<TrialToken> token = Parse(token_payload); | 58 std::unique_ptr<TrialToken> token = Parse(token_payload); |
| 59 *out_status = token ? blink::WebOriginTrialTokenStatus::Success | 59 *out_status = token ? blink::WebOriginTrialTokenStatus::Success |
| 60 : blink::WebOriginTrialTokenStatus::Malformed; | 60 : blink::WebOriginTrialTokenStatus::Malformed; |
| 61 return token; | 61 return token; |
| 62 } | 62 } |
| 63 | 63 |
| 64 blink::WebOriginTrialTokenStatus TrialToken::IsValidForFeature( | 64 blink::WebOriginTrialTokenStatus TrialToken::IsValid( |
| 65 const url::Origin& origin, | 65 const url::Origin& origin, |
| 66 base::StringPiece feature_name, | |
| 67 const base::Time& now) const { | 66 const base::Time& now) const { |
| 68 // The order of these checks is intentional. For example, will only report a | 67 // The order of these checks is intentional. For example, will only report a |
| 69 // token as expired if it is valid for the origin + feature combination. | 68 // token as expired if it is valid for the origin. |
| 70 if (!ValidateOrigin(origin)) { | 69 if (!ValidateOrigin(origin)) { |
| 71 return blink::WebOriginTrialTokenStatus::WrongOrigin; | 70 return blink::WebOriginTrialTokenStatus::WrongOrigin; |
| 72 } | 71 } |
| 73 if (!ValidateFeatureName(feature_name)) { | |
| 74 return blink::WebOriginTrialTokenStatus::WrongFeature; | |
| 75 } | |
| 76 if (!ValidateDate(now)) { | 72 if (!ValidateDate(now)) { |
| 77 return blink::WebOriginTrialTokenStatus::Expired; | 73 return blink::WebOriginTrialTokenStatus::Expired; |
| 78 } | 74 } |
| 79 return blink::WebOriginTrialTokenStatus::Success; | 75 return blink::WebOriginTrialTokenStatus::Success; |
| 80 } | 76 } |
| 81 | 77 |
| 82 // static | 78 // static |
| 83 blink::WebOriginTrialTokenStatus TrialToken::Extract( | 79 blink::WebOriginTrialTokenStatus TrialToken::Extract( |
| 84 const std::string& token_text, | 80 const std::string& token_text, |
| 85 base::StringPiece public_key, | 81 base::StringPiece public_key, |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 207 } | 203 } |
| 208 | 204 |
| 209 TrialToken::TrialToken(const url::Origin& origin, | 205 TrialToken::TrialToken(const url::Origin& origin, |
| 210 const std::string& feature_name, | 206 const std::string& feature_name, |
| 211 uint64_t expiry_timestamp) | 207 uint64_t expiry_timestamp) |
| 212 : origin_(origin), | 208 : origin_(origin), |
| 213 feature_name_(feature_name), | 209 feature_name_(feature_name), |
| 214 expiry_time_(base::Time::FromDoubleT(expiry_timestamp)) {} | 210 expiry_time_(base::Time::FromDoubleT(expiry_timestamp)) {} |
| 215 | 211 |
| 216 } // namespace content | 212 } // namespace content |
| OLD | NEW |