Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(43)

Issue 2782113002: Add component for feature engagement tracking. (Closed)

Created:
3 years, 8 months ago by nyquist
Modified:
3 years, 8 months ago
CC:
chromium-reviews, blundell+watchlist_chromium.org, sdefresne+watchlist_chromium.org, droger+watchlist_chromium.org, agrieve+watch_chromium.org
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Add component for feature engagement tracking. The Feature Engagement Tracker provides a client-side backend for displaying feature enlightenment or in-product help with a clean and easy to use API to be consumed by the UI frontend. The backend behaves as a black box and takes input about user behavior. Whenever the frontend gives a trigger signal that in-product help could be displayed, the backend will provide an answer to whether it is appropriate to show it or not. This CL adds a new component for this, with both a public C++ and a public Java API. It also sets up the KeyedService factory in //chrome, and hooks up the bridge between the C++ and Java implementations of the backend. The Java version is a pass through, and all business logic is implemented in C++. This means that callers do not have to care whether they use the Java or C++ version. It has been implemented as a component to ensure that other components can use it directly, and to ensure that it would be easy to use the same system across different platforms. BUG=706309 Review-Url: https://codereview.chromium.org/2782113002 Cr-Commit-Position: refs/heads/master@{#461215} Committed: https://chromium.googlesource.com/chromium/src/+/9bf0cdf694d4267208da03b25ab45959606d1208

Patch Set 1 #

Patch Set 2 : Minor edits after self-review #

Patch Set 3 : Remove multi-line comment and change public component target to source_set #

Total comments: 10

Patch Set 4 : Only link in //chrome for Android, add dummy unit test, change Android ownership model, fix DEPS #

Patch Set 5 : Redirect incognito profile to original profile #

Total comments: 2

Patch Set 6 : Only compile on Android, and remove unnecessary visibility #

Patch Set 7 : define component targets on all platforms #

Total comments: 2

Patch Set 8 : Moved constant definition around #

Patch Set 9 : Rebased for good measure #

Patch Set 10 : Rebased again #

Patch Set 11 : Fix typo in //chrome/android/java/DEPS #

