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

Side by Side Diff: chrome/browser/metrics/perf/perf_provider_chromeos.cc

Issue 1886913002: Convert //chrome/browser/metrics from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/metrics/perf/perf_provider_chromeos.h" 5 #include "chrome/browser/metrics/perf/perf_provider_chromeos.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <algorithm> 8 #include <algorithm>
9 #include <map> 9 #include <map>
10 #include <string> 10 #include <string>
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 } 377 }
378 378
379 sampled_profiles->swap(cached_perf_data_); 379 sampled_profiles->swap(cached_perf_data_);
380 cached_perf_data_.clear(); 380 cached_perf_data_.clear();
381 381
382 AddToPerfHistogram(SUCCESS); 382 AddToPerfHistogram(SUCCESS);
383 return true; 383 return true;
384 } 384 }
385 385
386 void PerfProvider::ParseOutputProtoIfValid( 386 void PerfProvider::ParseOutputProtoIfValid(
387 scoped_ptr<WindowedIncognitoObserver> incognito_observer, 387 std::unique_ptr<WindowedIncognitoObserver> incognito_observer,
388 scoped_ptr<SampledProfile> sampled_profile, 388 std::unique_ptr<SampledProfile> sampled_profile,
389 int result, 389 int result,
390 const std::vector<uint8_t>& perf_data, 390 const std::vector<uint8_t>& perf_data,
391 const std::vector<uint8_t>& perf_stat) { 391 const std::vector<uint8_t>& perf_stat) {
392 DCHECK(CalledOnValidThread()); 392 DCHECK(CalledOnValidThread());
393 393
394 if (incognito_observer->incognito_launched()) { 394 if (incognito_observer->incognito_launched()) {
395 AddToPerfHistogram(INCOGNITO_LAUNCHED); 395 AddToPerfHistogram(INCOGNITO_LAUNCHED);
396 return; 396 return;
397 } 397 }
398 398
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 scheduled_time = now; 546 scheduled_time = now;
547 547
548 timer_.Start(FROM_HERE, scheduled_time - now, this, 548 timer_.Start(FROM_HERE, scheduled_time - now, this,
549 &PerfProvider::DoPeriodicCollection); 549 &PerfProvider::DoPeriodicCollection);
550 550
551 // Update the profiling interval tracker to the start of the next interval. 551 // Update the profiling interval tracker to the start of the next interval.
552 next_profiling_interval_start_ += collection_params_.periodic_interval(); 552 next_profiling_interval_start_ += collection_params_.periodic_interval();
553 } 553 }
554 554
555 void PerfProvider::CollectIfNecessary( 555 void PerfProvider::CollectIfNecessary(
556 scoped_ptr<SampledProfile> sampled_profile) { 556 std::unique_ptr<SampledProfile> sampled_profile) {
557 DCHECK(CalledOnValidThread()); 557 DCHECK(CalledOnValidThread());
558 558
559 // Schedule another interval collection. This call makes sense regardless of 559 // Schedule another interval collection. This call makes sense regardless of
560 // whether or not the current collection was interval-triggered. If it had 560 // whether or not the current collection was interval-triggered. If it had
561 // been another type of trigger event, the interval timer would have been 561 // been another type of trigger event, the interval timer would have been
562 // halted, so it makes sense to reschedule a new interval collection. 562 // halted, so it makes sense to reschedule a new interval collection.
563 ScheduleIntervalCollection(); 563 ScheduleIntervalCollection();
564 564
565 // Do not collect further data if we've already collected a substantial amount 565 // Do not collect further data if we've already collected a substantial amount
566 // of data, as indicated by |kCachedPerfDataProtobufSizeThreshold|. 566 // of data, as indicated by |kCachedPerfDataProtobufSizeThreshold|.
567 size_t cached_perf_data_size = 0; 567 size_t cached_perf_data_size = 0;
568 for (size_t i = 0; i < cached_perf_data_.size(); ++i) { 568 for (size_t i = 0; i < cached_perf_data_.size(); ++i) {
569 cached_perf_data_size += cached_perf_data_[i].ByteSize(); 569 cached_perf_data_size += cached_perf_data_[i].ByteSize();
570 } 570 }
571 if (cached_perf_data_size >= kCachedPerfDataProtobufSizeThreshold) { 571 if (cached_perf_data_size >= kCachedPerfDataProtobufSizeThreshold) {
572 AddToPerfHistogram(NOT_READY_TO_COLLECT); 572 AddToPerfHistogram(NOT_READY_TO_COLLECT);
573 return; 573 return;
574 } 574 }
575 575
576 // For privacy reasons, Chrome should only collect perf data if there is no 576 // For privacy reasons, Chrome should only collect perf data if there is no
577 // incognito session active (or gets spawned during the collection). 577 // incognito session active (or gets spawned during the collection).
578 if (BrowserList::IsOffTheRecordSessionActive()) { 578 if (BrowserList::IsOffTheRecordSessionActive()) {
579 AddToPerfHistogram(INCOGNITO_ACTIVE); 579 AddToPerfHistogram(INCOGNITO_ACTIVE);
580 return; 580 return;
581 } 581 }
582 582
583 scoped_ptr<WindowedIncognitoObserver> incognito_observer( 583 std::unique_ptr<WindowedIncognitoObserver> incognito_observer(
584 new WindowedIncognitoObserver); 584 new WindowedIncognitoObserver);
585 585
586 chromeos::DebugDaemonClient* client = 586 chromeos::DebugDaemonClient* client =
587 chromeos::DBusThreadManager::Get()->GetDebugDaemonClient(); 587 chromeos::DBusThreadManager::Get()->GetDebugDaemonClient();
588 588
589 std::vector<std::string> command = base::SplitString( 589 std::vector<std::string> command = base::SplitString(
590 command_selector_.Select(), kPerfCommandDelimiter, 590 command_selector_.Select(), kPerfCommandDelimiter,
591 base::KEEP_WHITESPACE, base::SPLIT_WANT_ALL); 591 base::KEEP_WHITESPACE, base::SPLIT_WANT_ALL);
592 client->GetPerfOutput( 592 client->GetPerfOutput(
593 collection_params_.collection_duration().InSeconds(), command, 593 collection_params_.collection_duration().InSeconds(), command,
594 base::Bind(&PerfProvider::ParseOutputProtoIfValid, 594 base::Bind(&PerfProvider::ParseOutputProtoIfValid,
595 weak_factory_.GetWeakPtr(), base::Passed(&incognito_observer), 595 weak_factory_.GetWeakPtr(), base::Passed(&incognito_observer),
596 base::Passed(&sampled_profile))); 596 base::Passed(&sampled_profile)));
597 } 597 }
598 598
599 void PerfProvider::DoPeriodicCollection() { 599 void PerfProvider::DoPeriodicCollection() {
600 scoped_ptr<SampledProfile> sampled_profile(new SampledProfile); 600 std::unique_ptr<SampledProfile> sampled_profile(new SampledProfile);
601 sampled_profile->set_trigger_event(SampledProfile::PERIODIC_COLLECTION); 601 sampled_profile->set_trigger_event(SampledProfile::PERIODIC_COLLECTION);
602 602
603 CollectIfNecessary(std::move(sampled_profile)); 603 CollectIfNecessary(std::move(sampled_profile));
604 } 604 }
605 605
606 void PerfProvider::CollectPerfDataAfterResume( 606 void PerfProvider::CollectPerfDataAfterResume(
607 const base::TimeDelta& sleep_duration, 607 const base::TimeDelta& sleep_duration,
608 const base::TimeDelta& time_after_resume) { 608 const base::TimeDelta& time_after_resume) {
609 // Fill out a SampledProfile protobuf that will contain the collected data. 609 // Fill out a SampledProfile protobuf that will contain the collected data.
610 scoped_ptr<SampledProfile> sampled_profile(new SampledProfile); 610 std::unique_ptr<SampledProfile> sampled_profile(new SampledProfile);
611 sampled_profile->set_trigger_event(SampledProfile::RESUME_FROM_SUSPEND); 611 sampled_profile->set_trigger_event(SampledProfile::RESUME_FROM_SUSPEND);
612 sampled_profile->set_suspend_duration_ms(sleep_duration.InMilliseconds()); 612 sampled_profile->set_suspend_duration_ms(sleep_duration.InMilliseconds());
613 sampled_profile->set_ms_after_resume(time_after_resume.InMilliseconds()); 613 sampled_profile->set_ms_after_resume(time_after_resume.InMilliseconds());
614 614
615 CollectIfNecessary(std::move(sampled_profile)); 615 CollectIfNecessary(std::move(sampled_profile));
616 } 616 }
617 617
618 void PerfProvider::CollectPerfDataAfterSessionRestore( 618 void PerfProvider::CollectPerfDataAfterSessionRestore(
619 const base::TimeDelta& time_after_restore, 619 const base::TimeDelta& time_after_restore,
620 int num_tabs_restored) { 620 int num_tabs_restored) {
621 // Fill out a SampledProfile protobuf that will contain the collected data. 621 // Fill out a SampledProfile protobuf that will contain the collected data.
622 scoped_ptr<SampledProfile> sampled_profile(new SampledProfile); 622 std::unique_ptr<SampledProfile> sampled_profile(new SampledProfile);
623 sampled_profile->set_trigger_event(SampledProfile::RESTORE_SESSION); 623 sampled_profile->set_trigger_event(SampledProfile::RESTORE_SESSION);
624 sampled_profile->set_ms_after_restore(time_after_restore.InMilliseconds()); 624 sampled_profile->set_ms_after_restore(time_after_restore.InMilliseconds());
625 sampled_profile->set_num_tabs_restored(num_tabs_restored); 625 sampled_profile->set_num_tabs_restored(num_tabs_restored);
626 626
627 CollectIfNecessary(std::move(sampled_profile)); 627 CollectIfNecessary(std::move(sampled_profile));
628 last_session_restore_collection_time_ = base::TimeTicks::Now(); 628 last_session_restore_collection_time_ = base::TimeTicks::Now();
629 } 629 }
630 630
631 } // namespace metrics 631 } // namespace metrics
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698