diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-08-28 15:28:34 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-08-28 13:54:51 +0000 |
commit | 2a19c63448c84c1805fb1a585c3651318bb86ca7 (patch) | |
tree | eb17888e8531aa6ee5e85721bd553b832a7e5156 /chromium/components/feature_engagement | |
parent | b014812705fc80bff0a5c120dfcef88f349816dc (diff) | |
download | qtwebengine-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')
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. |