Unified diffs Side-by-side diffs Delta from patch set Stats (+910 lines, -0 lines) Patch
M chrome/android/BUILD.gn View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M chrome/android/java/DEPS View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -0 lines 0 comments Download
A chrome/android/java/src/org/chromium/chrome/browser/feature_engagement_tracker/FeatureEngagementTrackerFactory.java View 1 chunk +30 lines, -0 lines 0 comments Download
A chrome/android/java/src/org/chromium/chrome/browser/feature_engagement_tracker/OWNERS View 1 chunk +1 line, -0 lines 0 comments Download
M chrome/android/java_sources.gni View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download
M chrome/browser/BUILD.gn View 1 2 3 4 5 6 7 8 9 4 chunks +6 lines, -0 lines 0 comments Download
M chrome/browser/android/chrome_jni_registrar.cc View 1 2 3 4 5 6 7 8 3 chunks +6 lines, -0 lines 0 comments Download
A chrome/browser/android/feature_engagement_tracker/OWNERS View 1 chunk +1 line, -0 lines 0 comments Download
A chrome/browser/android/feature_engagement_tracker/feature_engagement_tracker_factory_android.h View 1 chunk +13 lines, -0 lines 0 comments Download
A chrome/browser/android/feature_engagement_tracker/feature_engagement_tracker_factory_android.cc View 1 chunk +29 lines, -0 lines 0 comments Download
A chrome/browser/feature_engagement_tracker/DEPS View 1 chunk +4 lines, -0 lines 0 comments Download
A chrome/browser/feature_engagement_tracker/OWNERS View 1 chunk +1 line, -0 lines 0 comments Download
A chrome/browser/feature_engagement_tracker/feature_engagement_tracker_factory.h View 1 chunk +51 lines, -0 lines 0 comments Download
A chrome/browser/feature_engagement_tracker/feature_engagement_tracker_factory.cc View 1 2 3 4 1 chunk +60 lines, -0 lines 0 comments Download
M chrome/common/chrome_constants.h View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download
M chrome/common/chrome_constants.cc View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -0 lines 0 comments Download
M components/BUILD.gn View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
A components/feature_engagement_tracker/BUILD.gn View 1 2 3 4 5 6 1 chunk +35 lines, -0 lines 0 comments Download
A components/feature_engagement_tracker/DEPS View 1 chunk +5 lines, -0 lines 0 comments Download
A components/feature_engagement_tracker/OWNERS View 1 chunk +2 lines, -0 lines 0 comments Download
A components/feature_engagement_tracker/README.md View 1 chunk +14 lines, -0 lines 0 comments Download
A components/feature_engagement_tracker/internal/BUILD.gn View 1 2 3 1 chunk +72 lines, -0 lines 0 comments Download
A components/feature_engagement_tracker/internal/android/feature_engagement_tracker_impl_android.h View 1 2 3 1 chunk +67 lines, -0 lines 0 comments Download
A components/feature_engagement_tracker/internal/android/feature_engagement_tracker_impl_android.cc View 1 2 3 1 chunk +121 lines, -0 lines 0 comments Download
A components/feature_engagement_tracker/internal/android/feature_engagement_tracker_jni_registrar.cc View 1 2 1 chunk +29 lines, -0 lines 0 comments Download
A components/feature_engagement_tracker/internal/android/java/src/org/chromium/components/feature_engagement_tracker/internal/FeatureEngagementTrackerImpl.java View 1 2 3 1 chunk +81 lines, -0 lines 0 comments Download
A components/feature_engagement_tracker/internal/feature_engagement_tracker_impl.h View 1 2 3 1 chunk +37 lines, -0 lines 0 comments Download
A components/feature_engagement_tracker/internal/feature_engagement_tracker_impl.cc View 1 2 3 1 chunk +46 lines, -0 lines 0 comments Download
A components/feature_engagement_tracker/internal/feature_engagement_tracker_impl_unittest.cc View 1 2 3 1 chunk +11 lines, -0 lines 0 comments Download
A components/feature_engagement_tracker/public/BUILD.gn View 1 2 3 4 5 1 chunk +34 lines, -0 lines 0 comments Download
A components/feature_engagement_tracker/public/android/feature_engagement_tracker_jni_registrar.h View 1 chunk +17 lines, -0 lines 0 comments Download
A components/feature_engagement_tracker/public/android/java/src/org/chromium/components/feature_engagement_tracker/FeatureEngagementTracker.java View 1 2 3 1 chunk +51 lines, -0 lines 0 comments Download
A components/feature_engagement_tracker/public/feature_engagement_tracker.h View 1 1 chunk +79 lines, -0 lines 0 comments Download

Messages

