New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 723007 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Traveling - Back 2/6
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug


Participants' hotlists:
In-Product-Help


Sign in to add a comment

Add final window for IPH

Project Member Reported by talo@chromium.org, May 16 2017

Issue description


- User has had this feature IPH enabled for at least this amount of days.
- This is given in the same format as comparator for the event_? events.
- The local availability_day is set the first time the tracker is started up and a feature is enabled.
- A comparator of type ANY means that there is no requirement for a feature to have been enabled any amount of days, and can be shown the first day of a rollout.
 
Labels: -Pri-3 Pri-1
Status: Started (was: Untriaged)
Project Member

Comment 2 by bugdroid1@chromium.org, May 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ddffa7d52640d5a9d1ac7a6d6180dabdab75ff05

commit ddffa7d52640d5a9d1ac7a6d6180dabdab75ff05
Author: Tommy Nyquist <nyquist@chromium.org>
Date: Wed May 24 15:54:45 2017

Change LevelDB Protocol Buffer DB to use base::OnceCallback.

To ensure that other parts of the codebase can use base::OnceCallback
when using the LevelDB Protocol Buffer database, this CL changes
all parts of the leveldb_proto database to now use base::OnceCallback
and base::BindOnce.

BUG= 723007 ,  706309 

Change-Id: I95e262fbcc62cce7189903803797c854ea7f881f
Reviewed-on: https://chromium-review.googlesource.com/513493
Reviewed-by: David Trainor <dtrainor@chromium.org>
Commit-Queue: Tommy Nyquist <nyquist@chromium.org>
Cr-Commit-Position: refs/heads/master@{#474306}
[modify] https://crrev.com/ddffa7d52640d5a9d1ac7a6d6180dabdab75ff05/components/leveldb_proto/proto_database.h
[modify] https://crrev.com/ddffa7d52640d5a9d1ac7a6d6180dabdab75ff05/components/leveldb_proto/proto_database_impl.h
[modify] https://crrev.com/ddffa7d52640d5a9d1ac7a6d6180dabdab75ff05/components/leveldb_proto/testing/fake_db.h

Project Member

Comment 3 by bugdroid1@chromium.org, May 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/038589d2a436b7a9f40a5ec4db0fe16b0a3d46a9

commit 038589d2a436b7a9f40a5ec4db0fe16b0a3d46a9
Author: Tommy Nyquist <nyquist@chromium.org>
Date: Thu May 25 19:17:48 2017

Add AvailabilityStore for feature engagement tracker.

The FeatureEngagementTracker is missing functionality to track when a
particular feature has been made available to the end user.

This CL adds the store to track that, using LevelDB as a backend by
using the templated //components/leveldb_proto.

The load of data has a single entry point, and it uses
base::OnceCallback to pass along ownership along the way, including to
the underlying DB.

The store reads from DB and uses a base::Feature filter to figure out
which features should be stored. Each enabled feature should have their
earliest day (in days since UNIX epoch) stored as their avilability
day. Feature that are no longer enabled are deleted. The end output
is provided to the initial callback as a map from feature to the
availability day.

Since the LevelDB for the events has not been used yet, this CL also
changes the suffix for the LevelDB UMA tracking for that DB to ensure
both databases for the feature engagement tracker has the same naming
scheme.

BUG= 723007 ,  706309 

Change-Id: Ic35e83efe75ac20e1c0fb261aee1d7591615d68d
Reviewed-on: https://chromium-review.googlesource.com/515122
Reviewed-by: Jesse Doherty <jwd@chromium.org>
Reviewed-by: David Trainor <dtrainor@chromium.org>
Commit-Queue: Tommy Nyquist <nyquist@chromium.org>
Cr-Commit-Position: refs/heads/master@{#474745}
[modify] https://crrev.com/038589d2a436b7a9f40a5ec4db0fe16b0a3d46a9/components/feature_engagement_tracker/components_unittests.filter
[modify] https://crrev.com/038589d2a436b7a9f40a5ec4db0fe16b0a3d46a9/components/feature_engagement_tracker/internal/BUILD.gn
[add] https://crrev.com/038589d2a436b7a9f40a5ec4db0fe16b0a3d46a9/components/feature_engagement_tracker/internal/availability_store.cc
[add] https://crrev.com/038589d2a436b7a9f40a5ec4db0fe16b0a3d46a9/components/feature_engagement_tracker/internal/availability_store.h
[add] https://crrev.com/038589d2a436b7a9f40a5ec4db0fe16b0a3d46a9/components/feature_engagement_tracker/internal/availability_store_unittest.cc
[modify] https://crrev.com/038589d2a436b7a9f40a5ec4db0fe16b0a3d46a9/components/feature_engagement_tracker/internal/persistent_store.cc
[modify] https://crrev.com/038589d2a436b7a9f40a5ec4db0fe16b0a3d46a9/components/feature_engagement_tracker/internal/proto/BUILD.gn
[add] https://crrev.com/038589d2a436b7a9f40a5ec4db0fe16b0a3d46a9/components/feature_engagement_tracker/internal/proto/availability.proto
[modify] https://crrev.com/038589d2a436b7a9f40a5ec4db0fe16b0a3d46a9/tools/metrics/histograms/histograms.xml

Project Member

Comment 4 by bugdroid1@chromium.org, May 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3040162868fcdfd2d3bf53471a51e764ecfeb18f

commit 3040162868fcdfd2d3bf53471a51e764ecfeb18f
Author: Tommy Nyquist <nyquist@chromium.org>
Date: Thu May 25 19:32:58 2017

Add AvailabilityModel for feature engagement tracker.

The FeatureEngagementTracker is missing functionality to track when a
particular feature has been made available to the end user.

This CL adds a model to track that, which uses the underlying
AvailabilityStore for a one-time load during initialization.

To help with testing and demo mode, this CL also adds a
NeverAvailabililtyModel, which can be used whenever a real model is
unnecessary.

BUG= 723007 ,  706309 

Change-Id: I0f39acf1979c88532e0321a252d1567f1cb77cc0
Reviewed-on: https://chromium-review.googlesource.com/515142
Commit-Queue: Tommy Nyquist <nyquist@chromium.org>
Reviewed-by: David Trainor <dtrainor@chromium.org>
Cr-Commit-Position: refs/heads/master@{#474754}
[modify] https://crrev.com/3040162868fcdfd2d3bf53471a51e764ecfeb18f/components/feature_engagement_tracker/components_unittests.filter
[modify] https://crrev.com/3040162868fcdfd2d3bf53471a51e764ecfeb18f/components/feature_engagement_tracker/internal/BUILD.gn
[add] https://crrev.com/3040162868fcdfd2d3bf53471a51e764ecfeb18f/components/feature_engagement_tracker/internal/availability_model.h
[add] https://crrev.com/3040162868fcdfd2d3bf53471a51e764ecfeb18f/components/feature_engagement_tracker/internal/availability_model_impl.cc
[add] https://crrev.com/3040162868fcdfd2d3bf53471a51e764ecfeb18f/components/feature_engagement_tracker/internal/availability_model_impl.h
[add] https://crrev.com/3040162868fcdfd2d3bf53471a51e764ecfeb18f/components/feature_engagement_tracker/internal/availability_model_impl_unittest.cc
[add] https://crrev.com/3040162868fcdfd2d3bf53471a51e764ecfeb18f/components/feature_engagement_tracker/internal/never_availability_model.cc
[add] https://crrev.com/3040162868fcdfd2d3bf53471a51e764ecfeb18f/components/feature_engagement_tracker/internal/never_availability_model.h
[add] https://crrev.com/3040162868fcdfd2d3bf53471a51e764ecfeb18f/components/feature_engagement_tracker/internal/never_availability_model_unittest.cc

Project Member

Comment 5 by bugdroid1@chromium.org, May 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/168444cf44dfed8b347a5fbaf4420a6733e11e2d

commit 168444cf44dfed8b347a5fbaf4420a6733e11e2d
Author: Tommy Nyquist <nyquist@chromium.org>
Date: Thu May 25 19:44:03 2017

Update ConditionValidator to require AvailabilityModel

The FeatureEngagementTracker is missing functionality to track when a
particular feature has been made available to the end user.

This CL updates the ConditionValidator API to now require an
AvailabilityModel whenever a check for whether a feature meets the
current conditions happens.

This also adds two new fields to the ConditionValidator::Result struct
that now includes relevant fields for availability checks.

Lastly, it updates some helper methods for tests to prepare for
upcoming tests that would have overlapping method names.

BUG= 723007 ,  706309 

Change-Id: Ia86847e7e84b9bded6d939afc46ad596a19c8517
Reviewed-on: https://chromium-review.googlesource.com/515202
Commit-Queue: Tommy Nyquist <nyquist@chromium.org>
Reviewed-by: David Trainor <dtrainor@chromium.org>
Cr-Commit-Position: refs/heads/master@{#474760}
[modify] https://crrev.com/168444cf44dfed8b347a5fbaf4420a6733e11e2d/components/feature_engagement_tracker/internal/condition_validator.cc
[modify] https://crrev.com/168444cf44dfed8b347a5fbaf4420a6733e11e2d/components/feature_engagement_tracker/internal/condition_validator.h
[modify] https://crrev.com/168444cf44dfed8b347a5fbaf4420a6733e11e2d/components/feature_engagement_tracker/internal/condition_validator_unittest.cc
[modify] https://crrev.com/168444cf44dfed8b347a5fbaf4420a6733e11e2d/components/feature_engagement_tracker/internal/feature_config_condition_validator.cc
[modify] https://crrev.com/168444cf44dfed8b347a5fbaf4420a6733e11e2d/components/feature_engagement_tracker/internal/feature_config_condition_validator.h
[modify] https://crrev.com/168444cf44dfed8b347a5fbaf4420a6733e11e2d/components/feature_engagement_tracker/internal/feature_config_condition_validator_unittest.cc
[modify] https://crrev.com/168444cf44dfed8b347a5fbaf4420a6733e11e2d/components/feature_engagement_tracker/internal/feature_engagement_tracker_impl.cc
[modify] https://crrev.com/168444cf44dfed8b347a5fbaf4420a6733e11e2d/components/feature_engagement_tracker/internal/feature_engagement_tracker_impl.h
[modify] https://crrev.com/168444cf44dfed8b347a5fbaf4420a6733e11e2d/components/feature_engagement_tracker/internal/feature_engagement_tracker_impl_unittest.cc
[modify] https://crrev.com/168444cf44dfed8b347a5fbaf4420a6733e11e2d/components/feature_engagement_tracker/internal/model.h
[modify] https://crrev.com/168444cf44dfed8b347a5fbaf4420a6733e11e2d/components/feature_engagement_tracker/internal/never_condition_validator.cc
[modify] https://crrev.com/168444cf44dfed8b347a5fbaf4420a6733e11e2d/components/feature_engagement_tracker/internal/never_condition_validator.h
[modify] https://crrev.com/168444cf44dfed8b347a5fbaf4420a6733e11e2d/components/feature_engagement_tracker/internal/never_condition_validator_unittest.cc
[modify] https://crrev.com/168444cf44dfed8b347a5fbaf4420a6733e11e2d/components/feature_engagement_tracker/internal/once_condition_validator.cc
[modify] https://crrev.com/168444cf44dfed8b347a5fbaf4420a6733e11e2d/components/feature_engagement_tracker/internal/once_condition_validator.h
[modify] https://crrev.com/168444cf44dfed8b347a5fbaf4420a6733e11e2d/components/feature_engagement_tracker/internal/once_condition_validator_unittest.cc

Status: Fixed (was: Started)
Components: Internals>FeatureEngagementTracker

Sign in to add a comment