summaryrefslogtreecommitdiff
path: root/chromium/components/feature_engagement
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-08-28 15:28:34 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-08-28 13:54:51 +0000
commit2a19c63448c84c1805fb1a585c3651318bb86ca7 (patch)
treeeb17888e8531aa6ee5e85721bd553b832a7e5156 /chromium/components/feature_engagement
parentb014812705fc80bff0a5c120dfcef88f349816dc (diff)
downloadqtwebengine-chromium-2a19c63448c84c1805fb1a585c3651318bb86ca7.tar.gz
BASELINE: Update Chromium to 69.0.3497.70
Change-Id: I2b7b56e4e7a8b26656930def0d4575dc32b900a0 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/components/feature_engagement')
-rw-r--r--chromium/components/feature_engagement/README.md21
-rw-r--r--chromium/components/feature_engagement/internal/android/tracker_impl_android.cc9
-rw-r--r--chromium/components/feature_engagement/internal/chrome_variations_configuration_unittest.cc2
-rw-r--r--chromium/components/feature_engagement/internal/feature_config_condition_validator.cc4
-rw-r--r--chromium/components/feature_engagement/internal/persistent_event_store_unittest.cc2
-rw-r--r--chromium/components/feature_engagement/internal/tracker_impl.cc6
-rw-r--r--chromium/components/feature_engagement/internal/tracker_impl_unittest.cc47
-rw-r--r--chromium/components/feature_engagement/public/event_constants.cc1
-rw-r--r--chromium/components/feature_engagement/public/event_constants.h3
-rw-r--r--chromium/components/feature_engagement/public/feature_constants.cc6
-rw-r--r--chromium/components/feature_engagement/public/feature_constants.h2
-rw-r--r--chromium/components/feature_engagement/public/feature_list.cc2
-rw-r--r--chromium/components/feature_engagement/public/feature_list.h5
-rw-r--r--chromium/components/feature_engagement/public/tracker.h2
14 files changed, 64 insertions, 48 deletions
diff --git a/chromium/components/feature_engagement/README.md b/chromium/components/feature_engagement/README.md
index 5e8d5cd0f36..ea4a571140b 100644
--- a/chromium/components/feature_engagement/README.md
+++ b/chromium/components/feature_engagement/README.md
@@ -241,17 +241,18 @@ configuration:
1. Add feature to the histogram suffix `IPHFeatures` in:
`//tools/metrics/histograms/histograms.xml`.
* The suffix must match the `base::Feature` `name` member of your feature.
-1. Add feature to the actions file (actions do not support automatic suffixes):
- `//tools/metrics/actions/actions.xml`.
+1. Add feature to the actions file at: `//tools/metrics/actions/actions.xml`.
* The suffix must match the `base::Feature` `name` member.
- * Use an old example to ensure you configure and describe it correctly.
- * For `IPH_MyFunFeature` it would look like this:
- * `<action name="InProductHelp.NotifyEvent.IPH_MyFunFeature">`
- * `<action name="InProductHelp.NotifyUsedEvent.IPH_MyFunFeature">`
- * `<action name="InProductHelp.ShouldTriggerHelpUI.IPH_MyFunFeature">`
- * `<action name="InProductHelp.ShouldTriggerHelpUIResult.NotTriggered.IPH_MyFunFeature">`
- * `<action name="InProductHelp.ShouldTriggerHelpUIResult.Triggered.IPH_MyFunFeature">`
- * `<action name="InProductHelp.ShouldTriggerHelpUIResult.WouldHaveTriggered.IPH_MyFunFeature">`
+ * Find the `<action-suffix>` entry at the end of the file, where the
+ following `<affected-action>`s are listed:
+ * `InProductHelp.NotifyEvent.IPH`
+ * `InProductHelp.NotifyUsedEvent.IPH`
+ * `InProductHelp.ShouldTriggerHelpUI.IPH`
+ * `InProductHelp.ShouldTriggerHelpUIResult.NotTriggered.IPH`
+ * `InProductHelp.ShouldTriggerHelpUIResult.Triggered.IPH`
+ * `InProductHelp.ShouldTriggerHelpUIResult.WouldHaveTriggered.IPH`
+ * Add an alphebetically sorted entry to the list of `<suffix>`es like:
+ `<suffix name="MyFunFeature" label="For MyFunFeature feature."/>`
### Adding a local field trial testing configuration
diff --git a/chromium/components/feature_engagement/internal/android/tracker_impl_android.cc b/chromium/components/feature_engagement/internal/android/tracker_impl_android.cc
index a0c6dcbba97..b6e39d7887f 100644
--- a/chromium/components/feature_engagement/internal/android/tracker_impl_android.cc
+++ b/chromium/components/feature_engagement/internal/android/tracker_impl_android.cc
@@ -159,12 +159,9 @@ void TrackerImplAndroid::AddOnInitializedCallback(
JNIEnv* env,
const base::android::JavaRef<jobject>& jobj,
const base::android::JavaParamRef<jobject>& j_callback_obj) {
- // Disambiguate RunCallbackAndroid to get the reference to the bool version.
- void (*runBoolCallback)(const base::android::JavaRef<jobject>&, bool) =
- &base::android::RunCallbackAndroid;
- tracker_impl_->AddOnInitializedCallback(
- base::Bind(runBoolCallback,
- base::android::ScopedJavaGlobalRef<jobject>(j_callback_obj)));
+ tracker_impl_->AddOnInitializedCallback(base::BindOnce(
+ &base::android::RunBooleanCallbackAndroid,
+ base::android::ScopedJavaGlobalRef<jobject>(j_callback_obj)));
}
DisplayLockHandleAndroid::DisplayLockHandleAndroid(
diff --git a/chromium/components/feature_engagement/internal/chrome_variations_configuration_unittest.cc b/chromium/components/feature_engagement/internal/chrome_variations_configuration_unittest.cc
index 6b7f43303de..222cf1f791d 100644
--- a/chromium/components/feature_engagement/internal/chrome_variations_configuration_unittest.cc
+++ b/chromium/components/feature_engagement/internal/chrome_variations_configuration_unittest.cc
@@ -12,7 +12,7 @@
#include "base/metrics/field_trial.h"
#include "base/metrics/field_trial_param_associator.h"
#include "base/metrics/field_trial_params.h"
-#include "base/test/histogram_tester.h"
+#include "base/test/metrics/histogram_tester.h"
#include "base/test/scoped_feature_list.h"
#include "components/feature_engagement/internal/configuration.h"
#include "components/feature_engagement/internal/stats.h"
diff --git a/chromium/components/feature_engagement/internal/feature_config_condition_validator.cc b/chromium/components/feature_engagement/internal/feature_config_condition_validator.cc
index cb5b7eebe21..32d1f5f5e79 100644
--- a/chromium/components/feature_engagement/internal/feature_config_condition_validator.cc
+++ b/chromium/components/feature_engagement/internal/feature_config_condition_validator.cc
@@ -9,6 +9,7 @@
#include <vector>
#include "base/feature_list.h"
+#include "base/stl_util.h"
#include "components/feature_engagement/internal/availability_model.h"
#include "components/feature_engagement/internal/configuration.h"
#include "components/feature_engagement/internal/display_lock_controller.h"
@@ -79,8 +80,7 @@ void FeatureConfigConditionValidator::NotifyIsShowing(
DCHECK(config.session_rate_impact.affected_features.has_value());
for (const std::string& feature_name :
config.session_rate_impact.affected_features.value()) {
- DCHECK(std::find(all_feature_names.begin(), all_feature_names.end(),
- feature_name) != all_feature_names.end());
+ DCHECK(base::ContainsValue(all_feature_names, feature_name));
++times_shown_for_feature_[feature_name];
}
break;
diff --git a/chromium/components/feature_engagement/internal/persistent_event_store_unittest.cc b/chromium/components/feature_engagement/internal/persistent_event_store_unittest.cc
index c2b11acc861..149cb76c1e0 100644
--- a/chromium/components/feature_engagement/internal/persistent_event_store_unittest.cc
+++ b/chromium/components/feature_engagement/internal/persistent_event_store_unittest.cc
@@ -8,7 +8,7 @@
#include "base/files/file_path.h"
#include "base/optional.h"
-#include "base/test/histogram_tester.h"
+#include "base/test/metrics/histogram_tester.h"
#include "components/feature_engagement/internal/proto/event.pb.h"
#include "components/feature_engagement/internal/stats.h"
#include "components/feature_engagement/internal/test/event_util.h"
diff --git a/chromium/components/feature_engagement/internal/tracker_impl.cc b/chromium/components/feature_engagement/internal/tracker_impl.cc
index 971c7b5cbbb..457030ed350 100644
--- a/chromium/components/feature_engagement/internal/tracker_impl.cc
+++ b/chromium/components/feature_engagement/internal/tracker_impl.cc
@@ -248,11 +248,11 @@ bool TrackerImpl::IsInitialized() const {
void TrackerImpl::AddOnInitializedCallback(OnInitializedCallback callback) {
if (IsInitializationFinished()) {
base::ThreadTaskRunnerHandle::Get()->PostTask(
- FROM_HERE, base::Bind(callback, IsInitialized()));
+ FROM_HERE, base::BindOnce(std::move(callback), IsInitialized()));
return;
}
- on_initialized_callbacks_.push_back(callback);
+ on_initialized_callbacks_.push_back(std::move(callback));
}
void TrackerImpl::OnEventModelInitializationFinished(bool success) {
@@ -286,7 +286,7 @@ void TrackerImpl::MaybePostInitializedCallbacks() {
for (auto& callback : on_initialized_callbacks_) {
base::ThreadTaskRunnerHandle::Get()->PostTask(
- FROM_HERE, base::Bind(callback, IsInitialized()));
+ FROM_HERE, base::BindOnce(std::move(callback), IsInitialized()));
}
on_initialized_callbacks_.clear();
diff --git a/chromium/components/feature_engagement/internal/tracker_impl_unittest.cc b/chromium/components/feature_engagement/internal/tracker_impl_unittest.cc
index 5fb4c8bab23..45482486e02 100644
--- a/chromium/components/feature_engagement/internal/tracker_impl_unittest.cc
+++ b/chromium/components/feature_engagement/internal/tracker_impl_unittest.cc
@@ -4,6 +4,7 @@
#include "components/feature_engagement/internal/tracker_impl.h"
+#include <map>
#include <memory>
#include <utility>
@@ -14,8 +15,8 @@
#include "base/run_loop.h"
#include "base/sequenced_task_runner.h"
#include "base/single_thread_task_runner.h"
-#include "base/test/histogram_tester.h"
-#include "base/test/user_action_tester.h"
+#include "base/test/metrics/histogram_tester.h"
+#include "base/test/metrics/user_action_tester.h"
#include "base/threading/thread_task_runner_handle.h"
#include "components/feature_engagement/internal/availability_model_impl.h"
#include "components/feature_engagement/internal/display_lock_controller.h"
@@ -458,7 +459,7 @@ TEST_F(TrackerImplTest, TestInitialization) {
EXPECT_FALSE(tracker_->IsInitialized());
StoringInitializedCallback callback;
- tracker_->AddOnInitializedCallback(base::Bind(
+ tracker_->AddOnInitializedCallback(base::BindOnce(
&StoringInitializedCallback::OnInitialized, base::Unretained(&callback)));
EXPECT_FALSE(callback.invoked());
@@ -477,11 +478,11 @@ TEST_F(TrackerImplTest, TestInitializationMultipleCallbacks) {
StoringInitializedCallback callback2;
tracker_->AddOnInitializedCallback(
- base::Bind(&StoringInitializedCallback::OnInitialized,
- base::Unretained(&callback1)));
+ base::BindOnce(&StoringInitializedCallback::OnInitialized,
+ base::Unretained(&callback1)));
tracker_->AddOnInitializedCallback(
- base::Bind(&StoringInitializedCallback::OnInitialized,
- base::Unretained(&callback2)));
+ base::BindOnce(&StoringInitializedCallback::OnInitialized,
+ base::Unretained(&callback2)));
EXPECT_FALSE(callback1.invoked());
EXPECT_FALSE(callback2.invoked());
@@ -504,7 +505,7 @@ TEST_F(TrackerImplTest, TestAddingCallbackAfterInitFinished) {
EXPECT_TRUE(tracker_->IsInitialized());
StoringInitializedCallback callback;
- tracker_->AddOnInitializedCallback(base::Bind(
+ tracker_->AddOnInitializedCallback(base::BindOnce(
&StoringInitializedCallback::OnInitialized, base::Unretained(&callback)));
EXPECT_FALSE(callback.invoked());
@@ -523,8 +524,8 @@ TEST_F(TrackerImplTest, TestAddingCallbackBeforeAndAfterInitFinished) {
StoringInitializedCallback callback_before;
tracker_->AddOnInitializedCallback(
- base::Bind(&StoringInitializedCallback::OnInitialized,
- base::Unretained(&callback_before)));
+ base::BindOnce(&StoringInitializedCallback::OnInitialized,
+ base::Unretained(&callback_before)));
EXPECT_FALSE(callback_before.invoked());
base::RunLoop().RunUntilIdle();
@@ -533,8 +534,8 @@ TEST_F(TrackerImplTest, TestAddingCallbackBeforeAndAfterInitFinished) {
StoringInitializedCallback callback_after;
tracker_->AddOnInitializedCallback(
- base::Bind(&StoringInitializedCallback::OnInitialized,
- base::Unretained(&callback_after)));
+ base::BindOnce(&StoringInitializedCallback::OnInitialized,
+ base::Unretained(&callback_after)));
EXPECT_FALSE(callback_after.invoked());
base::RunLoop().RunUntilIdle();
@@ -546,7 +547,7 @@ TEST_F(FailingStoreInitTrackerImplTest, TestFailingInitialization) {
EXPECT_FALSE(tracker_->IsInitialized());
StoringInitializedCallback callback;
- tracker_->AddOnInitializedCallback(base::Bind(
+ tracker_->AddOnInitializedCallback(base::BindOnce(
&StoringInitializedCallback::OnInitialized, base::Unretained(&callback)));
EXPECT_FALSE(callback.invoked());
@@ -565,11 +566,11 @@ TEST_F(FailingStoreInitTrackerImplTest,
StoringInitializedCallback callback1;
StoringInitializedCallback callback2;
tracker_->AddOnInitializedCallback(
- base::Bind(&StoringInitializedCallback::OnInitialized,
- base::Unretained(&callback1)));
+ base::BindOnce(&StoringInitializedCallback::OnInitialized,
+ base::Unretained(&callback1)));
tracker_->AddOnInitializedCallback(
- base::Bind(&StoringInitializedCallback::OnInitialized,
- base::Unretained(&callback2)));
+ base::BindOnce(&StoringInitializedCallback::OnInitialized,
+ base::Unretained(&callback2)));
EXPECT_FALSE(callback1.invoked());
EXPECT_FALSE(callback2.invoked());
@@ -587,7 +588,7 @@ TEST_F(FailingAvailabilityModelInitTrackerImplTest, AvailabilityModelNotReady) {
EXPECT_FALSE(tracker_->IsInitialized());
StoringInitializedCallback callback;
- tracker_->AddOnInitializedCallback(base::Bind(
+ tracker_->AddOnInitializedCallback(base::BindOnce(
&StoringInitializedCallback::OnInitialized, base::Unretained(&callback)));
EXPECT_FALSE(callback.invoked());
@@ -602,7 +603,7 @@ TEST_F(FailingAvailabilityModelInitTrackerImplTest, AvailabilityModelNotReady) {
TEST_F(TrackerImplTest, TestTriggering) {
// Ensure all initialization is finished.
StoringInitializedCallback callback;
- tracker_->AddOnInitializedCallback(base::Bind(
+ tracker_->AddOnInitializedCallback(base::BindOnce(
&StoringInitializedCallback::OnInitialized, base::Unretained(&callback)));
base::RunLoop().RunUntilIdle();
base::UserActionTester user_action_tester;
@@ -671,7 +672,7 @@ TEST_F(TrackerImplTest, TestTriggering) {
TEST_F(TrackerImplTest, TestTrackingOnlyTriggering) {
// Ensure all initialization is finished.
StoringInitializedCallback callback;
- tracker_->AddOnInitializedCallback(base::Bind(
+ tracker_->AddOnInitializedCallback(base::BindOnce(
&StoringInitializedCallback::OnInitialized, base::Unretained(&callback)));
base::RunLoop().RunUntilIdle();
base::UserActionTester user_action_tester;
@@ -720,7 +721,7 @@ TEST_F(TrackerImplTest, TestTrackingOnlyTriggering) {
TEST_F(TrackerImplTest, TestWouldTriggerInspection) {
// Ensure all initialization is finished.
StoringInitializedCallback callback;
- tracker_->AddOnInitializedCallback(base::Bind(
+ tracker_->AddOnInitializedCallback(base::BindOnce(
&StoringInitializedCallback::OnInitialized, base::Unretained(&callback)));
base::RunLoop().RunUntilIdle();
base::UserActionTester user_action_tester;
@@ -782,7 +783,7 @@ TEST_F(TrackerImplTest, TestTriggerStateInspection) {
// Ensure all initialization is finished.
StoringInitializedCallback callback;
- tracker_->AddOnInitializedCallback(base::Bind(
+ tracker_->AddOnInitializedCallback(base::BindOnce(
&StoringInitializedCallback::OnInitialized, base::Unretained(&callback)));
base::RunLoop().RunUntilIdle();
base::UserActionTester user_action_tester;
@@ -823,7 +824,7 @@ TEST_F(TrackerImplTest, TestTriggerStateInspection) {
TEST_F(TrackerImplTest, TestNotifyEvent) {
StoringInitializedCallback callback;
- tracker_->AddOnInitializedCallback(base::Bind(
+ tracker_->AddOnInitializedCallback(base::BindOnce(
&StoringInitializedCallback::OnInitialized, base::Unretained(&callback)));
base::RunLoop().RunUntilIdle();
base::UserActionTester user_action_tester;
diff --git a/chromium/components/feature_engagement/public/event_constants.cc b/chromium/components/feature_engagement/public/event_constants.cc
index b0e351a465f..3700e129e9c 100644
--- a/chromium/components/feature_engagement/public/event_constants.cc
+++ b/chromium/components/feature_engagement/public/event_constants.cc
@@ -33,6 +33,7 @@ const char kChromeOpened[] = "chrome_opened";
const char kIncognitoTabOpened[] = "incognito_tab_opened";
const char kClearedBrowsingData[] = "cleared_browsing_data";
const char kViewedReadingList[] = "viewed_reading_list";
+const char kBottomToolbarOpened[] = "bottom_toolbar_opened";
#endif // defined(OS_IOS)
} // namespace events
diff --git a/chromium/components/feature_engagement/public/event_constants.h b/chromium/components/feature_engagement/public/event_constants.h
index 1b95ad1b7ab..d45d76a4fa6 100644
--- a/chromium/components/feature_engagement/public/event_constants.h
+++ b/chromium/components/feature_engagement/public/event_constants.h
@@ -64,6 +64,9 @@ extern const char kClearedBrowsingData[];
// The user has viewed their reading list.
extern const char kViewedReadingList[];
+
+// The user has viewed the the BottomToolbar tip.
+extern const char kBottomToolbarOpened[];
#endif // defined(OS_IOS)
} // namespace events
diff --git a/chromium/components/feature_engagement/public/feature_constants.cc b/chromium/components/feature_engagement/public/feature_constants.cc
index 1ecbaf9b26b..d04bdcf1118 100644
--- a/chromium/components/feature_engagement/public/feature_constants.cc
+++ b/chromium/components/feature_engagement/public/feature_constants.cc
@@ -63,12 +63,16 @@ const base::Feature kIPHNewTabFeature{"IPH_NewTab",
#endif // BUILDFLAG(ENABLE_DESKTOP_IPH)
#if defined(OS_IOS)
+const base::Feature kIPHBottomToolbarTipFeature{
+ "IPH_BottomToolbarTip", base::FEATURE_DISABLED_BY_DEFAULT};
+const base::Feature kIPHLongPressToolbarTipFeature{
+ "IPH_LongPressToolbarTip", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kIPHNewTabTipFeature{"IPH_NewTabTip",
base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kIPHNewIncognitoTabTipFeature{
"IPH_NewIncognitoTabTip", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kIPHBadgedReadingListFeature{
- "IPH_BadgedReadingList", base::FEATURE_DISABLED_BY_DEFAULT};
+ "IPH_BadgedReadingList", base::FEATURE_ENABLED_BY_DEFAULT};
#endif // defined(OS_IOS)
} // namespace feature_engagement
diff --git a/chromium/components/feature_engagement/public/feature_constants.h b/chromium/components/feature_engagement/public/feature_constants.h
index fb9333c383a..cd8c7664a8b 100644
--- a/chromium/components/feature_engagement/public/feature_constants.h
+++ b/chromium/components/feature_engagement/public/feature_constants.h
@@ -48,6 +48,8 @@ extern const base::Feature kIPHNewTabFeature;
#endif // BUILDFLAG(ENABLE_DESKTOP_IPH)
#if defined(OS_IOS)
+extern const base::Feature kIPHBottomToolbarTipFeature;
+extern const base::Feature kIPHLongPressToolbarTipFeature;
extern const base::Feature kIPHNewTabTipFeature;
extern const base::Feature kIPHNewIncognitoTabTipFeature;
extern const base::Feature kIPHBadgedReadingListFeature;
diff --git a/chromium/components/feature_engagement/public/feature_list.cc b/chromium/components/feature_engagement/public/feature_list.cc
index 3b602b105cf..3b59190e477 100644
--- a/chromium/components/feature_engagement/public/feature_list.cc
+++ b/chromium/components/feature_engagement/public/feature_list.cc
@@ -41,6 +41,8 @@ const base::Feature* const kAllFeatures[] = {
&kIPHNewTabFeature,
#endif // BUILDFLAG(ENABLE_DESKTOP_IN_PRODUCT_HELP)
#if defined(OS_IOS)
+ &kIPHBottomToolbarTipFeature,
+ &kIPHLongPressToolbarTipFeature,
&kIPHNewTabTipFeature,
&kIPHNewIncognitoTabTipFeature,
&kIPHBadgedReadingListFeature,
diff --git a/chromium/components/feature_engagement/public/feature_list.h b/chromium/components/feature_engagement/public/feature_list.h
index 65174b4b588..69e73a29557 100644
--- a/chromium/components/feature_engagement/public/feature_list.h
+++ b/chromium/components/feature_engagement/public/feature_list.h
@@ -80,6 +80,9 @@ DEFINE_VARIATION_PARAM(kIPHIncognitoWindowFeature, "IPH_IncognitoWindow");
DEFINE_VARIATION_PARAM(kIPHNewTabFeature, "IPH_NewTab");
#endif // BUILDFLAG(ENABLE_DESKTOP_IN_PRODUCT_HELP)
#if defined(OS_IOS)
+DEFINE_VARIATION_PARAM(kIPHBottomToolbarTipFeature, "IPH_BottomToolbarTip");
+DEFINE_VARIATION_PARAM(kIPHLongPressToolbarTipFeature,
+ "IPH_LongPressToolbarTip");
DEFINE_VARIATION_PARAM(kIPHNewTabTipFeature, "IPH_NewTabTip");
DEFINE_VARIATION_PARAM(kIPHNewIncognitoTabTipFeature, "IPH_NewIncognitoTabTip");
DEFINE_VARIATION_PARAM(kIPHBadgedReadingListFeature, "IPH_BadgedReadingList");
@@ -116,6 +119,8 @@ constexpr flags_ui::FeatureEntry::FeatureVariation
VARIATION_ENTRY(kIPHIncognitoWindowFeature),
VARIATION_ENTRY(kIPHNewTabFeature),
#elif defined(OS_IOS)
+ VARIATION_ENTRY(kIPHBottomToolbarTipFeature),
+ VARIATION_ENTRY(kIPHLongPressToolbarTipFeature),
VARIATION_ENTRY(kIPHNewTabTipFeature),
VARIATION_ENTRY(kIPHNewIncognitoTabTipFeature),
VARIATION_ENTRY(kIPHBadgedReadingListFeature),
diff --git a/chromium/components/feature_engagement/public/tracker.h b/chromium/components/feature_engagement/public/tracker.h
index 99039d3a665..4147bafc85f 100644
--- a/chromium/components/feature_engagement/public/tracker.h
+++ b/chromium/components/feature_engagement/public/tracker.h
@@ -65,7 +65,7 @@ class Tracker : public KeyedService {
// Invoked when the tracker has been initialized. The |success| parameter
// indicates that the initialization was a success and the tracker is ready to
// receive calls.
- using OnInitializedCallback = base::Callback<void(bool success)>;
+ using OnInitializedCallback = base::OnceCallback<void(bool success)>;
// The |storage_dir| is the path to where all local storage will be.
// The |bakground_task_runner| will be used for all disk reads and writes.