Chromium Code Reviews| Index: content/browser/service_worker/service_worker_database.cc |
| diff --git a/content/browser/service_worker/service_worker_database.cc b/content/browser/service_worker/service_worker_database.cc |
| index fed2adb34adfa52af1c5408734bf41f9f92afd47..e5df1eaac5303519f094fd8e203cfddfa62d7ddd 100644 |
| --- a/content/browser/service_worker/service_worker_database.cc |
| +++ b/content/browser/service_worker/service_worker_database.cc |
| @@ -1223,6 +1223,16 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::ParseRegistrationData( |
| } |
| out->foreign_fetch_origins.push_back(parsed_origin); |
| } |
| + if (data.has_origin_trial_tokens()) { |
| + const auto& info = data.origin_trial_tokens(); |
|
iclelland
2016/10/12 03:31:38
nit:
Why auto here, but ServiceWorkerOriginTrialIn
horo
2016/10/12 04:13:14
I thought that using "auto" increases readability.
|
| + TrialTokenValidator::FeatureToTokensMap origin_trial_tokens; |
| + for (int i = 0; i < info.features_size(); ++i) { |
| + const auto& feature = info.features(i); |
| + for (int j = 0; j < feature.tokens_size(); ++j) |
| + origin_trial_tokens[feature.name()].push_back(feature.tokens(j)); |
| + } |
| + out->origin_trial_tokens = origin_trial_tokens; |
| + } |
| return ServiceWorkerDatabase::STATUS_OK; |
| } |
| @@ -1256,6 +1266,15 @@ void ServiceWorkerDatabase::WriteRegistrationDataInBatch( |
| } |
| for (const url::Origin& origin : registration.foreign_fetch_origins) |
| data.add_foreign_fetch_origin(origin.Serialize()); |
| + if (registration.origin_trial_tokens) { |
| + ServiceWorkerOriginTrialInfo* info = data.mutable_origin_trial_tokens(); |
| + for (const auto& feature : *registration.origin_trial_tokens) { |
| + ServiceWorkerOriginTrialFeature* feature_out = info->add_features(); |
| + feature_out->set_name(feature.first); |
| + for (const auto& token : feature.second) |
| + feature_out->add_tokens(token); |
| + } |
| + } |
| std::string value; |
| bool success = data.SerializeToString(&value); |