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 |