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

Side by Side Diff: chrome/browser/engagement/site_engagement_helper.cc

Issue 1478643002: Refactor media out of WebContentsImpl to MediaWebContentsObserver. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix namespace for cast. Created 5 years 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 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
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
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 }
OLDNEW
« no previous file with comments | « chrome/browser/engagement/site_engagement_helper.h ('k') | chrome/browser/engagement/site_engagement_helper_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698