Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(701)

Side by Side Diff: content/common/origin_trials/trial_token.cc

Issue 2123323004: Simplify OriginTrialContext and the way it validates tokens. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: mark enum as obsolete Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « content/common/origin_trials/trial_token.h ('k') | content/common/origin_trials/trial_token_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698