summaryrefslogtreecommitdiff
path: root/chromium/components/feature_engagement
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-29 10:46:47 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-11-02 12:02:10 +0000
commit99677208ff3b216fdfec551fbe548da5520cd6fb (patch)
tree476a4865c10320249360e859d8fdd3e01833b03a /chromium/components/feature_engagement
parentc30a6232df03e1efbd9f3b226777b07e087a1122 (diff)
downloadqtwebengine-chromium-99677208ff3b216fdfec551fbe548da5520cd6fb.tar.gz
BASELINE: Update Chromium to 86.0.4240.124
Change-Id: Ide0ff151e94cd665ae6521a446995d34a9d1d644 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/components/feature_engagement')
-rw-r--r--chromium/components/feature_engagement/BUILD.gn11
-rw-r--r--chromium/components/feature_engagement/features.gni7
-rw-r--r--chromium/components/feature_engagement/internal/BUILD.gn6
-rw-r--r--chromium/components/feature_engagement/internal/event_model.h4
-rw-r--r--chromium/components/feature_engagement/internal/event_model_impl.cc20
-rw-r--r--chromium/components/feature_engagement/internal/event_model_impl.h4
-rw-r--r--chromium/components/feature_engagement/internal/event_model_impl_unittest.cc60
-rw-r--r--chromium/components/feature_engagement/internal/event_store.h5
-rw-r--r--chromium/components/feature_engagement/internal/feature_config_condition_validator_unittest.cc2
-rw-r--r--chromium/components/feature_engagement/internal/in_memory_event_store.cc9
-rw-r--r--chromium/components/feature_engagement/internal/in_memory_event_store.h4
-rw-r--r--chromium/components/feature_engagement/internal/init_aware_event_model.cc13
-rw-r--r--chromium/components/feature_engagement/internal/init_aware_event_model.h4
-rw-r--r--chromium/components/feature_engagement/internal/init_aware_event_model_unittest.cc28
-rw-r--r--chromium/components/feature_engagement/internal/never_condition_validator_unittest.cc2
-rw-r--r--chromium/components/feature_engagement/internal/once_condition_validator_unittest.cc2
-rw-r--r--chromium/components/feature_engagement/internal/persistent_event_store.cc16
-rw-r--r--chromium/components/feature_engagement/internal/persistent_event_store.h6
-rw-r--r--chromium/components/feature_engagement/internal/persistent_event_store_unittest.cc14
-rw-r--r--chromium/components/feature_engagement/internal/test/BUILD.gn4
-rw-r--r--chromium/components/feature_engagement/internal/tracker_impl_unittest.cc4
-rw-r--r--chromium/components/feature_engagement/public/BUILD.gn7
-rw-r--r--chromium/components/feature_engagement/public/android/java/src/org/chromium/components/feature_engagement/EventConstants.java6
-rw-r--r--chromium/components/feature_engagement/public/android/java/src/org/chromium/components/feature_engagement/FeatureConstants.java7
-rw-r--r--chromium/components/feature_engagement/public/event_constants.cc24
-rw-r--r--chromium/components/feature_engagement/public/event_constants.h44
-rw-r--r--chromium/components/feature_engagement/public/feature_configurations.cc19
-rw-r--r--chromium/components/feature_engagement/public/feature_constants.cc19
-rw-r--r--chromium/components/feature_engagement/public/feature_constants.h13
-rw-r--r--chromium/components/feature_engagement/public/feature_list.cc12
-rw-r--r--chromium/components/feature_engagement/public/feature_list.h26
31 files changed, 181 insertions, 221 deletions
diff --git a/chromium/components/feature_engagement/BUILD.gn b/chromium/components/feature_engagement/BUILD.gn
index 991252ed2ab..0e37ea50e6a 100644
--- a/chromium/components/feature_engagement/BUILD.gn
+++ b/chromium/components/feature_engagement/BUILD.gn
@@ -3,23 +3,14 @@
# found in the LICENSE file.
import("//build/buildflag_header.gni")
-import("//components/feature_engagement/features.gni")
if (is_android) {
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
}
-buildflag_header("buildflags") {
- header = "buildflags.h"
- flags = [ "ENABLE_LEGACY_DESKTOP_IN_PRODUCT_HELP=$enable_legacy_desktop_in_product_help" ]
-}
-
group("feature_engagement") {
- public_deps = [
- ":buildflags",
- "//components/feature_engagement/public",
- ]
+ public_deps = [ "//components/feature_engagement/public" ]
deps = [ "//components/feature_engagement/internal" ]
}
diff --git a/chromium/components/feature_engagement/features.gni b/chromium/components/feature_engagement/features.gni
deleted file mode 100644
index 67b93f7d6f7..00000000000
--- a/chromium/components/feature_engagement/features.gni
+++ /dev/null
@@ -1,7 +0,0 @@
-# Copyright 2017 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-declare_args() {
- enable_legacy_desktop_in_product_help = false
-}
diff --git a/chromium/components/feature_engagement/internal/BUILD.gn b/chromium/components/feature_engagement/internal/BUILD.gn
index 0dc1e54a558..b1320da262b 100644
--- a/chromium/components/feature_engagement/internal/BUILD.gn
+++ b/chromium/components/feature_engagement/internal/BUILD.gn
@@ -2,14 +2,12 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import("//build/config/jumbo.gni")
-
if (is_android) {
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
}
-jumbo_static_library("internal") {
+static_library("internal") {
visibility = [
":*",
"//components/feature_engagement",
@@ -86,7 +84,7 @@ jumbo_static_library("internal") {
}
}
-jumbo_source_set("unit_tests") {
+source_set("unit_tests") {
testonly = true
visibility = [ "//components/feature_engagement:unit_tests" ]
diff --git a/chromium/components/feature_engagement/internal/event_model.h b/chromium/components/feature_engagement/internal/event_model.h
index 9be7dfe2728..7895c9b0113 100644
--- a/chromium/components/feature_engagement/internal/event_model.h
+++ b/chromium/components/feature_engagement/internal/event_model.h
@@ -19,13 +19,13 @@ class EventModel {
public:
// Callback for when model initialization has finished. The |success|
// argument denotes whether the model was successfully initialized.
- using OnModelInitializationFinished = base::Callback<void(bool success)>;
+ using OnModelInitializationFinished = base::OnceCallback<void(bool success)>;
virtual ~EventModel() = default;
// Initialize the model, including all underlying sub systems. When all
// required operations have been finished, a callback is posted.
- virtual void Initialize(const OnModelInitializationFinished& callback,
+ virtual void Initialize(OnModelInitializationFinished callback,
uint32_t current_day) = 0;
// Returns whether the model is ready, i.e. whether it has been successfully
diff --git a/chromium/components/feature_engagement/internal/event_model_impl.cc b/chromium/components/feature_engagement/internal/event_model_impl.cc
index 0a8e5859958..8ca761b2aa3 100644
--- a/chromium/components/feature_engagement/internal/event_model_impl.cc
+++ b/chromium/components/feature_engagement/internal/event_model_impl.cc
@@ -30,10 +30,11 @@ EventModelImpl::EventModelImpl(
EventModelImpl::~EventModelImpl() = default;
-void EventModelImpl::Initialize(const OnModelInitializationFinished& callback,
+void EventModelImpl::Initialize(OnModelInitializationFinished callback,
uint32_t current_day) {
- store_->Load(base::Bind(&EventModelImpl::OnStoreLoaded,
- weak_factory_.GetWeakPtr(), callback, current_day));
+ store_->Load(base::BindOnce(&EventModelImpl::OnStoreLoaded,
+ weak_factory_.GetWeakPtr(), std::move(callback),
+ current_day));
}
bool EventModelImpl::IsReady() const {
@@ -111,13 +112,12 @@ void EventModelImpl::IncrementEvent(const std::string& event_name,
store_->WriteEvent(event);
}
-void EventModelImpl::OnStoreLoaded(
- const OnModelInitializationFinished& callback,
- uint32_t current_day,
- bool success,
- std::unique_ptr<std::vector<Event>> events) {
+void EventModelImpl::OnStoreLoaded(OnModelInitializationFinished callback,
+ uint32_t current_day,
+ bool success,
+ std::unique_ptr<std::vector<Event>> events) {
if (!success) {
- callback.Run(false);
+ std::move(callback).Run(false);
return;
}
@@ -151,7 +151,7 @@ void EventModelImpl::OnStoreLoaded(
}
ready_ = true;
- callback.Run(true);
+ std::move(callback).Run(true);
}
Event& EventModelImpl::GetNonConstEvent(const std::string& event_name) {
diff --git a/chromium/components/feature_engagement/internal/event_model_impl.h b/chromium/components/feature_engagement/internal/event_model_impl.h
index 4e058c8b5c6..447cfa3e772 100644
--- a/chromium/components/feature_engagement/internal/event_model_impl.h
+++ b/chromium/components/feature_engagement/internal/event_model_impl.h
@@ -27,7 +27,7 @@ class EventModelImpl : public EventModel {
~EventModelImpl() override;
// EventModel implementation.
- void Initialize(const OnModelInitializationFinished& callback,
+ void Initialize(OnModelInitializationFinished callback,
uint32_t current_day) override;
bool IsReady() const override;
const Event* GetEvent(const std::string& event_name) const override;
@@ -39,7 +39,7 @@ class EventModelImpl : public EventModel {
private:
// Callback for loading the underlying store.
- void OnStoreLoaded(const OnModelInitializationFinished& callback,
+ void OnStoreLoaded(OnModelInitializationFinished callback,
uint32_t current_day,
bool success,
std::unique_ptr<std::vector<Event>> events);
diff --git a/chromium/components/feature_engagement/internal/event_model_impl_unittest.cc b/chromium/components/feature_engagement/internal/event_model_impl_unittest.cc
index fd5d543050f..e061926a4c1 100644
--- a/chromium/components/feature_engagement/internal/event_model_impl_unittest.cc
+++ b/chromium/components/feature_engagement/internal/event_model_impl_unittest.cc
@@ -32,8 +32,8 @@ class TestInMemoryEventStore : public InMemoryEventStore {
store_operation_count_(0),
load_should_succeed_(load_should_succeed) {}
- void Load(const OnLoadedCallback& callback) override {
- HandleLoadResult(callback, load_should_succeed_);
+ void Load(OnLoadedCallback callback) override {
+ HandleLoadResult(std::move(callback), load_should_succeed_);
}
void WriteEvent(const Event& event) override {
@@ -183,8 +183,8 @@ class LoadFailingEventModelImplTest : public EventModelImplTest {
TEST_F(EventModelImplTest, InitializeShouldBeReadyImmediatelyAfterCallback) {
model_->Initialize(
- base::Bind(&EventModelImplTest::OnModelInitializationFinished,
- base::Unretained(this)),
+ base::BindOnce(&EventModelImplTest::OnModelInitializationFinished,
+ base::Unretained(this)),
1000u);
// Only run pending tasks on the queue. Do not run any subsequently queued
@@ -197,8 +197,8 @@ TEST_F(EventModelImplTest, InitializeShouldBeReadyImmediatelyAfterCallback) {
TEST_F(EventModelImplTest, InitializeShouldLoadEntries) {
model_->Initialize(
- base::Bind(&EventModelImplTest::OnModelInitializationFinished,
- base::Unretained(this)),
+ base::BindOnce(&EventModelImplTest::OnModelInitializationFinished,
+ base::Unretained(this)),
1000u);
task_runner_->RunUntilIdle();
EXPECT_TRUE(model_->IsReady());
@@ -238,8 +238,8 @@ TEST_F(EventModelImplTest, InitializeShouldOnlyLoadEntriesThatShouldBeKept) {
storage_validator_->SetMaxKeepAge("qux", 10u);
model_->Initialize(
- base::Bind(&EventModelImplTest::OnModelInitializationFinished,
- base::Unretained(this)),
+ base::BindOnce(&EventModelImplTest::OnModelInitializationFinished,
+ base::Unretained(this)),
5u);
task_runner_->RunUntilIdle();
EXPECT_TRUE(model_->IsReady());
@@ -274,8 +274,8 @@ TEST_F(EventModelImplTest, InitializeShouldOnlyLoadEntriesThatShouldBeKept) {
TEST_F(EventModelImplTest, RetrievingNewEventsShouldYieldNullptr) {
model_->Initialize(
- base::Bind(&EventModelImplTest::OnModelInitializationFinished,
- base::Unretained(this)),
+ base::BindOnce(&EventModelImplTest::OnModelInitializationFinished,
+ base::Unretained(this)),
1000u);
task_runner_->RunUntilIdle();
EXPECT_TRUE(model_->IsReady());
@@ -287,8 +287,8 @@ TEST_F(EventModelImplTest, RetrievingNewEventsShouldYieldNullptr) {
TEST_F(EventModelImplTest, IncrementingNonExistingEvent) {
model_->Initialize(
- base::Bind(&EventModelImplTest::OnModelInitializationFinished,
- base::Unretained(this)),
+ base::BindOnce(&EventModelImplTest::OnModelInitializationFinished,
+ base::Unretained(this)),
1000u);
task_runner_->RunUntilIdle();
EXPECT_TRUE(model_->IsReady());
@@ -315,8 +315,8 @@ TEST_F(EventModelImplTest, IncrementingNonExistingEvent) {
TEST_F(EventModelImplTest, IncrementingNonExistingEventMultipleDays) {
model_->Initialize(
- base::Bind(&EventModelImplTest::OnModelInitializationFinished,
- base::Unretained(this)),
+ base::BindOnce(&EventModelImplTest::OnModelInitializationFinished,
+ base::Unretained(this)),
1000u);
task_runner_->RunUntilIdle();
EXPECT_TRUE(model_->IsReady());
@@ -336,8 +336,8 @@ TEST_F(EventModelImplTest, IncrementingNonExistingEventMultipleDays) {
TEST_F(EventModelImplTest, IncrementingNonExistingEventWithoutStoring) {
model_->Initialize(
- base::Bind(&EventModelImplTest::OnModelInitializationFinished,
- base::Unretained(this)),
+ base::BindOnce(&EventModelImplTest::OnModelInitializationFinished,
+ base::Unretained(this)),
1000u);
task_runner_->RunUntilIdle();
EXPECT_TRUE(model_->IsReady());
@@ -353,8 +353,8 @@ TEST_F(EventModelImplTest, IncrementingNonExistingEventWithoutStoring) {
TEST_F(EventModelImplTest, IncrementingExistingEventWithoutStoring) {
model_->Initialize(
- base::Bind(&EventModelImplTest::OnModelInitializationFinished,
- base::Unretained(this)),
+ base::BindOnce(&EventModelImplTest::OnModelInitializationFinished,
+ base::Unretained(this)),
1000u);
task_runner_->RunUntilIdle();
EXPECT_TRUE(model_->IsReady());
@@ -376,8 +376,8 @@ TEST_F(EventModelImplTest, IncrementingExistingEventWithoutStoring) {
TEST_F(EventModelImplTest, IncrementingSingleDayExistingEvent) {
model_->Initialize(
- base::Bind(&EventModelImplTest::OnModelInitializationFinished,
- base::Unretained(this)),
+ base::BindOnce(&EventModelImplTest::OnModelInitializationFinished,
+ base::Unretained(this)),
1000u);
task_runner_->RunUntilIdle();
EXPECT_TRUE(model_->IsReady());
@@ -398,8 +398,8 @@ TEST_F(EventModelImplTest, IncrementingSingleDayExistingEvent) {
TEST_F(EventModelImplTest, IncrementingSingleDayExistingEventTwice) {
model_->Initialize(
- base::Bind(&EventModelImplTest::OnModelInitializationFinished,
- base::Unretained(this)),
+ base::BindOnce(&EventModelImplTest::OnModelInitializationFinished,
+ base::Unretained(this)),
1000u);
task_runner_->RunUntilIdle();
EXPECT_TRUE(model_->IsReady());
@@ -416,8 +416,8 @@ TEST_F(EventModelImplTest, IncrementingSingleDayExistingEventTwice) {
TEST_F(EventModelImplTest, IncrementingExistingMultiDayEvent) {
model_->Initialize(
- base::Bind(&EventModelImplTest::OnModelInitializationFinished,
- base::Unretained(this)),
+ base::BindOnce(&EventModelImplTest::OnModelInitializationFinished,
+ base::Unretained(this)),
1000u);
task_runner_->RunUntilIdle();
EXPECT_TRUE(model_->IsReady());
@@ -434,8 +434,8 @@ TEST_F(EventModelImplTest, IncrementingExistingMultiDayEvent) {
TEST_F(EventModelImplTest, IncrementingExistingMultiDayEventNewDay) {
model_->Initialize(
- base::Bind(&EventModelImplTest::OnModelInitializationFinished,
- base::Unretained(this)),
+ base::BindOnce(&EventModelImplTest::OnModelInitializationFinished,
+ base::Unretained(this)),
1000u);
task_runner_->RunUntilIdle();
EXPECT_TRUE(model_->IsReady());
@@ -454,8 +454,8 @@ TEST_F(EventModelImplTest, IncrementingExistingMultiDayEventNewDay) {
TEST_F(EventModelImplTest, GetEventCount) {
model_->Initialize(
- base::Bind(&EventModelImplTest::OnModelInitializationFinished,
- base::Unretained(this)),
+ base::BindOnce(&EventModelImplTest::OnModelInitializationFinished,
+ base::Unretained(this)),
1000u);
task_runner_->RunUntilIdle();
EXPECT_TRUE(model_->IsReady());
@@ -486,8 +486,8 @@ TEST_F(EventModelImplTest, GetEventCount) {
TEST_F(LoadFailingEventModelImplTest, FailedInitializeInformsCaller) {
model_->Initialize(
- base::Bind(&EventModelImplTest::OnModelInitializationFinished,
- base::Unretained(this)),
+ base::BindOnce(&EventModelImplTest::OnModelInitializationFinished,
+ base::Unretained(this)),
1000u);
task_runner_->RunUntilIdle();
EXPECT_FALSE(model_->IsReady());
diff --git a/chromium/components/feature_engagement/internal/event_store.h b/chromium/components/feature_engagement/internal/event_store.h
index 194e1de894e..ce07a3cfc7a 100644
--- a/chromium/components/feature_engagement/internal/event_store.h
+++ b/chromium/components/feature_engagement/internal/event_store.h
@@ -17,14 +17,15 @@ namespace feature_engagement {
class EventStore {
public:
using OnLoadedCallback =
- base::Callback<void(bool success, std::unique_ptr<std::vector<Event>>)>;
+ base::OnceCallback<void(bool success,
+ std::unique_ptr<std::vector<Event>>)>;
virtual ~EventStore() = default;
// Loads the database from storage and asynchronously posts the result back
// on the caller's thread.
// Ownership of the loaded data is given to the caller.
- virtual void Load(const OnLoadedCallback& callback) = 0;
+ virtual void Load(OnLoadedCallback callback) = 0;
// Returns whether the database is ready, i.e. whether it has been fully
// loaded.
diff --git a/chromium/components/feature_engagement/internal/feature_config_condition_validator_unittest.cc b/chromium/components/feature_engagement/internal/feature_config_condition_validator_unittest.cc
index 399aaa6cbfb..e33822dc72a 100644
--- a/chromium/components/feature_engagement/internal/feature_config_condition_validator_unittest.cc
+++ b/chromium/components/feature_engagement/internal/feature_config_condition_validator_unittest.cc
@@ -61,7 +61,7 @@ class TestEventModel : public EventModel {
public:
TestEventModel() : ready_(true) {}
- void Initialize(const OnModelInitializationFinished& callback,
+ void Initialize(OnModelInitializationFinished callback,
uint32_t current_day) override {}
bool IsReady() const override { return ready_; }
diff --git a/chromium/components/feature_engagement/internal/in_memory_event_store.cc b/chromium/components/feature_engagement/internal/in_memory_event_store.cc
index 40d3461121c..2dfd822e96d 100644
--- a/chromium/components/feature_engagement/internal/in_memory_event_store.cc
+++ b/chromium/components/feature_engagement/internal/in_memory_event_store.cc
@@ -26,8 +26,8 @@ InMemoryEventStore::InMemoryEventStore()
InMemoryEventStore::~InMemoryEventStore() = default;
-void InMemoryEventStore::Load(const OnLoadedCallback& callback) {
- HandleLoadResult(callback, true);
+void InMemoryEventStore::Load(OnLoadedCallback callback) {
+ HandleLoadResult(std::move(callback), true);
}
bool InMemoryEventStore::IsReady() const {
@@ -42,10 +42,11 @@ void InMemoryEventStore::DeleteEvent(const std::string& event_name) {
// Intentionally ignore all deletes.
}
-void InMemoryEventStore::HandleLoadResult(const OnLoadedCallback& callback,
+void InMemoryEventStore::HandleLoadResult(OnLoadedCallback callback,
bool success) {
base::ThreadTaskRunnerHandle::Get()->PostTask(
- FROM_HERE, base::BindOnce(callback, success, std::move(events_)));
+ FROM_HERE,
+ base::BindOnce(std::move(callback), success, std::move(events_)));
ready_ = success;
}
diff --git a/chromium/components/feature_engagement/internal/in_memory_event_store.h b/chromium/components/feature_engagement/internal/in_memory_event_store.h
index cf6da5016fc..178b80d1b68 100644
--- a/chromium/components/feature_engagement/internal/in_memory_event_store.h
+++ b/chromium/components/feature_engagement/internal/in_memory_event_store.h
@@ -21,7 +21,7 @@ class InMemoryEventStore : public EventStore {
~InMemoryEventStore() override;
// EventStore implementation.
- void Load(const OnLoadedCallback& callback) override;
+ void Load(OnLoadedCallback callback) override;
bool IsReady() const override;
void WriteEvent(const Event& event) override;
void DeleteEvent(const std::string& event_name) override;
@@ -29,7 +29,7 @@ class InMemoryEventStore : public EventStore {
protected:
// Posts the result of loading and sets up the ready state.
// Protected and virtual for testing.
- virtual void HandleLoadResult(const OnLoadedCallback& callback, bool success);
+ virtual void HandleLoadResult(OnLoadedCallback callback, bool success);
private:
// All events that this in-memory store was constructed with. This will be
diff --git a/chromium/components/feature_engagement/internal/init_aware_event_model.cc b/chromium/components/feature_engagement/internal/init_aware_event_model.cc
index f3563865917..10951a68bc4 100644
--- a/chromium/components/feature_engagement/internal/init_aware_event_model.cc
+++ b/chromium/components/feature_engagement/internal/init_aware_event_model.cc
@@ -16,12 +16,11 @@ InitAwareEventModel::InitAwareEventModel(
InitAwareEventModel::~InitAwareEventModel() = default;
-void InitAwareEventModel::Initialize(
- const OnModelInitializationFinished& callback,
- uint32_t current_day) {
+void InitAwareEventModel::Initialize(OnModelInitializationFinished callback,
+ uint32_t current_day) {
event_model_->Initialize(
- base::Bind(&InitAwareEventModel::OnInitializeComplete,
- weak_ptr_factory_.GetWeakPtr(), callback),
+ base::BindOnce(&InitAwareEventModel::OnInitializeComplete,
+ weak_ptr_factory_.GetWeakPtr(), std::move(callback)),
current_day);
}
@@ -54,7 +53,7 @@ void InitAwareEventModel::IncrementEvent(const std::string& event_name,
}
void InitAwareEventModel::OnInitializeComplete(
- const OnModelInitializationFinished& callback,
+ OnModelInitializationFinished callback,
bool success) {
initialization_complete_ = true;
if (success) {
@@ -63,7 +62,7 @@ void InitAwareEventModel::OnInitializeComplete(
}
queued_events_.clear();
- callback.Run(success);
+ std::move(callback).Run(success);
}
size_t InitAwareEventModel::GetQueuedEventCountForTesting() {
diff --git a/chromium/components/feature_engagement/internal/init_aware_event_model.h b/chromium/components/feature_engagement/internal/init_aware_event_model.h
index 79df6348e0f..c25a293cd84 100644
--- a/chromium/components/feature_engagement/internal/init_aware_event_model.h
+++ b/chromium/components/feature_engagement/internal/init_aware_event_model.h
@@ -23,7 +23,7 @@ class InitAwareEventModel : public EventModel {
~InitAwareEventModel() override;
// EventModel implementation.
- void Initialize(const OnModelInitializationFinished& callback,
+ void Initialize(OnModelInitializationFinished callback,
uint32_t current_day) override;
bool IsReady() const override;
const Event* GetEvent(const std::string& event_name) const override;
@@ -36,7 +36,7 @@ class InitAwareEventModel : public EventModel {
size_t GetQueuedEventCountForTesting();
private:
- void OnInitializeComplete(const OnModelInitializationFinished& callback,
+ void OnInitializeComplete(OnModelInitializationFinished callback,
bool success);
std::unique_ptr<EventModel> event_model_;
diff --git a/chromium/components/feature_engagement/internal/init_aware_event_model_unittest.cc b/chromium/components/feature_engagement/internal/init_aware_event_model_unittest.cc
index a42336484ce..9d07636c8f2 100644
--- a/chromium/components/feature_engagement/internal/init_aware_event_model_unittest.cc
+++ b/chromium/components/feature_engagement/internal/init_aware_event_model_unittest.cc
@@ -30,8 +30,7 @@ class MockEventModel : public EventModel {
~MockEventModel() override = default;
// EventModel implementation.
- MOCK_METHOD2(Initialize,
- void(const OnModelInitializationFinished&, uint32_t));
+ MOCK_METHOD2(Initialize, void(OnModelInitializationFinished, uint32_t));
MOCK_CONST_METHOD0(IsReady, bool());
MOCK_CONST_METHOD1(GetEvent, Event*(const std::string&));
MOCK_CONST_METHOD3(GetEventCount,
@@ -45,8 +44,8 @@ class MockEventModel : public EventModel {
class InitAwareEventModelTest : public testing::Test {
public:
InitAwareEventModelTest() : mocked_model_(nullptr) {
- load_callback_ = base::Bind(&InitAwareEventModelTest::OnModelInitialized,
- base::Unretained(this));
+ load_callback_ = base::BindOnce(
+ &InitAwareEventModelTest::OnModelInitialized, base::Unretained(this));
}
~InitAwareEventModelTest() override = default;
@@ -135,8 +134,12 @@ TEST_F(InitAwareEventModelTest, QueuedIncrementEvent) {
EventModel::OnModelInitializationFinished callback;
EXPECT_CALL(*mocked_model_, Initialize(_, 2U))
- .WillOnce(SaveArg<0>(&callback));
- model_->Initialize(load_callback_, 2U);
+ .WillOnce(
+ [&callback](EventModel::OnModelInitializationFinished load_callback,
+ uint32_t current_day) {
+ callback = std::move(load_callback);
+ });
+ model_->Initialize(std::move(load_callback_), 2U);
{
Sequence sequence;
@@ -147,7 +150,7 @@ TEST_F(InitAwareEventModelTest, QueuedIncrementEvent) {
.Times(1)
.InSequence(sequence);
- callback.Run(true);
+ std::move(callback).Run(true);
EXPECT_TRUE(load_success_.value());
}
@@ -167,9 +170,14 @@ TEST_F(InitAwareEventModelTest, QueuedIncrementEventWithUnsuccessfulInit) {
}
EventModel::OnModelInitializationFinished callback;
+
EXPECT_CALL(*mocked_model_, Initialize(_, 2U))
- .WillOnce(SaveArg<0>(&callback));
- model_->Initialize(load_callback_, 2U);
+ .WillOnce(
+ [&callback](EventModel::OnModelInitializationFinished load_callback,
+ uint32_t current_day) {
+ callback = std::move(load_callback);
+ });
+ model_->Initialize(std::move(load_callback_), 2U);
{
Sequence sequence;
@@ -180,7 +188,7 @@ TEST_F(InitAwareEventModelTest, QueuedIncrementEventWithUnsuccessfulInit) {
.Times(0)
.InSequence(sequence);
- callback.Run(false);
+ std::move(callback).Run(false);
EXPECT_FALSE(load_success_.value());
EXPECT_EQ(0U, model_->GetQueuedEventCountForTesting());
}
diff --git a/chromium/components/feature_engagement/internal/never_condition_validator_unittest.cc b/chromium/components/feature_engagement/internal/never_condition_validator_unittest.cc
index 53643b9c753..f693570225a 100644
--- a/chromium/components/feature_engagement/internal/never_condition_validator_unittest.cc
+++ b/chromium/components/feature_engagement/internal/never_condition_validator_unittest.cc
@@ -28,7 +28,7 @@ class NeverTestEventModel : public EventModel {
public:
NeverTestEventModel() = default;
- void Initialize(const OnModelInitializationFinished& callback,
+ void Initialize(OnModelInitializationFinished callback,
uint32_t current_day) override {}
bool IsReady() const override { return true; }
diff --git a/chromium/components/feature_engagement/internal/once_condition_validator_unittest.cc b/chromium/components/feature_engagement/internal/once_condition_validator_unittest.cc
index 6eca144b0e2..bc384705b70 100644
--- a/chromium/components/feature_engagement/internal/once_condition_validator_unittest.cc
+++ b/chromium/components/feature_engagement/internal/once_condition_validator_unittest.cc
@@ -31,7 +31,7 @@ class OnceTestEventModel : public EventModel {
public:
OnceTestEventModel() : ready_(false) { kValidFeatureConfig.valid = true; }
- void Initialize(const OnModelInitializationFinished& callback,
+ void Initialize(OnModelInitializationFinished callback,
uint32_t current_day) override {}
bool IsReady() const override { return ready_; }
diff --git a/chromium/components/feature_engagement/internal/persistent_event_store.cc b/chromium/components/feature_engagement/internal/persistent_event_store.cc
index a4c4f003939..188c3e0843c 100644
--- a/chromium/components/feature_engagement/internal/persistent_event_store.cc
+++ b/chromium/components/feature_engagement/internal/persistent_event_store.cc
@@ -28,11 +28,12 @@ PersistentEventStore::PersistentEventStore(
PersistentEventStore::~PersistentEventStore() = default;
-void PersistentEventStore::Load(const OnLoadedCallback& callback) {
+void PersistentEventStore::Load(OnLoadedCallback callback) {
DCHECK(!ready_);
db_->Init(base::BindOnce(&PersistentEventStore::OnInitComplete,
- weak_ptr_factory_.GetWeakPtr(), callback));
+ weak_ptr_factory_.GetWeakPtr(),
+ std::move(callback)));
}
bool PersistentEventStore::IsReady() const {
@@ -60,27 +61,28 @@ void PersistentEventStore::DeleteEvent(const std::string& event_name) {
}
void PersistentEventStore::OnInitComplete(
- const OnLoadedCallback& callback,
+ OnLoadedCallback callback,
leveldb_proto::Enums::InitStatus status) {
bool success = status == leveldb_proto::Enums::InitStatus::kOK;
stats::RecordDbInitEvent(success, stats::StoreType::EVENTS_STORE);
if (!success) {
- callback.Run(false, std::make_unique<std::vector<Event>>());
+ std::move(callback).Run(false, std::make_unique<std::vector<Event>>());
return;
}
db_->LoadEntries(base::BindOnce(&PersistentEventStore::OnLoadComplete,
- weak_ptr_factory_.GetWeakPtr(), callback));
+ weak_ptr_factory_.GetWeakPtr(),
+ std::move(callback)));
}
void PersistentEventStore::OnLoadComplete(
- const OnLoadedCallback& callback,
+ OnLoadedCallback callback,
bool success,
std::unique_ptr<std::vector<Event>> entries) {
stats::RecordEventDbLoadEvent(success, *entries);
ready_ = success;
- callback.Run(success, std::move(entries));
+ std::move(callback).Run(success, std::move(entries));
}
} // namespace feature_engagement
diff --git a/chromium/components/feature_engagement/internal/persistent_event_store.h b/chromium/components/feature_engagement/internal/persistent_event_store.h
index 61941c57227..9a72760cf91 100644
--- a/chromium/components/feature_engagement/internal/persistent_event_store.h
+++ b/chromium/components/feature_engagement/internal/persistent_event_store.h
@@ -28,15 +28,15 @@ class PersistentEventStore : public EventStore {
~PersistentEventStore() override;
// EventStore implementation.
- void Load(const OnLoadedCallback& callback) override;
+ void Load(OnLoadedCallback callback) override;
bool IsReady() const override;
void WriteEvent(const Event& event) override;
void DeleteEvent(const std::string& event_name) override;
private:
- void OnInitComplete(const OnLoadedCallback& callback,
+ void OnInitComplete(OnLoadedCallback callback,
leveldb_proto::Enums::InitStatus status);
- void OnLoadComplete(const OnLoadedCallback& callback,
+ void OnLoadComplete(OnLoadedCallback callback,
bool success,
std::unique_ptr<std::vector<Event>> entries);
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 005e9f8515b..1dc4502a945 100644
--- a/chromium/components/feature_engagement/internal/persistent_event_store_unittest.cc
+++ b/chromium/components/feature_engagement/internal/persistent_event_store_unittest.cc
@@ -77,7 +77,7 @@ TEST_F(PersistentEventStoreTest, SuccessfulInitAndLoadEmptyStore) {
base::HistogramTester histogram_tester;
- store_->Load(load_callback_);
+ store_->Load(std::move(load_callback_));
// The initialize should not trigger a response to the callback.
db_->InitStatusCallback(leveldb_proto::Enums::InitStatus::kOK);
EXPECT_FALSE(load_successful_.has_value());
@@ -117,7 +117,7 @@ TEST_F(PersistentEventStoreTest, SuccessfulInitAndLoadWithEvents) {
base::HistogramTester histogram_tester;
// The initialize should not trigger a response to the callback.
- store_->Load(load_callback_);
+ store_->Load(std::move(load_callback_));
db_->InitStatusCallback(leveldb_proto::Enums::InitStatus::kOK);
EXPECT_FALSE(load_successful_.has_value());
@@ -141,7 +141,7 @@ TEST_F(PersistentEventStoreTest, SuccessfulInitBadLoad) {
base::HistogramTester histogram_tester;
SetUpDB();
- store_->Load(load_callback_);
+ store_->Load(std::move(load_callback_));
// The initialize should not trigger a response to the callback.
db_->InitStatusCallback(leveldb_proto::Enums::InitStatus::kOK);
@@ -164,7 +164,7 @@ TEST_F(PersistentEventStoreTest, BadInit) {
base::HistogramTester histogram_tester;
SetUpDB();
- store_->Load(load_callback_);
+ store_->Load(std::move(load_callback_));
// The initialize will fail and should trigger the callback.
db_->InitStatusCallback(leveldb_proto::Enums::InitStatus::kError);
@@ -183,7 +183,7 @@ TEST_F(PersistentEventStoreTest, IsReady) {
SetUpDB();
EXPECT_FALSE(store_->IsReady());
- store_->Load(load_callback_);
+ store_->Load(std::move(load_callback_));
EXPECT_FALSE(store_->IsReady());
db_->InitStatusCallback(leveldb_proto::Enums::InitStatus::kOK);
@@ -196,7 +196,7 @@ TEST_F(PersistentEventStoreTest, IsReady) {
TEST_F(PersistentEventStoreTest, WriteEvent) {
SetUpDB();
- store_->Load(load_callback_);
+ store_->Load(std::move(load_callback_));
db_->InitStatusCallback(leveldb_proto::Enums::InitStatus::kOK);
db_->LoadCallback(true);
@@ -217,7 +217,7 @@ TEST_F(PersistentEventStoreTest, WriteEvent) {
TEST_F(PersistentEventStoreTest, WriteAndDeleteEvent) {
SetUpDB();
- store_->Load(load_callback_);
+ store_->Load(std::move(load_callback_));
db_->InitStatusCallback(leveldb_proto::Enums::InitStatus::kOK);
db_->LoadCallback(true);
diff --git a/chromium/components/feature_engagement/internal/test/BUILD.gn b/chromium/components/feature_engagement/internal/test/BUILD.gn
index 5c9e7a1c2be..961c1f6066b 100644
--- a/chromium/components/feature_engagement/internal/test/BUILD.gn
+++ b/chromium/components/feature_engagement/internal/test/BUILD.gn
@@ -2,9 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import("//build/config/jumbo.gni")
-
-jumbo_source_set("test_support") {
+source_set("test_support") {
testonly = true
visibility = [ "//components/feature_engagement/internal:unit_tests" ]
diff --git a/chromium/components/feature_engagement/internal/tracker_impl_unittest.cc b/chromium/components/feature_engagement/internal/tracker_impl_unittest.cc
index fb8459afff0..4b43ade6f1a 100644
--- a/chromium/components/feature_engagement/internal/tracker_impl_unittest.cc
+++ b/chromium/components/feature_engagement/internal/tracker_impl_unittest.cc
@@ -85,8 +85,8 @@ class TestTrackerInMemoryEventStore : public InMemoryEventStore {
explicit TestTrackerInMemoryEventStore(bool load_should_succeed)
: load_should_succeed_(load_should_succeed) {}
- void Load(const OnLoadedCallback& callback) override {
- HandleLoadResult(callback, load_should_succeed_);
+ void Load(OnLoadedCallback callback) override {
+ HandleLoadResult(std::move(callback), load_should_succeed_);
}
void WriteEvent(const Event& event) override {
diff --git a/chromium/components/feature_engagement/public/BUILD.gn b/chromium/components/feature_engagement/public/BUILD.gn
index 6346d5c9349..090e85188ef 100644
--- a/chromium/components/feature_engagement/public/BUILD.gn
+++ b/chromium/components/feature_engagement/public/BUILD.gn
@@ -2,14 +2,12 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import("//build/config/jumbo.gni")
-
if (is_android) {
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
}
-jumbo_source_set("public") {
+source_set("public") {
sources = [
"configuration.cc",
"configuration.h",
@@ -27,13 +25,12 @@ jumbo_source_set("public") {
deps = [
"//base",
- "//components/feature_engagement:buildflags",
"//components/flags_ui",
"//components/keyed_service/core",
]
}
-jumbo_source_set("unit_tests") {
+source_set("unit_tests") {
testonly = true
visibility = [ "//components/feature_engagement:unit_tests" ]
diff --git a/chromium/components/feature_engagement/public/android/java/src/org/chromium/components/feature_engagement/EventConstants.java b/chromium/components/feature_engagement/public/android/java/src/org/chromium/components/feature_engagement/EventConstants.java
index c2a9f311ae9..8e840018766 100644
--- a/chromium/components/feature_engagement/public/android/java/src/org/chromium/components/feature_engagement/EventConstants.java
+++ b/chromium/components/feature_engagement/public/android/java/src/org/chromium/components/feature_engagement/EventConstants.java
@@ -122,6 +122,12 @@ public final class EventConstants {
"contextual_search_tapped_but_should_longpress";
/**
+ * Contextual Search user fully enabled access to page content through the opt-in.
+ */
+ public static final String CONTEXTUAL_SEARCH_ENABLED_OPT_IN =
+ "contextual_search_enabled_opt_in";
+
+ /**
* The partner homepage was pressed.
*/
public static final String PARTNER_HOME_PAGE_BUTTON_PRESSED =
diff --git a/chromium/components/feature_engagement/public/android/java/src/org/chromium/components/feature_engagement/FeatureConstants.java b/chromium/components/feature_engagement/public/android/java/src/org/chromium/components/feature_engagement/FeatureConstants.java
index 232f051ab40..54df13f86da 100644
--- a/chromium/components/feature_engagement/public/android/java/src/org/chromium/components/feature_engagement/FeatureConstants.java
+++ b/chromium/components/feature_engagement/public/android/java/src/org/chromium/components/feature_engagement/FeatureConstants.java
@@ -23,6 +23,7 @@ import java.lang.annotation.RetentionPolicy;
FeatureConstants.DATA_SAVER_PREVIEW_FEATURE, FeatureConstants.DATA_SAVER_DETAIL_FEATURE,
FeatureConstants.EPHEMERAL_TAB_FEATURE, FeatureConstants.PREVIEWS_OMNIBOX_UI_FEATURE,
FeatureConstants.TRANSLATE_MENU_BUTTON_FEATURE,
+ FeatureConstants.CONTEXTUAL_SEARCH_TRANSLATION_ENABLE_FEATURE,
FeatureConstants.CONTEXTUAL_SEARCH_WEB_SEARCH_FEATURE,
FeatureConstants.CONTEXTUAL_SEARCH_PROMOTE_TAP_FEATURE,
FeatureConstants.CONTEXTUAL_SEARCH_PROMOTE_PANEL_OPEN_FEATURE,
@@ -66,6 +67,12 @@ public @interface FeatureConstants {
String EXPLORE_SITES_TILE_FEATURE = "IPH_ExploreSitesTile";
/**
+ * An IPH feature that encourages users to get better translations by enabling access to page
+ * content.
+ */
+ String CONTEXTUAL_SEARCH_TRANSLATION_ENABLE_FEATURE = "IPH_ContextualSearchTranslationEnable";
+
+ /**
* An IPH feature that encourages users who search a query from a web page in a new tab, to use
* Contextual Search instead.
*/
diff --git a/chromium/components/feature_engagement/public/event_constants.cc b/chromium/components/feature_engagement/public/event_constants.cc
index 3f97ea2ec32..01ef02ba89b 100644
--- a/chromium/components/feature_engagement/public/event_constants.cc
+++ b/chromium/components/feature_engagement/public/event_constants.cc
@@ -5,19 +5,18 @@
#include "components/feature_engagement/public/event_constants.h"
#include "build/build_config.h"
-#include "components/feature_engagement/buildflags.h"
namespace feature_engagement {
namespace events {
-#if defined(OS_IOS) || defined(OS_WIN) || defined(OS_MACOSX) || \
- defined(OS_LINUX) || defined(OS_CHROMEOS)
+#if defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) || \
+ defined(OS_CHROMEOS)
const char kNewTabOpened[] = "new_tab_opened";
-#endif // defined(OS_IOS) || defined(OS_WIN) || defined(OS_MACOSX) ||
+#endif // defined(OS_WIN) || defined(OS_APPLE) ||
// defined(OS_LINUX) || defined(OS_CHROMEOS)
-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
+#if defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) || \
defined(OS_CHROMEOS)
const char kSixthTabOpened[] = "sixth_tab_opened";
const char kTabGroupCreated[] = "tab_group_created";
@@ -33,19 +32,7 @@ const char kFocusModeConditionsMet[] = "focus_mode_conditions_met";
const char kWebUITabStripClosed[] = "webui_tab_strip_closed";
const char kWebUITabStripOpened[] = "webui_tab_strip_opened";
-
-#if BUILDFLAG(ENABLE_LEGACY_DESKTOP_IN_PRODUCT_HELP)
-const char kBookmarkAdded[] = "bookmark_added";
-const char kBookmarkSessionTimeMet[] = "bookmark_session_time_met";
-
-const char kOmniboxInteraction[] = "omnibox_used";
-const char kNewTabSessionTimeMet[] = "new_tab_session_time_met";
-
-const char kIncognitoWindowOpened[] = "incognito_window_opened";
-const char kIncognitoWindowSessionTimeMet[] =
- "incognito_window_session_time_met";
-#endif // BUILDFLAG(ENABLE_LEGACY_DESKTOP_IN_PRODUCT_HELP)
-#endif // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ||
+#endif // defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) ||
// defined(OS_CHROMEOS)
#if defined(OS_IOS)
@@ -55,6 +42,7 @@ const char kClearedBrowsingData[] = "cleared_browsing_data";
const char kViewedReadingList[] = "viewed_reading_list";
const char kTriggeredTranslateInfobar[] = "triggered_translate_infobar";
const char kBottomToolbarOpened[] = "bottom_toolbar_opened";
+const char kDiscoverFeedLoaded[] = "discover_feed_loaded";
#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 c7d21870944..433e25fe356 100644
--- a/chromium/components/feature_engagement/public/event_constants.h
+++ b/chromium/components/feature_engagement/public/event_constants.h
@@ -6,23 +6,22 @@
#define COMPONENTS_FEATURE_ENGAGEMENT_PUBLIC_EVENT_CONSTANTS_H_
#include "build/build_config.h"
-#include "components/feature_engagement/buildflags.h"
namespace feature_engagement {
namespace events {
// Desktop and IOS.
-#if defined(OS_IOS) || defined(OS_WIN) || defined(OS_MACOSX) || \
- defined(OS_LINUX) || defined(OS_CHROMEOS)
+#if defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) || \
+ defined(OS_CHROMEOS)
// The user has explicitly opened a new tab via an entry point from inside of
// Chrome.
extern const char kNewTabOpened[];
-#endif // defined(OS_IOS) || defined(OS_WIN) || defined(OS_MACOSX) ||
+#endif // defined(OS_WIN) || defined(OS_APPLE) ||
// defined(OS_LINUX) || defined(OS_CHROMEOS)
// Desktop
-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
+#if defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) || \
defined(OS_CHROMEOS)
// A new tab was opened when 5 (or more) tabs were already open.
extern const char kSixthTabOpened[];
@@ -55,37 +54,7 @@ extern const char kWebUITabStripClosed[];
// The WebUI tab strip was opened by the user.
extern const char kWebUITabStripOpened[];
-#if BUILDFLAG(ENABLE_LEGACY_DESKTOP_IN_PRODUCT_HELP)
-// All the events declared below are the string names of deferred onboarding
-// events for the Bookmark feature.
-
-// The user has added a Bookmark (one-off event).
-extern const char kBookmarkAdded[];
-// The user has satisfied the session time requirement to show the BookmarkPromo
-// by accumulating 5 hours of active session time (one-off event).
-extern const char kBookmarkSessionTimeMet[];
-
-// All the events declared below are the string names of deferred onboarding
-// events for the New Tab.
-
-// The user has interacted with the omnibox.
-extern const char kOmniboxInteraction[];
-// The user has satisfied the session time requirement to show the NewTabPromo
-// by accumulating 2 hours of active session time (one-off event).
-extern const char kNewTabSessionTimeMet[];
-
-// All the events declared below are the string names of deferred onboarding
-// events for the Incognito Window.
-
-// The user has opened an incognito window.
-extern const char kIncognitoWindowOpened[];
-// The user has satisfied the session time requirement to show the
-// IncognitoWindowPromo by accumulating 2 hours of active session time (one-off
-// event).
-extern const char kIncognitoWindowSessionTimeMet[];
-#endif // BUILDFLAG(ENABLE_LEGACY_DESKTOP_IN_PRODUCT_HELP)
-
-#endif // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ||
+#endif // defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) ||
// defined(OS_CHROMEOS)
#if defined(OS_IOS)
@@ -106,6 +75,9 @@ extern const char kTriggeredTranslateInfobar[];
// The user has viewed the the BottomToolbar tip.
extern const char kBottomToolbarOpened[];
+
+// The Discover feed has loaded content in the NTP.
+extern const char kDiscoverFeedLoaded[];
#endif // defined(OS_IOS)
} // namespace events
diff --git a/chromium/components/feature_engagement/public/feature_configurations.cc b/chromium/components/feature_engagement/public/feature_configurations.cc
index 8ba1faffc4c..7a9a5536632 100644
--- a/chromium/components/feature_engagement/public/feature_configurations.cc
+++ b/chromium/components/feature_engagement/public/feature_configurations.cc
@@ -12,6 +12,25 @@ namespace feature_engagement {
base::Optional<FeatureConfig> GetClientSideFeatureConfig(
const base::Feature* feature) {
+#if defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) || \
+ defined(OS_CHROMEOS)
+ if (kIPHPasswordsAccountStorageFeature.name == feature->name) {
+ base::Optional<FeatureConfig> config = FeatureConfig();
+ config->valid = true;
+ config->availability = Comparator(ANY, 0);
+ config->session_rate = Comparator(ANY, 0);
+ config->trigger = EventConfig("passwords_account_storage_trigger",
+ Comparator(LESS_THAN, 5), 180, 180);
+ config->used = EventConfig("passwords_account_storage_used",
+ Comparator(EQUAL, 0), 180, 180);
+ config->event_configs.insert(
+ EventConfig("passwords_account_storage_unselected",
+ Comparator(EQUAL, 0), 180, 180));
+ return config;
+ }
+#endif // defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) ||
+ // defined(OS_CHROMEOS)
+
#if defined(OS_ANDROID)
if (kIPHDataSaverDetailFeature.name == feature->name) {
base::Optional<FeatureConfig> config = FeatureConfig();
diff --git a/chromium/components/feature_engagement/public/feature_constants.cc b/chromium/components/feature_engagement/public/feature_constants.cc
index 80c34cc8b23..c6469a45af8 100644
--- a/chromium/components/feature_engagement/public/feature_constants.cc
+++ b/chromium/components/feature_engagement/public/feature_constants.cc
@@ -4,8 +4,6 @@
#include "components/feature_engagement/public/feature_constants.h"
-#include "components/feature_engagement/buildflags.h"
-
namespace feature_engagement {
const base::Feature kIPHDemoMode{"IPH_DemoMode",
@@ -14,7 +12,7 @@ const base::Feature kIPHDemoMode{"IPH_DemoMode",
const base::Feature kIPHDummyFeature{"IPH_Dummy",
base::FEATURE_DISABLED_BY_DEFAULT};
-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
+#if defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) || \
defined(OS_CHROMEOS)
const base::Feature kIPHDesktopTabGroupsNewGroupFeature{
"IPH_DesktopTabGroupsNewGroup", base::FEATURE_DISABLED_BY_DEFAULT};
@@ -28,16 +26,7 @@ const base::Feature kIPHReopenTabFeature{"IPH_ReopenTab",
base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kIPHWebUITabStripFeature{"IPH_WebUITabStrip",
base::FEATURE_DISABLED_BY_DEFAULT};
-
-#if BUILDFLAG(ENABLE_LEGACY_DESKTOP_IN_PRODUCT_HELP)
-const base::Feature kIPHBookmarkFeature{"IPH_Bookmark",
- base::FEATURE_DISABLED_BY_DEFAULT};
-const base::Feature kIPHIncognitoWindowFeature{
- "IPH_IncognitoWindow", base::FEATURE_DISABLED_BY_DEFAULT};
-const base::Feature kIPHNewTabFeature{"IPH_NewTab",
- base::FEATURE_DISABLED_BY_DEFAULT};
-#endif // BUILDFLAG(ENABLE_LEGACY_DESKTOP_IN_PRODUCT_HELP)
-#endif // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ||
+#endif // defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) ||
// defined(OS_CHROMEOS)
#if defined(OS_ANDROID)
@@ -63,6 +52,8 @@ const base::Feature kIPHChromeHomeExpandFeature{
"IPH_ChromeHomeExpand", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kIPHChromeHomePullToRefreshFeature{
"IPH_ChromeHomePullToRefresh", base::FEATURE_DISABLED_BY_DEFAULT};
+const base::Feature kIPHContextualSearchTranslationEnableFeature{
+ "IPH_ContextualSearchTranslationEnable", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kIPHContextualSearchWebSearchFeature{
"IPH_ContextualSearchWebSearch", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kIPHContextualSearchPromoteTapFeature{
@@ -133,6 +124,8 @@ const base::Feature kIPHBadgedReadingListFeature{
"IPH_BadgedReadingList", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kIPHBadgedTranslateManualTriggerFeature{
"IPH_BadgedTranslateManualTrigger", base::FEATURE_DISABLED_BY_DEFAULT};
+const base::Feature kIPHDiscoverFeedHeaderFeature{
+ "IPH_DiscoverFeedHeaderMenu", base::FEATURE_DISABLED_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 499449de664..fc56e35dd9c 100644
--- a/chromium/components/feature_engagement/public/feature_constants.h
+++ b/chromium/components/feature_engagement/public/feature_constants.h
@@ -7,7 +7,6 @@
#include "base/feature_list.h"
#include "build/build_config.h"
-#include "components/feature_engagement/buildflags.h"
namespace feature_engagement {
@@ -17,7 +16,7 @@ extern const base::Feature kIPHDemoMode;
// A feature to ensure all arrays can contain at least one feature.
extern const base::Feature kIPHDummyFeature;
-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
+#if defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) || \
defined(OS_CHROMEOS)
extern const base::Feature kIPHDesktopTabGroupsNewGroupFeature;
extern const base::Feature kIPHFocusModeFeature;
@@ -25,13 +24,7 @@ extern const base::Feature kIPHGlobalMediaControlsFeature;
extern const base::Feature kIPHPasswordsAccountStorageFeature;
extern const base::Feature kIPHReopenTabFeature;
extern const base::Feature kIPHWebUITabStripFeature;
-
-#if BUILDFLAG(ENABLE_LEGACY_DESKTOP_IN_PRODUCT_HELP)
-extern const base::Feature kIPHBookmarkFeature;
-extern const base::Feature kIPHIncognitoWindowFeature;
-extern const base::Feature kIPHNewTabFeature;
-#endif // BUILDFLAG(ENABLE_LEGACY_DESKTOP_IPH)
-#endif // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ||
+#endif // defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) ||
// defined(OS_CHROMEOS)
// All the features declared for Android below that are also used in Java,
@@ -49,6 +42,7 @@ extern const base::Feature kIPHChromeDuetSearchFeature;
extern const base::Feature kIPHChromeDuetTabSwitcherFeature;
extern const base::Feature kIPHChromeHomeExpandFeature;
extern const base::Feature kIPHChromeHomePullToRefreshFeature;
+extern const base::Feature kIPHContextualSearchTranslationEnableFeature;
extern const base::Feature kIPHContextualSearchWebSearchFeature;
extern const base::Feature kIPHContextualSearchPromoteTapFeature;
extern const base::Feature kIPHContextualSearchPromotePanelOpenFeature;
@@ -88,6 +82,7 @@ extern const base::Feature kIPHNewTabTipFeature;
extern const base::Feature kIPHNewIncognitoTabTipFeature;
extern const base::Feature kIPHBadgedReadingListFeature;
extern const base::Feature kIPHBadgedTranslateManualTriggerFeature;
+extern const base::Feature kIPHDiscoverFeedHeaderFeature;
#endif // defined(OS_IOS)
} // namespace feature_engagement
diff --git a/chromium/components/feature_engagement/public/feature_list.cc b/chromium/components/feature_engagement/public/feature_list.cc
index 8d8a48e4872..70ae4b1d9f4 100644
--- a/chromium/components/feature_engagement/public/feature_list.cc
+++ b/chromium/components/feature_engagement/public/feature_list.cc
@@ -5,7 +5,6 @@
#include "components/feature_engagement/public/feature_list.h"
#include "base/stl_util.h"
-#include "components/feature_engagement/buildflags.h"
#include "components/feature_engagement/public/feature_constants.h"
namespace feature_engagement {
@@ -31,6 +30,7 @@ const base::Feature* const kAllFeatures[] = {
&kIPHChromeReengagementNotification1Feature,
&kIPHChromeReengagementNotification2Feature,
&kIPHChromeReengagementNotification3Feature,
+ &kIPHContextualSearchTranslationEnableFeature,
&kIPHContextualSearchWebSearchFeature,
&kIPHContextualSearchPromoteTapFeature,
&kIPHContextualSearchPromotePanelOpenFeature,
@@ -63,8 +63,9 @@ const base::Feature* const kAllFeatures[] = {
&kIPHNewIncognitoTabTipFeature,
&kIPHBadgedReadingListFeature,
&kIPHBadgedTranslateManualTriggerFeature,
+ &kIPHDiscoverFeedHeaderFeature,
#endif // defined(OS_IOS)
-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
+#if defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) || \
defined(OS_CHROMEOS)
&kIPHDesktopTabGroupsNewGroupFeature,
&kIPHFocusModeFeature,
@@ -72,12 +73,7 @@ const base::Feature* const kAllFeatures[] = {
&kIPHPasswordsAccountStorageFeature,
&kIPHReopenTabFeature,
&kIPHWebUITabStripFeature,
-#if BUILDFLAG(ENABLE_LEGACY_DESKTOP_IN_PRODUCT_HELP)
- &kIPHBookmarkFeature,
- &kIPHIncognitoWindowFeature,
- &kIPHNewTabFeature,
-#endif // BUILDFLAG(ENABLE_LEGACY_DESKTOP_IN_PRODUCT_HELP)
-#endif // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ||
+#endif // defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) ||
// defined(OS_CHROMEOS)
};
} // namespace
diff --git a/chromium/components/feature_engagement/public/feature_list.h b/chromium/components/feature_engagement/public/feature_list.h
index 849acc1e0de..e1bffe7c218 100644
--- a/chromium/components/feature_engagement/public/feature_list.h
+++ b/chromium/components/feature_engagement/public/feature_list.h
@@ -10,7 +10,6 @@
#include "base/feature_list.h"
#include "base/stl_util.h"
#include "build/build_config.h"
-#include "components/feature_engagement/buildflags.h"
#include "components/feature_engagement/public/feature_constants.h"
#include "components/flags_ui/feature_entry.h"
@@ -69,6 +68,8 @@ DEFINE_VARIATION_PARAM(kIPHChromeReengagementNotification2Feature,
"IPH_ChromeReengagementNotification2");
DEFINE_VARIATION_PARAM(kIPHChromeReengagementNotification3Feature,
"IPH_ChromeReengagementNotification3");
+DEFINE_VARIATION_PARAM(kIPHContextualSearchTranslationEnableFeature,
+ "IPH_ContextualSearchTranslationEnable");
DEFINE_VARIATION_PARAM(kIPHContextualSearchWebSearchFeature,
"IPH_ContextualSearchWebSearch");
DEFINE_VARIATION_PARAM(kIPHContextualSearchPromoteTapFeature,
@@ -119,9 +120,11 @@ DEFINE_VARIATION_PARAM(kIPHNewIncognitoTabTipFeature, "IPH_NewIncognitoTabTip");
DEFINE_VARIATION_PARAM(kIPHBadgedReadingListFeature, "IPH_BadgedReadingList");
DEFINE_VARIATION_PARAM(kIPHBadgedTranslateManualTriggerFeature,
"IPH_BadgedTranslateManualTrigger");
+DEFINE_VARIATION_PARAM(kIPHDiscoverFeedHeaderFeature,
+ "IPH_DiscoverFeedHeaderMenu");
#endif // defined(OS_IOS)
-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
+#if defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) || \
defined(OS_CHROMEOS)
DEFINE_VARIATION_PARAM(kIPHDesktopTabGroupsNewGroupFeature,
"IPH_DesktopTabGroupsNewGroup");
@@ -131,12 +134,7 @@ DEFINE_VARIATION_PARAM(kIPHPasswordsAccountStorageFeature,
"IPH_PasswordsAccountStorage");
DEFINE_VARIATION_PARAM(kIPHReopenTabFeature, "IPH_ReopenTab");
DEFINE_VARIATION_PARAM(kIPHWebUITabStripFeature, "IPH_WebUITabStrip");
-#if BUILDFLAG(ENABLE_LEGACY_DESKTOP_IN_PRODUCT_HELP)
-DEFINE_VARIATION_PARAM(kIPHBookmarkFeature, "IPH_Bookmark");
-DEFINE_VARIATION_PARAM(kIPHIncognitoWindowFeature, "IPH_IncognitoWindow");
-DEFINE_VARIATION_PARAM(kIPHNewTabFeature, "IPH_NewTab");
-#endif // BUILDFLAG(ENABLE_LEGACY_DESKTOP_IN_PRODUCT_HELP)
-#endif // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ||
+#endif // defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) ||
// defined(OS_CHROMEOS)
} // namespace
@@ -161,6 +159,7 @@ constexpr flags_ui::FeatureEntry::FeatureVariation
VARIATION_ENTRY(kIPHChromeReengagementNotification1Feature),
VARIATION_ENTRY(kIPHChromeReengagementNotification2Feature),
VARIATION_ENTRY(kIPHChromeReengagementNotification3Feature),
+ VARIATION_ENTRY(kIPHContextualSearchTranslationEnableFeature),
VARIATION_ENTRY(kIPHContextualSearchWebSearchFeature),
VARIATION_ENTRY(kIPHContextualSearchPromoteTapFeature),
VARIATION_ENTRY(kIPHContextualSearchPromotePanelOpenFeature),
@@ -192,19 +191,16 @@ constexpr flags_ui::FeatureEntry::FeatureVariation
VARIATION_ENTRY(kIPHNewIncognitoTabTipFeature),
VARIATION_ENTRY(kIPHBadgedReadingListFeature),
VARIATION_ENTRY(kIPHBadgedTranslateManualTriggerFeature),
-#elif defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
+ VARIATION_ENTRY(kIPHDiscoverFeedHeaderFeature),
+#elif defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) || \
defined(OS_CHROMEOS)
VARIATION_ENTRY(kIPHDesktopTabGroupsNewGroupFeature),
VARIATION_ENTRY(kIPHFocusModeFeature),
VARIATION_ENTRY(kIPHGlobalMediaControls),
+ VARIATION_ENTRY(kIPHPasswordsAccountStorageFeature),
VARIATION_ENTRY(kIPHReopenTabFeature),
VARIATION_ENTRY(kIPHWebUITabStripFeature),
-#if BUILDFLAG(ENABLE_LEGACY_DESKTOP_IN_PRODUCT_HELP)
- VARIATION_ENTRY(kIPHBookmarkFeature),
- VARIATION_ENTRY(kIPHIncognitoWindowFeature),
- VARIATION_ENTRY(kIPHNewTabFeature),
-#endif // BUILDFLAG(ENABLE_LEGACY_DESKTOP_IN_PRODUCT_HELP)
-#endif // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ||
+#endif // defined(OS_WIN) || defined(OS_APPLE) || defined(OS_LINUX) ||
// defined(OS_CHROMEOS)
};