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

Side by Side Diff: chrome/browser/banners/app_banner_settings_helper.cc

Issue 2000803003: Use std::unique_ptr for base::DictionaryValue and base::ListValue's internal store. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More fixes Created 4 years, 7 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
« no previous file with comments | « cc/test/layer_tree_json_parser.cc ('k') | chrome/browser/chromeos/arc/arc_policy_bridge.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/browser/banners/app_banner_settings_helper.h" 5 #include "chrome/browser/banners/app_banner_settings_helper.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <string> 10 #include <string>
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 327
328 base::ListValue* could_show_list = nullptr; 328 base::ListValue* could_show_list = nullptr;
329 if (!app_dict->GetList(event_key, &could_show_list)) { 329 if (!app_dict->GetList(event_key, &could_show_list)) {
330 could_show_list = new base::ListValue(); 330 could_show_list = new base::ListValue();
331 app_dict->Set(event_key, base::WrapUnique(could_show_list)); 331 app_dict->Set(event_key, base::WrapUnique(could_show_list));
332 } 332 }
333 333
334 // Trim any items that are older than we should care about. For comparisons 334 // Trim any items that are older than we should care about. For comparisons
335 // the times are converted to local dates. 335 // the times are converted to local dates.
336 base::Time date = BucketTimeToResolution(time, gMinimumMinutesBetweenVisits); 336 base::Time date = BucketTimeToResolution(time, gMinimumMinutesBetweenVisits);
337 base::ValueVector::iterator it = could_show_list->begin(); 337 for (auto it = could_show_list->begin(); it != could_show_list->end();) {
338 while (it != could_show_list->end()) {
339 if ((*it)->IsType(base::Value::TYPE_DICTIONARY)) { 338 if ((*it)->IsType(base::Value::TYPE_DICTIONARY)) {
340 base::DictionaryValue* internal_value; 339 base::DictionaryValue* internal_value;
341 double internal_date; 340 double internal_date;
342 (*it)->GetAsDictionary(&internal_value); 341 (*it)->GetAsDictionary(&internal_value);
343 342
344 if (internal_value->GetDouble(kBannerTimeKey, &internal_date)) { 343 if (internal_value->GetDouble(kBannerTimeKey, &internal_date)) {
345 base::Time other_date = 344 base::Time other_date =
346 BucketTimeToResolution(base::Time::FromInternalValue(internal_date), 345 BucketTimeToResolution(base::Time::FromInternalValue(internal_date),
347 gMinimumMinutesBetweenVisits); 346 gMinimumMinutesBetweenVisits);
348 if (other_date == date) { 347 if (other_date == date) {
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 base::DictionaryValue* app_dict = 468 base::DictionaryValue* app_dict =
470 GetAppDict(origin_dict.get(), package_name_or_start_url); 469 GetAppDict(origin_dict.get(), package_name_or_start_url);
471 if (!app_dict) 470 if (!app_dict)
472 return result; 471 return result;
473 472
474 std::string event_key(kBannerEventKeys[APP_BANNER_EVENT_COULD_SHOW]); 473 std::string event_key(kBannerEventKeys[APP_BANNER_EVENT_COULD_SHOW]);
475 base::ListValue* could_show_list = nullptr; 474 base::ListValue* could_show_list = nullptr;
476 if (!app_dict->GetList(event_key, &could_show_list)) 475 if (!app_dict->GetList(event_key, &could_show_list))
477 return result; 476 return result;
478 477
479 for (auto value : *could_show_list) { 478 for (const auto& value : *could_show_list) {
480 if (value->IsType(base::Value::TYPE_DICTIONARY)) { 479 if (value->IsType(base::Value::TYPE_DICTIONARY)) {
481 base::DictionaryValue* internal_value; 480 base::DictionaryValue* internal_value;
482 double internal_date = 0; 481 double internal_date = 0;
483 value->GetAsDictionary(&internal_value); 482 value->GetAsDictionary(&internal_value);
484 double engagement = 0; 483 double engagement = 0;
485 484
486 if (internal_value->GetDouble(kBannerTimeKey, &internal_date) && 485 if (internal_value->GetDouble(kBannerTimeKey, &internal_date) &&
487 internal_value->GetDouble(kBannerEngagementKey, &engagement)) { 486 internal_value->GetDouble(kBannerEngagementKey, &engagement)) {
488 base::Time date = base::Time::FromInternalValue(internal_date); 487 base::Time date = base::Time::FromInternalValue(internal_date);
489 result.push_back({date, engagement}); 488 result.push_back({date, engagement});
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
612 // must only be active when there is one singular group under the banner 611 // must only be active when there is one singular group under the banner
613 // experiment, otherwise the banner and site engagement banner experiments 612 // experiment, otherwise the banner and site engagement banner experiments
614 // will conflict. 613 // will conflict.
615 // 614 //
616 // Making the experiment active when a variations key is present allows us 615 // Making the experiment active when a variations key is present allows us
617 // to have experiments which enable multiple features under site engagement. 616 // to have experiments which enable multiple features under site engagement.
618 std::string param = variations::GetVariationParamValue( 617 std::string param = variations::GetVariationParamValue(
619 SiteEngagementService::kEngagementParams, kBannerSiteEngagementParamsKey); 618 SiteEngagementService::kEngagementParams, kBannerSiteEngagementParamsKey);
620 return !param.empty(); 619 return !param.empty();
621 } 620 }
OLDNEW
« no previous file with comments | « cc/test/layer_tree_json_parser.cc ('k') | chrome/browser/chromeos/arc/arc_policy_bridge.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698