| Index: chrome/common/origin_trials/chrome_origin_trial_policy.cc
|
| diff --git a/chrome/common/origin_trials/chrome_origin_trial_policy.cc b/chrome/common/origin_trials/chrome_origin_trial_policy.cc
|
| index d23c0fe958baaba36e3824a50a390db6b38e6ba0..3dcc096bbb38394edc61ef0f59e08c65165dc82b 100644
|
| --- a/chrome/common/origin_trials/chrome_origin_trial_policy.cc
|
| +++ b/chrome/common/origin_trials/chrome_origin_trial_policy.cc
|
| @@ -39,6 +39,10 @@ ChromeOriginTrialPolicy::ChromeOriginTrialPolicy()
|
| SetDisabledFeatures(command_line->GetSwitchValueASCII(
|
| switches::kOriginTrialDisabledFeatures));
|
| }
|
| + if (command_line->HasSwitch(switches::kOriginTrialDisabledTokens)) {
|
| + SetDisabledTokens(command_line->GetSwitchValueASCII(
|
| + switches::kOriginTrialDisabledTokens));
|
| + }
|
| }
|
| }
|
|
|
| @@ -53,6 +57,11 @@ bool ChromeOriginTrialPolicy::IsFeatureDisabled(
|
| return disabled_features_.count(feature.as_string()) > 0;
|
| }
|
|
|
| +bool ChromeOriginTrialPolicy::IsTokenDisabled(
|
| + base::StringPiece token_signature) const {
|
| + return disabled_tokens_.count(token_signature.as_string()) > 0;
|
| +}
|
| +
|
| bool ChromeOriginTrialPolicy::SetPublicKeyFromASCIIString(
|
| const std::string& ascii_public_key) {
|
| // Base64-decode the incoming string. Set the key if it is correctly formatted
|
| @@ -76,3 +85,21 @@ bool ChromeOriginTrialPolicy::SetDisabledFeatures(
|
| disabled_features_.swap(new_disabled_features);
|
| return true;
|
| }
|
| +
|
| +bool ChromeOriginTrialPolicy::SetDisabledTokens(
|
| + const std::string& disabled_token_list) {
|
| + std::set<std::string> new_disabled_tokens;
|
| + const std::vector<std::string> tokens =
|
| + base::SplitString(disabled_token_list, "|", base::TRIM_WHITESPACE,
|
| + base::SPLIT_WANT_NONEMPTY);
|
| + for (const std::string& ascii_token : tokens) {
|
| + std::string token_signature;
|
| + if (!base::Base64Decode(ascii_token, &token_signature))
|
| + continue;
|
| + if (token_signature.size() != 64)
|
| + continue;
|
| + new_disabled_tokens.insert(token_signature);
|
| + }
|
| + disabled_tokens_.swap(new_disabled_tokens);
|
| + return true;
|
| +}
|
|
|