| Index: chrome/browser/engagement/site_engagement_service.h | 
| diff --git a/chrome/browser/engagement/site_engagement_service.h b/chrome/browser/engagement/site_engagement_service.h | 
| index 65e22334d8f10e947e2d42a9d5624716a9a79459..350d30a934855a90f559122d691434087003c1fa 100644 | 
| --- a/chrome/browser/engagement/site_engagement_service.h | 
| +++ b/chrome/browser/engagement/site_engagement_service.h | 
| @@ -14,6 +14,7 @@ | 
| #include "base/memory/weak_ptr.h" | 
| #include "base/observer_list.h" | 
| #include "base/time/time.h" | 
| +#include "build/build_config.h" | 
| #include "chrome/browser/engagement/site_engagement_metrics.h" | 
| #include "chrome/browser/engagement/site_engagement_observer.h" | 
| #include "components/history/core/browser/history_service_observer.h" | 
| @@ -37,6 +38,10 @@ class HostContentSettingsMap; | 
| class Profile; | 
| class SiteEngagementScore; | 
|  | 
| +#if defined(OS_ANDROID) | 
| +class SiteEngagementServiceAndroid; | 
| +#endif | 
| + | 
| class SiteEngagementScoreProvider { | 
| public: | 
| // Returns a non-negative integer representing the engagement score of the | 
| @@ -134,6 +139,7 @@ class SiteEngagementService : public KeyedService, | 
|  | 
| private: | 
| friend class SiteEngagementObserver; | 
| +  friend class SiteEngagementServiceAndroid; | 
| FRIEND_TEST_ALL_PREFIXES(SiteEngagementServiceTest, CheckHistograms); | 
| FRIEND_TEST_ALL_PREFIXES(SiteEngagementServiceTest, CleanupEngagementScores); | 
| FRIEND_TEST_ALL_PREFIXES(SiteEngagementServiceTest, | 
| @@ -160,6 +166,13 @@ class SiteEngagementService : public KeyedService, | 
| FRIEND_TEST_ALL_PREFIXES(SiteEngagementServiceTest, GetScoreFromSettings); | 
| FRIEND_TEST_ALL_PREFIXES(AppBannerSettingsHelperTest, SiteEngagementTrigger); | 
|  | 
| +#if defined(OS_ANDROID) | 
| +  // Shim class to expose the service to Java. | 
| +  SiteEngagementServiceAndroid* GetAndroidService() const; | 
| +  void SetAndroidService( | 
| +      std::unique_ptr<SiteEngagementServiceAndroid> android_service); | 
| +#endif | 
| + | 
| // Only used in tests. | 
| SiteEngagementService(Profile* profile, std::unique_ptr<base::Clock> clock); | 
|  | 
| @@ -253,6 +266,10 @@ class SiteEngagementService : public KeyedService, | 
| // The clock used to vend times. | 
| std::unique_ptr<base::Clock> clock_; | 
|  | 
| +#if defined(OS_ANDROID) | 
| +  std::unique_ptr<SiteEngagementServiceAndroid> android_service_; | 
| +#endif | 
| + | 
| // Metrics are recorded at non-incognito browser startup, and then | 
| // approximately once per hour thereafter. Store the local time at which | 
| // metrics were previously uploaded: the first event which affects any | 
|  |