| 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_service.h" | 5 #include "chrome/browser/engagement/site_engagement_service.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 427 content::WebContents* web_contents, | 427 content::WebContents* web_contents, |
| 428 bool is_hidden) { | 428 bool is_hidden) { |
| 429 const GURL& url = web_contents->GetVisibleURL(); | 429 const GURL& url = web_contents->GetVisibleURL(); |
| 430 SiteEngagementMetrics::RecordEngagement( | 430 SiteEngagementMetrics::RecordEngagement( |
| 431 is_hidden ? SiteEngagementMetrics::ENGAGEMENT_MEDIA_HIDDEN | 431 is_hidden ? SiteEngagementMetrics::ENGAGEMENT_MEDIA_HIDDEN |
| 432 : SiteEngagementMetrics::ENGAGEMENT_MEDIA_VISIBLE); | 432 : SiteEngagementMetrics::ENGAGEMENT_MEDIA_VISIBLE); |
| 433 AddPoints(url, is_hidden ? SiteEngagementScore::GetHiddenMediaPoints() | 433 AddPoints(url, is_hidden ? SiteEngagementScore::GetHiddenMediaPoints() |
| 434 : SiteEngagementScore::GetVisibleMediaPoints()); | 434 : SiteEngagementScore::GetVisibleMediaPoints()); |
| 435 | 435 |
| 436 RecordMetrics(); | 436 RecordMetrics(); |
| 437 FOR_EACH_OBSERVER( | 437 for (SiteEngagementObserver& observer : observer_list_) |
| 438 SiteEngagementObserver, observer_list_, | 438 observer.OnEngagementIncreased(web_contents, url, GetScore(url)); |
| 439 OnEngagementIncreased(web_contents, url, GetScore(url))); | |
| 440 } | 439 } |
| 441 | 440 |
| 442 void SiteEngagementService::HandleNavigation(content::WebContents* web_contents, | 441 void SiteEngagementService::HandleNavigation(content::WebContents* web_contents, |
| 443 ui::PageTransition transition) { | 442 ui::PageTransition transition) { |
| 444 if (IsEngagementNavigation(transition)) { | 443 if (IsEngagementNavigation(transition)) { |
| 445 const GURL& url = web_contents->GetLastCommittedURL(); | 444 const GURL& url = web_contents->GetLastCommittedURL(); |
| 446 SiteEngagementMetrics::RecordEngagement( | 445 SiteEngagementMetrics::RecordEngagement( |
| 447 SiteEngagementMetrics::ENGAGEMENT_NAVIGATION); | 446 SiteEngagementMetrics::ENGAGEMENT_NAVIGATION); |
| 448 AddPoints(url, SiteEngagementScore::GetNavigationPoints()); | 447 AddPoints(url, SiteEngagementScore::GetNavigationPoints()); |
| 449 | 448 |
| 450 RecordMetrics(); | 449 RecordMetrics(); |
| 451 FOR_EACH_OBSERVER( | 450 for (SiteEngagementObserver& observer : observer_list_) |
| 452 SiteEngagementObserver, observer_list_, | 451 observer.OnEngagementIncreased(web_contents, url, GetScore(url)); |
| 453 OnEngagementIncreased(web_contents, url, GetScore(url))); | |
| 454 } | 452 } |
| 455 } | 453 } |
| 456 | 454 |
| 457 void SiteEngagementService::HandleUserInput( | 455 void SiteEngagementService::HandleUserInput( |
| 458 content::WebContents* web_contents, | 456 content::WebContents* web_contents, |
| 459 SiteEngagementMetrics::EngagementType type) { | 457 SiteEngagementMetrics::EngagementType type) { |
| 460 const GURL& url = web_contents->GetVisibleURL(); | 458 const GURL& url = web_contents->GetVisibleURL(); |
| 461 SiteEngagementMetrics::RecordEngagement(type); | 459 SiteEngagementMetrics::RecordEngagement(type); |
| 462 AddPoints(url, SiteEngagementScore::GetUserInputPoints()); | 460 AddPoints(url, SiteEngagementScore::GetUserInputPoints()); |
| 463 | 461 |
| 464 RecordMetrics(); | 462 RecordMetrics(); |
| 465 FOR_EACH_OBSERVER( | 463 for (SiteEngagementObserver& observer : observer_list_) |
| 466 SiteEngagementObserver, observer_list_, | 464 observer.OnEngagementIncreased(web_contents, url, GetScore(url)); |
| 467 OnEngagementIncreased(web_contents, url, GetScore(url))); | |
| 468 } | 465 } |
| 469 | 466 |
| 470 bool SiteEngagementService::IsLastEngagementStale() const { | 467 bool SiteEngagementService::IsLastEngagementStale() const { |
| 471 // This only happens when Chrome is first run and the user has never recorded | 468 // This only happens when Chrome is first run and the user has never recorded |
| 472 // any engagement. | 469 // any engagement. |
| 473 base::Time last_engagement_time = GetLastEngagementTime(); | 470 base::Time last_engagement_time = GetLastEngagementTime(); |
| 474 if (last_engagement_time.is_null()) | 471 if (last_engagement_time.is_null()) |
| 475 return false; | 472 return false; |
| 476 | 473 |
| 477 return (clock_->Now() - last_engagement_time) >= GetStalePeriod(); | 474 return (clock_->Now() - last_engagement_time) >= GetStalePeriod(); |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 597 if (!engagement_score.last_shortcut_launch_time().is_null() && | 594 if (!engagement_score.last_shortcut_launch_time().is_null() && |
| 598 engagement_score.last_shortcut_launch_time() > last_visit) { | 595 engagement_score.last_shortcut_launch_time() > last_visit) { |
| 599 engagement_score.set_last_shortcut_launch_time(last_visit); | 596 engagement_score.set_last_shortcut_launch_time(last_visit); |
| 600 } | 597 } |
| 601 | 598 |
| 602 engagement_score.Commit(); | 599 engagement_score.Commit(); |
| 603 } | 600 } |
| 604 | 601 |
| 605 SetLastEngagementTime(now); | 602 SetLastEngagementTime(now); |
| 606 } | 603 } |
| OLD | NEW |