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

Side by Side Diff: chrome/common/origin_trials/chrome_origin_trial_policy.cc

Issue 2733023002: [Origin Trials] Support updates of disabled token list (Closed)
Patch Set: Address comments Created 3 years, 9 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "chrome/common/origin_trials/chrome_origin_trial_policy.h" 5 #include "chrome/common/origin_trials/chrome_origin_trial_policy.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <vector> 9 #include <vector>
10 10
(...skipping 21 matching lines...) Expand all
32 if (base::CommandLine::InitializedForCurrentProcess()) { 32 if (base::CommandLine::InitializedForCurrentProcess()) {
33 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); 33 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
34 if (command_line->HasSwitch(switches::kOriginTrialPublicKey)) { 34 if (command_line->HasSwitch(switches::kOriginTrialPublicKey)) {
35 SetPublicKeyFromASCIIString( 35 SetPublicKeyFromASCIIString(
36 command_line->GetSwitchValueASCII(switches::kOriginTrialPublicKey)); 36 command_line->GetSwitchValueASCII(switches::kOriginTrialPublicKey));
37 } 37 }
38 if (command_line->HasSwitch(switches::kOriginTrialDisabledFeatures)) { 38 if (command_line->HasSwitch(switches::kOriginTrialDisabledFeatures)) {
39 SetDisabledFeatures(command_line->GetSwitchValueASCII( 39 SetDisabledFeatures(command_line->GetSwitchValueASCII(
40 switches::kOriginTrialDisabledFeatures)); 40 switches::kOriginTrialDisabledFeatures));
41 } 41 }
42 if (command_line->HasSwitch(switches::kOriginTrialDisabledTokens)) {
43 SetDisabledTokens(command_line->GetSwitchValueASCII(
44 switches::kOriginTrialDisabledTokens));
45 }
42 } 46 }
43 } 47 }
44 48
45 ChromeOriginTrialPolicy::~ChromeOriginTrialPolicy() {} 49 ChromeOriginTrialPolicy::~ChromeOriginTrialPolicy() {}
46 50
47 base::StringPiece ChromeOriginTrialPolicy::GetPublicKey() const { 51 base::StringPiece ChromeOriginTrialPolicy::GetPublicKey() const {
48 return base::StringPiece(public_key_); 52 return base::StringPiece(public_key_);
49 } 53 }
50 54
51 bool ChromeOriginTrialPolicy::IsFeatureDisabled( 55 bool ChromeOriginTrialPolicy::IsFeatureDisabled(
52 base::StringPiece feature) const { 56 base::StringPiece feature) const {
53 return disabled_features_.count(feature.as_string()) > 0; 57 return disabled_features_.count(feature.as_string()) > 0;
54 } 58 }
55 59
60 bool ChromeOriginTrialPolicy::IsTokenDisabled(
61 base::StringPiece token_signature) const {
62 return disabled_tokens_.count(token_signature.as_string()) > 0;
63 }
64
56 bool ChromeOriginTrialPolicy::SetPublicKeyFromASCIIString( 65 bool ChromeOriginTrialPolicy::SetPublicKeyFromASCIIString(
57 const std::string& ascii_public_key) { 66 const std::string& ascii_public_key) {
58 // Base64-decode the incoming string. Set the key if it is correctly formatted 67 // Base64-decode the incoming string. Set the key if it is correctly formatted
59 std::string new_public_key; 68 std::string new_public_key;
60 if (!base::Base64Decode(ascii_public_key, &new_public_key)) 69 if (!base::Base64Decode(ascii_public_key, &new_public_key))
61 return false; 70 return false;
62 if (new_public_key.size() != 32) 71 if (new_public_key.size() != 32)
63 return false; 72 return false;
64 public_key_.swap(new_public_key); 73 public_key_.swap(new_public_key);
65 return true; 74 return true;
66 } 75 }
67 76
68 bool ChromeOriginTrialPolicy::SetDisabledFeatures( 77 bool ChromeOriginTrialPolicy::SetDisabledFeatures(
69 const std::string& disabled_feature_list) { 78 const std::string& disabled_feature_list) {
70 std::set<std::string> new_disabled_features; 79 std::set<std::string> new_disabled_features;
71 const std::vector<std::string> features = 80 const std::vector<std::string> features =
72 base::SplitString(disabled_feature_list, "|", base::TRIM_WHITESPACE, 81 base::SplitString(disabled_feature_list, "|", base::TRIM_WHITESPACE,
73 base::SPLIT_WANT_NONEMPTY); 82 base::SPLIT_WANT_NONEMPTY);
74 for (const std::string& feature : features) 83 for (const std::string& feature : features)
75 new_disabled_features.insert(feature); 84 new_disabled_features.insert(feature);
76 disabled_features_.swap(new_disabled_features); 85 disabled_features_.swap(new_disabled_features);
77 return true; 86 return true;
78 } 87 }
88
89 bool ChromeOriginTrialPolicy::SetDisabledTokens(
90 const std::string& disabled_token_list) {
91 std::set<std::string> new_disabled_tokens;
92 const std::vector<std::string> tokens =
93 base::SplitString(disabled_token_list, "|", base::TRIM_WHITESPACE,
94 base::SPLIT_WANT_NONEMPTY);
95 for (const std::string& ascii_token : tokens) {
96 std::string token_signature;
97 if (!base::Base64Decode(ascii_token, &token_signature))
98 continue;
99 if (token_signature.size() != 64)
100 continue;
101 new_disabled_tokens.insert(token_signature);
102 }
103 disabled_tokens_.swap(new_disabled_tokens);
104 return true;
105 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698