Enable embedder frame to override feature flags
Allow the embedder frame to specify a list of feature flags that should be overridden in addition to those enabled in the H user profile. This will be used in the Hypothesis LMS app to enable feature flags to be turned on at the level of an LMS app installation, rather than for individual users. The ability to override flags has been limited to embedders (in practice, our LMS app) to try and avoid a situation where arbitrary web pages enable, and become dependent upon, feature flags that we later remove. The flags coming from the embedder add to, rather than replacing, the profile flags. This has been done to avoid a confusing situation where a feature flag that is enabled for "everyone" in H actually ends up not being enabled for all users due to eg. the LMS app disabling it for certain installations. Part of https://github.com/hypothesis/client/issues/5803 - Change `ConfigFromHost` type to only include settings that can come from either the host frame or embedder frame. Settings that can only come from a specific context have been moved into the `ConfigFromAnnotator` or `ConfigFromEmbedder` types respectively. - Add `features` config to `ConfigFromEmbedder` - Add `features` store method which combines feature flags from profile and global settings - Replace some references to `Config*` types in `build-settings-test.js`. The type references were wrong because RPC calls return the `ConfigFromEmbedder` type, not `ConfigFromHost`.
Showing
Please register or sign in to comment