summaryrefslogtreecommitdiff
path: root/chromium/ui/compositor/throughput_tracker.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-12 14:27:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:35:20 +0000
commitc30a6232df03e1efbd9f3b226777b07e087a1122 (patch)
treee992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/ui/compositor/throughput_tracker.cc
parent7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff)
downloadqtwebengine-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.cc23
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