Torne (Richard Coles) | 5821806 | 2012-11-14 11:43:16 +0000 | [diff] [blame] | 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
| 5 | #include "chrome/browser/ui/webui/sync_promo/sync_promo_trial.h" |
| 6 | |
| 7 | #include "base/logging.h" |
| 8 | #include "chrome/browser/metrics/metrics_service.h" |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 9 | #include "chrome/browser/signin/signin_promo.h" |
Torne (Richard Coles) | 5821806 | 2012-11-14 11:43:16 +0000 | [diff] [blame] | 10 | #include "content/public/browser/web_contents.h" |
| 11 | #include "content/public/browser/web_ui.h" |
| 12 | |
| 13 | namespace { |
| 14 | |
| 15 | enum { |
| 16 | UMA_START_PAGE_SHOWN = 0, |
| 17 | UMA_START_PAGE_SIGNED_IN, |
| 18 | UMA_NTP_LINK_SHOWN, |
| 19 | UMA_NTP_LINK_SIGNED_IN, |
| 20 | UMA_MENU_SHOWN, |
| 21 | UMA_MENU_SIGNED_IN, |
Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 22 | UMA_SETTINGS_SHOWN, |
| 23 | UMA_SETTINGS_SIGNED_IN, |
| 24 | UMA_EXTENSION_INSTALL_BUBBLE_SHOWN, |
| 25 | UMA_EXTENSION_INSTALL_BUBBLE_SIGNED_IN, |
Torne (Richard Coles) | 5821806 | 2012-11-14 11:43:16 +0000 | [diff] [blame] | 26 | UMA_UNKNOWN_SHOWN, |
| 27 | UMA_UNKNOWN_SIGNED_IN, |
Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 28 | UMA_WEBSTORE_INSTALL_SHOWN, |
| 29 | UMA_WEBSTORE_INSTALL_SIGNED_IN, |
| 30 | UMA_APP_LAUNCHER_SHOWN, |
| 31 | UMA_APP_LAUNCHER_SIGNED_IN, |
Torne (Richard Coles) | c2e0dbd | 2013-05-09 18:35:53 +0100 | [diff] [blame] | 32 | UMA_APPS_PAGE_LINK_SHOWN, |
| 33 | UMA_APPS_PAGE_LINK_SIGNED_IN, |
Ben Murdoch | ca12bfa | 2013-07-23 11:17:05 +0100 | [diff] [blame] | 34 | UMA_BOOKMARK_BUBBLE_SHOWN, |
| 35 | UMA_BOOKMARK_BUBBLE_SIGNED_IN, |
Torne (Richard Coles) | 5821806 | 2012-11-14 11:43:16 +0000 | [diff] [blame] | 36 | UMA_MAX, |
| 37 | }; |
| 38 | |
| 39 | } // namespace |
| 40 | |
| 41 | namespace sync_promo_trial { |
| 42 | |
| 43 | void RecordUserShownPromo(content::WebUI* web_ui) { |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 44 | signin::Source source = |
| 45 | signin::GetSourceForPromoURL(web_ui->GetWebContents()->GetURL()); |
Torne (Richard Coles) | 5821806 | 2012-11-14 11:43:16 +0000 | [diff] [blame] | 46 | int uma = 0; |
| 47 | switch (source) { |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 48 | case signin::SOURCE_START_PAGE: |
Torne (Richard Coles) | 5821806 | 2012-11-14 11:43:16 +0000 | [diff] [blame] | 49 | uma = UMA_START_PAGE_SHOWN; |
| 50 | break; |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 51 | case signin::SOURCE_NTP_LINK: |
Torne (Richard Coles) | 5821806 | 2012-11-14 11:43:16 +0000 | [diff] [blame] | 52 | uma = UMA_NTP_LINK_SHOWN; |
| 53 | break; |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 54 | case signin::SOURCE_MENU: |
Torne (Richard Coles) | 5821806 | 2012-11-14 11:43:16 +0000 | [diff] [blame] | 55 | uma = UMA_MENU_SHOWN; |
| 56 | break; |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 57 | case signin::SOURCE_SETTINGS: |
Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 58 | uma = UMA_SETTINGS_SHOWN; |
| 59 | break; |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 60 | case signin::SOURCE_EXTENSION_INSTALL_BUBBLE: |
Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 61 | uma = UMA_EXTENSION_INSTALL_BUBBLE_SHOWN; |
| 62 | break; |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 63 | case signin::SOURCE_WEBSTORE_INSTALL: |
Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 64 | uma = UMA_WEBSTORE_INSTALL_SHOWN; |
| 65 | break; |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 66 | case signin::SOURCE_APP_LAUNCHER: |
Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 67 | uma = UMA_APP_LAUNCHER_SHOWN; |
| 68 | break; |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 69 | case signin::SOURCE_APPS_PAGE_LINK: |
Torne (Richard Coles) | c2e0dbd | 2013-05-09 18:35:53 +0100 | [diff] [blame] | 70 | uma = UMA_APPS_PAGE_LINK_SHOWN; |
| 71 | break; |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 72 | case signin::SOURCE_BOOKMARK_BUBBLE: |
Ben Murdoch | ca12bfa | 2013-07-23 11:17:05 +0100 | [diff] [blame] | 73 | uma = UMA_BOOKMARK_BUBBLE_SHOWN; |
| 74 | break; |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 75 | case signin::SOURCE_UNKNOWN: |
Torne (Richard Coles) | 5821806 | 2012-11-14 11:43:16 +0000 | [diff] [blame] | 76 | uma = UMA_UNKNOWN_SHOWN; |
| 77 | break; |
| 78 | default: |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 79 | // If this assert hits, then the signin::Source enum has |
| 80 | // changed and the UMA enum above, this switch statement and |
| 81 | // histograms.xml all need to be updated to reflect that. |
| 82 | COMPILE_ASSERT(signin::SOURCE_UNKNOWN == 9, |
Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 83 | kSourceEnumHasChangedButNotThisSwitchStatement); |
Torne (Richard Coles) | 5821806 | 2012-11-14 11:43:16 +0000 | [diff] [blame] | 84 | NOTREACHED(); |
| 85 | break; |
| 86 | } |
| 87 | UMA_HISTOGRAM_ENUMERATION("SyncPromo.ShowAndSignIn", uma, UMA_MAX); |
| 88 | } |
| 89 | |
| 90 | void RecordUserSignedIn(content::WebUI* web_ui) { |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 91 | signin::Source source = |
| 92 | signin::GetSourceForPromoURL(web_ui->GetWebContents()->GetURL()); |
Torne (Richard Coles) | 5821806 | 2012-11-14 11:43:16 +0000 | [diff] [blame] | 93 | int uma = 0; |
| 94 | switch (source) { |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 95 | case signin::SOURCE_START_PAGE: |
Torne (Richard Coles) | 5821806 | 2012-11-14 11:43:16 +0000 | [diff] [blame] | 96 | uma = UMA_START_PAGE_SIGNED_IN; |
| 97 | break; |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 98 | case signin::SOURCE_NTP_LINK: |
Torne (Richard Coles) | 5821806 | 2012-11-14 11:43:16 +0000 | [diff] [blame] | 99 | uma = UMA_NTP_LINK_SIGNED_IN; |
| 100 | break; |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 101 | case signin::SOURCE_MENU: |
Torne (Richard Coles) | 5821806 | 2012-11-14 11:43:16 +0000 | [diff] [blame] | 102 | uma = UMA_MENU_SIGNED_IN; |
| 103 | break; |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 104 | case signin::SOURCE_SETTINGS: |
Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 105 | uma = UMA_SETTINGS_SIGNED_IN; |
| 106 | break; |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 107 | case signin::SOURCE_EXTENSION_INSTALL_BUBBLE: |
Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 108 | uma = UMA_EXTENSION_INSTALL_BUBBLE_SIGNED_IN; |
| 109 | break; |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 110 | case signin::SOURCE_WEBSTORE_INSTALL: |
Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 111 | uma = UMA_WEBSTORE_INSTALL_SIGNED_IN; |
| 112 | break; |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 113 | case signin::SOURCE_APP_LAUNCHER: |
Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 114 | uma = UMA_APP_LAUNCHER_SIGNED_IN; |
| 115 | break; |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 116 | case signin::SOURCE_APPS_PAGE_LINK: |
Torne (Richard Coles) | c2e0dbd | 2013-05-09 18:35:53 +0100 | [diff] [blame] | 117 | uma = UMA_APPS_PAGE_LINK_SIGNED_IN; |
| 118 | break; |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 119 | case signin::SOURCE_BOOKMARK_BUBBLE: |
Ben Murdoch | ca12bfa | 2013-07-23 11:17:05 +0100 | [diff] [blame] | 120 | uma = UMA_BOOKMARK_BUBBLE_SIGNED_IN; |
| 121 | break; |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 122 | case signin::SOURCE_UNKNOWN: |
Torne (Richard Coles) | 5821806 | 2012-11-14 11:43:16 +0000 | [diff] [blame] | 123 | uma = UMA_UNKNOWN_SIGNED_IN; |
| 124 | break; |
| 125 | default: |
Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 126 | // This switch statement needs to be updated when the enum Source changes. |
Torne (Richard Coles) | a36e592 | 2013-08-05 13:57:33 +0100 | [diff] [blame] | 127 | COMPILE_ASSERT(signin::SOURCE_UNKNOWN == 9, |
Torne (Richard Coles) | 2a99a7e | 2013-03-28 15:31:22 +0000 | [diff] [blame] | 128 | kSourceEnumHasChangedButNotThisSwitchStatement); |
Torne (Richard Coles) | 5821806 | 2012-11-14 11:43:16 +0000 | [diff] [blame] | 129 | NOTREACHED(); |
| 130 | break; |
| 131 | } |
| 132 | UMA_HISTOGRAM_ENUMERATION("SyncPromo.ShowAndSignIn", uma, UMA_MAX); |
| 133 | } |
| 134 | |
| 135 | } // namespace sync_promo_trial |