Total messages: 48 (29 generated)
nyquist
dtrainor: PTAL all of it. brettw: PTAL addition of the new component //components/feature_engagement_tracker. sky: PTAL ...
3 years, 8 months ago (2017-03-29 09:46:38 UTC) #8
blundell
drive-by: Can you motivate why this is developed as a component rather than in //chrome ...
3 years, 8 months ago (2017-03-29 10:08:53 UTC) #10
sky
On 2017/03/29 10:08:53, blundell wrote: > drive-by: Can you motivate why this is developed as ...
3 years, 8 months ago (2017-03-29 17:17:28 UTC) #13
Elliot Glaysher
Just from the description, I don't know what this is. If this is a help ...
3 years, 8 months ago (2017-03-29 17:39:30 UTC) #14
David Trainor- moved to gerrit
https://codereview.chromium.org/2782113002/diff/40001/chrome/browser/feature_engagement_tracker/feature_engagement_tracker_factory.cc File chrome/browser/feature_engagement_tracker/feature_engagement_tracker_factory.cc (right): https://codereview.chromium.org/2782113002/diff/40001/chrome/browser/feature_engagement_tracker/feature_engagement_tracker_factory.cc#newcode58 chrome/browser/feature_engagement_tracker/feature_engagement_tracker_factory.cc:58: return context; Do we want a separate one for ...
3 years, 8 months ago (2017-03-29 18:00:06 UTC) #15
sky
On 2017/03/29 18:00:06, David Trainor-ping if over 24h wrote: > https://codereview.chromium.org/2782113002/diff/40001/chrome/browser/feature_engagement_tracker/feature_engagement_tracker_factory.cc > File > chrome/browser/feature_engagement_tracker/feature_engagement_tracker_factory.cc ...
3 years, 8 months ago (2017-03-29 20:17:23 UTC) #18
Elliot Glaysher
https://codereview.chromium.org/2782113002/diff/40001/components/feature_engagement_tracker/public/feature_engagement_tracker.h File components/feature_engagement_tracker/public/feature_engagement_tracker.h (right): https://codereview.chromium.org/2782113002/diff/40001/components/feature_engagement_tracker/public/feature_engagement_tracker.h#newcode19 components/feature_engagement_tracker/public/feature_engagement_tracker.h:19: #endif // defined(OS_ANDROID) I'm a bit confused about where ...
3 years, 8 months ago (2017-03-29 21:11:39 UTC) #19
nyquist
Addressed all comments. Added dummy unit test of component that is compiled in on all ...
3 years, 8 months ago (2017-03-30 22:58:54 UTC) #20
brettw
Adding the new component LGTM. I looked briefly at the build files, but nothing else, ...
3 years, 8 months ago (2017-03-30 23:09:48 UTC) #22
nyquist
On 2017/03/30 23:09:48, brettw (plz ping after 24h) wrote: > Adding the new component LGTM. ...
3 years, 8 months ago (2017-03-30 23:12:40 UTC) #24
nyquist
https://codereview.chromium.org/2782113002/diff/80001/components/feature_engagement_tracker/BUILD.gn File components/feature_engagement_tracker/BUILD.gn (right): https://codereview.chromium.org/2782113002/diff/80001/components/feature_engagement_tracker/BUILD.gn#newcode11 components/feature_engagement_tracker/BUILD.gn:11: visibility = [ "*" ] On 2017/03/30 23:09:48, brettw ...
3 years, 8 months ago (2017-03-30 23:12:47 UTC) #25
David Trainor- moved to gerrit
lgtm
3 years, 8 months ago (2017-03-30 23:24:02 UTC) #26
sky
LGTM https://codereview.chromium.org/2782113002/diff/120001/chrome/common/chrome_constants.cc File chrome/common/chrome_constants.cc (right): https://codereview.chromium.org/2782113002/diff/120001/chrome/common/chrome_constants.cc#newcode148 chrome/common/chrome_constants.cc:148: const base::FilePath::CharType kFeatureEngagementTrackerStorageDirname[] = keep sorted (move above ...
3 years, 8 months ago (2017-03-31 00:10:15 UTC) #29
nyquist
All done with comments. erg: PTAL https://codereview.chromium.org/2782113002/diff/120001/chrome/common/chrome_constants.cc File chrome/common/chrome_constants.cc (right): https://codereview.chromium.org/2782113002/diff/120001/chrome/common/chrome_constants.cc#newcode148 chrome/common/chrome_constants.cc:148: const base::FilePath::CharType kFeatureEngagementTrackerStorageDirname[] ...
3 years, 8 months ago (2017-03-31 00:15:40 UTC) #30
Elliot Glaysher
lgtm
3 years, 8 months ago (2017-03-31 17:19:34 UTC) #37
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2782113002/200001
3 years, 8 months ago (2017-03-31 17:22:31 UTC) #41
commit-bot: I haz the power
Try jobs failed on following builders: ios-simulator on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator/builds/184789)
3 years, 8 months ago (2017-03-31 18:23:54 UTC) #43
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2782113002/200001
3 years, 8 months ago (2017-03-31 19:37:06 UTC) #45
commit-bot: I haz the power
3 years, 8 months ago (2017-03-31 20:46:11 UTC) #48
Message was sent while issue was closed.
Committed patchset #11 (id:200001) as
https://chromium.googlesource.com/chromium/src/+/9bf0cdf694d4267208da03b25ab4...

Powered by Google App Engine
This is Rietveld 408576698