| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/engagement/site_engagement_helper.h" | 5 #include "chrome/browser/engagement/site_engagement_helper.h" |
| 6 | 6 |
| 7 #include "base/time/time.h" | 7 #include "base/time/time.h" |
| 8 #include "base/trace_event/trace_event.h" | 8 #include "base/trace_event/trace_event.h" |
| 9 #include "chrome/browser/engagement/site_engagement_service.h" | 9 #include "chrome/browser/engagement/site_engagement_service.h" |
| 10 #include "chrome/browser/engagement/site_engagement_service_factory.h" | 10 #include "chrome/browser/engagement/site_engagement_service_factory.h" |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 break; | 104 break; |
| 105 default: | 105 default: |
| 106 NOTREACHED(); | 106 NOTREACHED(); |
| 107 } | 107 } |
| 108 Pause(); | 108 Pause(); |
| 109 } | 109 } |
| 110 | 110 |
| 111 SiteEngagementHelper::MediaTracker::MediaTracker( | 111 SiteEngagementHelper::MediaTracker::MediaTracker( |
| 112 SiteEngagementHelper* helper, | 112 SiteEngagementHelper* helper, |
| 113 content::WebContents* web_contents) | 113 content::WebContents* web_contents) |
| 114 : PeriodicTracker(helper), content::WebContentsObserver(web_contents), | 114 : PeriodicTracker(helper), |
| 115 is_hidden_(false), | 115 content::WebContentsObserver(web_contents), |
| 116 is_playing_(false) {} | 116 is_hidden_(false) {} |
| 117 |
| 118 SiteEngagementHelper::MediaTracker::~MediaTracker() {} |
| 117 | 119 |
| 118 void SiteEngagementHelper::MediaTracker::TrackingStarted() { | 120 void SiteEngagementHelper::MediaTracker::TrackingStarted() { |
| 119 if (is_playing_) | 121 if (!active_media_players_.empty()) |
| 120 helper()->RecordMediaPlaying(is_hidden_); | 122 helper()->RecordMediaPlaying(is_hidden_); |
| 121 | 123 |
| 122 Pause(); | 124 Pause(); |
| 123 } | 125 } |
| 124 | 126 |
| 125 void SiteEngagementHelper::MediaTracker::MediaStartedPlaying() { | 127 void SiteEngagementHelper::MediaTracker::MediaStartedPlaying( |
| 128 const MediaPlayerId& id) { |
| 126 // Only begin engagement detection when media actually starts playing. | 129 // Only begin engagement detection when media actually starts playing. |
| 127 is_playing_ = true; | 130 active_media_players_.push_back(id); |
| 128 if (!IsTimerRunning()) | 131 if (!IsTimerRunning()) |
| 129 Start(base::TimeDelta::FromSeconds(g_seconds_delay_after_media_starts)); | 132 Start(base::TimeDelta::FromSeconds(g_seconds_delay_after_media_starts)); |
| 130 } | 133 } |
| 131 | 134 |
| 132 void SiteEngagementHelper::MediaTracker::MediaPaused() { | 135 void SiteEngagementHelper::MediaTracker::MediaStoppedPlaying( |
| 133 is_playing_ = false; | 136 const MediaPlayerId& id) { |
| 137 active_media_players_.erase(std::remove(active_media_players_.begin(), |
| 138 active_media_players_.end(), id), |
| 139 active_media_players_.end()); |
| 134 } | 140 } |
| 135 | 141 |
| 136 void SiteEngagementHelper::MediaTracker::WasShown() { | 142 void SiteEngagementHelper::MediaTracker::WasShown() { |
| 137 is_hidden_ = false; | 143 is_hidden_ = false; |
| 138 } | 144 } |
| 139 | 145 |
| 140 void SiteEngagementHelper::MediaTracker::WasHidden() { | 146 void SiteEngagementHelper::MediaTracker::WasHidden() { |
| 141 is_hidden_ = true; | 147 is_hidden_ = true; |
| 142 } | 148 } |
| 143 | 149 |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 228 | 234 |
| 229 // static | 235 // static |
| 230 void SiteEngagementHelper::SetSecondsTrackingDelayAfterNavigation(int seconds) { | 236 void SiteEngagementHelper::SetSecondsTrackingDelayAfterNavigation(int seconds) { |
| 231 g_seconds_delay_after_navigation = seconds; | 237 g_seconds_delay_after_navigation = seconds; |
| 232 } | 238 } |
| 233 | 239 |
| 234 // static | 240 // static |
| 235 void SiteEngagementHelper::SetSecondsTrackingDelayAfterShow(int seconds) { | 241 void SiteEngagementHelper::SetSecondsTrackingDelayAfterShow(int seconds) { |
| 236 g_seconds_delay_after_show = seconds; | 242 g_seconds_delay_after_show = seconds; |
| 237 } | 243 } |
| OLD | NEW |