diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-12 14:27:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-13 09:35:20 +0000 |
commit | c30a6232df03e1efbd9f3b226777b07e087a1122 (patch) | |
tree | e992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/ui/compositor/throughput_tracker.cc | |
parent | 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff) | |
download | qtwebengine-chromium-85-based.tar.gz |
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/ui/compositor/throughput_tracker.cc')
-rw-r--r-- | chromium/ui/compositor/throughput_tracker.cc | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/chromium/ui/compositor/throughput_tracker.cc b/chromium/ui/compositor/throughput_tracker.cc index 04e9b22c3e8..50e379fdc3f 100644 --- a/chromium/ui/compositor/throughput_tracker.cc +++ b/chromium/ui/compositor/throughput_tracker.cc @@ -11,8 +11,9 @@ namespace ui { -ThroughputTracker::ThroughputTracker(TrackerId id, ThroughputTrackerHost* host) - : id_(id), host_(host) { +ThroughputTracker::ThroughputTracker(TrackerId id, + base::WeakPtr<ThroughputTrackerHost> host) + : id_(id), host_(std::move(host)) { DCHECK(host_); } @@ -22,11 +23,11 @@ ThroughputTracker::ThroughputTracker(ThroughputTracker&& other) { ThroughputTracker& ThroughputTracker::operator=(ThroughputTracker&& other) { id_ = other.id_; - host_ = other.host_; + host_ = std::move(other.host_); started_ = other.started_; other.id_ = kInvalidId; - other.host_ = nullptr; + other.host_.reset(); other.started_ = false; return *this; } @@ -37,18 +38,28 @@ ThroughputTracker::~ThroughputTracker() { } void ThroughputTracker::Start(ThroughputTrackerHost::ReportCallback callback) { + // Start after |host_| destruction is likely an error. + DCHECK(host_); + DCHECK(!started_); + started_ = true; host_->StartThroughputTracker(id_, std::move(callback)); } void ThroughputTracker::Stop() { + DCHECK(started_); + started_ = false; - host_->StopThroughtputTracker(id_); + if (host_) + host_->StopThroughtputTracker(id_); } void ThroughputTracker::Cancel() { + DCHECK(started_); + started_ = false; - host_->CancelThroughtputTracker(id_); + if (host_) + host_->CancelThroughtputTracker(id_); } } // namespace ui |