| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef CHROME_BROWSER_BANNERS_APP_BANNER_SETTINGS_HELPER_H_ | 5 #ifndef CHROME_BROWSER_BANNERS_APP_BANNER_SETTINGS_HELPER_H_ |
| 6 #define CHROME_BROWSER_BANNERS_APP_BANNER_SETTINGS_HELPER_H_ | 6 #define CHROME_BROWSER_BANNERS_APP_BANNER_SETTINGS_HELPER_H_ |
| 7 | 7 |
| 8 #include <set> | 8 #include <set> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 // The desired effect is to have banners appear once a user has demonstrated | 33 // The desired effect is to have banners appear once a user has demonstrated |
| 34 // an ongoing relationship with the app, and not to pester the user too much. | 34 // an ongoing relationship with the app, and not to pester the user too much. |
| 35 // | 35 // |
| 36 // For most events only the last event is recorded. The exception are the | 36 // For most events only the last event is recorded. The exception are the |
| 37 // could show events. For these a list of the events is maintained. At most | 37 // could show events. For these a list of the events is maintained. At most |
| 38 // one event is stored per day, and events outside the window the heuristic | 38 // one event is stored per day, and events outside the window the heuristic |
| 39 // uses are discarded. Local times are used to enforce these rules, to ensure | 39 // uses are discarded. Local times are used to enforce these rules, to ensure |
| 40 // what we count as a day matches what the user perceives to be days. | 40 // what we count as a day matches what the user perceives to be days. |
| 41 class AppBannerSettingsHelper { | 41 class AppBannerSettingsHelper { |
| 42 public: | 42 public: |
| 43 // TODO(mariakhomenko): Rename events to reflect that they are used in more |
| 44 // contexts now. |
| 43 enum AppBannerEvent { | 45 enum AppBannerEvent { |
| 44 APP_BANNER_EVENT_COULD_SHOW, | 46 APP_BANNER_EVENT_COULD_SHOW, |
| 45 APP_BANNER_EVENT_DID_SHOW, | 47 APP_BANNER_EVENT_DID_SHOW, |
| 46 APP_BANNER_EVENT_DID_BLOCK, | 48 APP_BANNER_EVENT_DID_BLOCK, |
| 47 APP_BANNER_EVENT_DID_ADD_TO_HOMESCREEN, | 49 APP_BANNER_EVENT_DID_ADD_TO_HOMESCREEN, |
| 48 APP_BANNER_EVENT_NUM_EVENTS, | 50 APP_BANNER_EVENT_NUM_EVENTS, |
| 49 }; | 51 }; |
| 50 | 52 |
| 51 enum AppBannerRapporMetric { | 53 enum AppBannerRapporMetric { |
| 52 WEB, | 54 WEB, |
| 53 NATIVE, | 55 NATIVE, |
| 54 }; | 56 }; |
| 55 | 57 |
| 58 static const char kInstantAppsKey[]; |
| 59 |
| 56 // BannerEvents record the time that a site was accessed, along with an | 60 // BannerEvents record the time that a site was accessed, along with an |
| 57 // engagement weight representing the importance of the access. | 61 // engagement weight representing the importance of the access. |
| 58 struct BannerEvent { | 62 struct BannerEvent { |
| 59 base::Time time; | 63 base::Time time; |
| 60 double engagement; | 64 double engagement; |
| 61 }; | 65 }; |
| 62 | 66 |
| 63 // The content setting basically records a simplified subset of history. | 67 // The content setting basically records a simplified subset of history. |
| 64 // For privacy reasons this needs to be cleared. The ClearHistoryForURLs | 68 // For privacy reasons this needs to be cleared. The ClearHistoryForURLs |
| 65 // function removes any information from the banner content settings for the | 69 // function removes any information from the banner content settings for the |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 | 171 |
| 168 // Returns true if the app banner trigger condition should use the site | 172 // Returns true if the app banner trigger condition should use the site |
| 169 // engagement score instead of the navigation-based heuristic. | 173 // engagement score instead of the navigation-based heuristic. |
| 170 static bool ShouldUseSiteEngagementScore(); | 174 static bool ShouldUseSiteEngagementScore(); |
| 171 | 175 |
| 172 private: | 176 private: |
| 173 DISALLOW_IMPLICIT_CONSTRUCTORS(AppBannerSettingsHelper); | 177 DISALLOW_IMPLICIT_CONSTRUCTORS(AppBannerSettingsHelper); |
| 174 }; | 178 }; |
| 175 | 179 |
| 176 #endif // CHROME_BROWSER_BANNERS_APP_BANNER_SETTINGS_HELPER_H_ | 180 #endif // CHROME_BROWSER_BANNERS_APP_BANNER_SETTINGS_HELPER_H_ |
| OLD | NEW |