| 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 |