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 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
148 GURL origin(site.primary_pattern.ToString()); | 148 GURL origin(site.primary_pattern.ToString()); |
149 if (!origin.is_valid()) | 149 if (!origin.is_valid()) |
150 continue; | 150 continue; |
151 | 151 |
152 score_map[origin] = GetScore(origin); | 152 score_map[origin] = GetScore(origin); |
153 } | 153 } |
154 | 154 |
155 return score_map; | 155 return score_map; |
156 } | 156 } |
157 | 157 |
| 158 void SiteEngagementService::HandleNotificationInteraction(const GURL& url) { |
| 159 if (!ShouldRecordEngagement(url)) |
| 160 return; |
| 161 |
| 162 SiteEngagementMetrics::RecordEngagement( |
| 163 SiteEngagementMetrics::ENGAGEMENT_NOTIFICATION_INTERACTION); |
| 164 AddPoints(url, SiteEngagementScore::GetNotificationInteractionPoints()); |
| 165 |
| 166 RecordMetrics(); |
| 167 double score = GetScore(url); |
| 168 for (SiteEngagementObserver& observer : observer_list_) |
| 169 observer.OnEngagementIncreased(nullptr /* web_contents */, url, score); |
| 170 } |
| 171 |
158 bool SiteEngagementService::IsBootstrapped() const { | 172 bool SiteEngagementService::IsBootstrapped() const { |
159 return GetTotalEngagementPoints() >= | 173 return GetTotalEngagementPoints() >= |
160 SiteEngagementScore::GetBootstrapPoints(); | 174 SiteEngagementScore::GetBootstrapPoints(); |
161 } | 175 } |
162 | 176 |
163 bool SiteEngagementService::IsEngagementAtLeast( | 177 bool SiteEngagementService::IsEngagementAtLeast( |
164 const GURL& url, | 178 const GURL& url, |
165 blink::mojom::EngagementLevel level) const { | 179 blink::mojom::EngagementLevel level) const { |
166 DCHECK_LT(SiteEngagementScore::GetMediumEngagementBoundary(), | 180 DCHECK_LT(SiteEngagementScore::GetMediumEngagementBoundary(), |
167 SiteEngagementScore::GetHighEngagementBoundary()); | 181 SiteEngagementScore::GetHighEngagementBoundary()); |
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
468 if (!ShouldRecordEngagement(url)) | 482 if (!ShouldRecordEngagement(url)) |
469 return; | 483 return; |
470 | 484 |
471 SiteEngagementMetrics::RecordEngagement( | 485 SiteEngagementMetrics::RecordEngagement( |
472 is_hidden ? SiteEngagementMetrics::ENGAGEMENT_MEDIA_HIDDEN | 486 is_hidden ? SiteEngagementMetrics::ENGAGEMENT_MEDIA_HIDDEN |
473 : SiteEngagementMetrics::ENGAGEMENT_MEDIA_VISIBLE); | 487 : SiteEngagementMetrics::ENGAGEMENT_MEDIA_VISIBLE); |
474 AddPoints(url, is_hidden ? SiteEngagementScore::GetHiddenMediaPoints() | 488 AddPoints(url, is_hidden ? SiteEngagementScore::GetHiddenMediaPoints() |
475 : SiteEngagementScore::GetVisibleMediaPoints()); | 489 : SiteEngagementScore::GetVisibleMediaPoints()); |
476 | 490 |
477 RecordMetrics(); | 491 RecordMetrics(); |
| 492 double score = GetScore(url); |
478 for (SiteEngagementObserver& observer : observer_list_) | 493 for (SiteEngagementObserver& observer : observer_list_) |
479 observer.OnEngagementIncreased(web_contents, url, GetScore(url)); | 494 observer.OnEngagementIncreased(web_contents, url, score); |
480 } | 495 } |
481 | 496 |
482 void SiteEngagementService::HandleNavigation(content::WebContents* web_contents, | 497 void SiteEngagementService::HandleNavigation(content::WebContents* web_contents, |
483 ui::PageTransition transition) { | 498 ui::PageTransition transition) { |
484 const GURL& url = web_contents->GetLastCommittedURL(); | 499 const GURL& url = web_contents->GetLastCommittedURL(); |
485 if (!IsEngagementNavigation(transition) || !ShouldRecordEngagement(url)) | 500 if (!IsEngagementNavigation(transition) || !ShouldRecordEngagement(url)) |
486 return; | 501 return; |
487 | 502 |
488 SiteEngagementMetrics::RecordEngagement( | 503 SiteEngagementMetrics::RecordEngagement( |
489 SiteEngagementMetrics::ENGAGEMENT_NAVIGATION); | 504 SiteEngagementMetrics::ENGAGEMENT_NAVIGATION); |
490 AddPoints(url, SiteEngagementScore::GetNavigationPoints()); | 505 AddPoints(url, SiteEngagementScore::GetNavigationPoints()); |
491 | 506 |
492 RecordMetrics(); | 507 RecordMetrics(); |
| 508 double score = GetScore(url); |
493 for (SiteEngagementObserver& observer : observer_list_) | 509 for (SiteEngagementObserver& observer : observer_list_) |
494 observer.OnEngagementIncreased(web_contents, url, GetScore(url)); | 510 observer.OnEngagementIncreased(web_contents, url, score); |
495 } | 511 } |
496 | 512 |
497 void SiteEngagementService::HandleUserInput( | 513 void SiteEngagementService::HandleUserInput( |
498 content::WebContents* web_contents, | 514 content::WebContents* web_contents, |
499 SiteEngagementMetrics::EngagementType type) { | 515 SiteEngagementMetrics::EngagementType type) { |
500 const GURL& url = web_contents->GetLastCommittedURL(); | 516 const GURL& url = web_contents->GetLastCommittedURL(); |
501 if (!ShouldRecordEngagement(url)) | 517 if (!ShouldRecordEngagement(url)) |
502 return; | 518 return; |
503 | 519 |
504 SiteEngagementMetrics::RecordEngagement(type); | 520 SiteEngagementMetrics::RecordEngagement(type); |
505 AddPoints(url, SiteEngagementScore::GetUserInputPoints()); | 521 AddPoints(url, SiteEngagementScore::GetUserInputPoints()); |
506 | 522 |
507 RecordMetrics(); | 523 RecordMetrics(); |
| 524 double score = GetScore(url); |
508 for (SiteEngagementObserver& observer : observer_list_) | 525 for (SiteEngagementObserver& observer : observer_list_) |
509 observer.OnEngagementIncreased(web_contents, url, GetScore(url)); | 526 observer.OnEngagementIncreased(web_contents, url, score); |
510 } | 527 } |
511 | 528 |
512 void SiteEngagementService::SendLevelChangeToHelpers( | 529 void SiteEngagementService::SendLevelChangeToHelpers( |
513 const GURL& url, | 530 const GURL& url, |
514 blink::mojom::EngagementLevel level) { | 531 blink::mojom::EngagementLevel level) { |
515 for (SiteEngagementService::Helper* helper : helpers_) | 532 for (SiteEngagementService::Helper* helper : helpers_) |
516 helper->OnEngagementLevelChanged(url, level); | 533 helper->OnEngagementLevelChanged(url, level); |
517 } | 534 } |
518 | 535 |
519 bool SiteEngagementService::IsLastEngagementStale() const { | 536 bool SiteEngagementService::IsLastEngagementStale() const { |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
648 if (!engagement_score.last_shortcut_launch_time().is_null() && | 665 if (!engagement_score.last_shortcut_launch_time().is_null() && |
649 engagement_score.last_shortcut_launch_time() > last_visit) { | 666 engagement_score.last_shortcut_launch_time() > last_visit) { |
650 engagement_score.set_last_shortcut_launch_time(last_visit); | 667 engagement_score.set_last_shortcut_launch_time(last_visit); |
651 } | 668 } |
652 | 669 |
653 engagement_score.Commit(); | 670 engagement_score.Commit(); |
654 } | 671 } |
655 | 672 |
656 SetLastEngagementTime(now); | 673 SetLastEngagementTime(now); |
657 } | 674 } |
OLD | NEW |