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

Unified Diff: chrome/browser/engagement/site_engagement_helper.cc

Issue 1411123002: Fix crash in SiteEngagementServiceHelper when switching render view hosts. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@startup_timer
Patch Set: fix compile Created 5 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/engagement/site_engagement_helper.cc
diff --git a/chrome/browser/engagement/site_engagement_helper.cc b/chrome/browser/engagement/site_engagement_helper.cc
index f445edd4c7248fc501de3b9ec4f178b3181b0d05..46602b57dc89cbeccb1e90e19163f57bebae7d39 100644
--- a/chrome/browser/engagement/site_engagement_helper.cc
+++ b/chrome/browser/engagement/site_engagement_helper.cc
@@ -27,7 +27,6 @@ SiteEngagementHelper::InputTracker::InputTracker(SiteEngagementHelper* helper)
: helper_(helper),
pause_timer_(new base::Timer(true, false)),
host_(nullptr),
- is_active_(false),
is_tracking_(false) {
key_press_event_callback_ =
base::Bind(&SiteEngagementHelper::InputTracker::HandleKeyPressEvent,
@@ -71,11 +70,10 @@ bool SiteEngagementHelper::InputTracker::HandleMouseEvent(
void SiteEngagementHelper::InputTracker::Start(content::RenderViewHost* host,
base::TimeDelta initial_delay) {
- DCHECK(!is_active_);
+ DCHECK(!host_);
DCHECK(host);
host_ = host;
StartTimer(initial_delay);
- is_active_ = true;
}
void SiteEngagementHelper::InputTracker::Pause() {
@@ -86,7 +84,7 @@ void SiteEngagementHelper::InputTracker::Pause() {
void SiteEngagementHelper::InputTracker::SwitchRenderViewHost(
content::RenderViewHost* old_host,
content::RenderViewHost* new_host) {
- DCHECK(is_tracking_);
+ DCHECK(host_);
DCHECK(new_host);
bool was_tracking = is_tracking_;
@@ -105,7 +103,10 @@ void SiteEngagementHelper::InputTracker::Stop() {
pause_timer_->Stop();
RemoveCallbacks();
host_ = nullptr;
- is_active_ = false;
+}
+
+bool SiteEngagementHelper::InputTracker::IsActive() const {
+ return host_ != nullptr;
}
void SiteEngagementHelper::InputTracker::SetPauseTimerForTesting(
@@ -194,7 +195,7 @@ void SiteEngagementHelper::RenderViewHostChanged(
content::RenderViewHost* new_host) {
// On changing the render view host, we need to re-register the callbacks
// listening for user input.
- if (input_tracker_.is_tracking()) {
+ if (input_tracker_.IsActive()) {
input_tracker_.SwitchRenderViewHost(old_host, new_host);
}
}
« no previous file with comments | « chrome/browser/engagement/site_engagement_helper.h ('k') | chrome/browser/engagement/site_engagement_service_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698