• Charlie Hu's avatar
    [Document Policy] Supports runtime flag controlled default value · 8985886d
    Charlie Hu authored
    Example config in "document_policy_features.cc":
        {
          name: "DefaultValueFeatureForTest",
          document_policy_name: "_reserved",
          value_type: "Bool",
          default_value: "true",
          depends_on: [],
          default_value_behind_flag: [
            ["PaintHolding", "false"],
            ["ScriptStreaming", "true"],
          ]
        },
    
    Generated output:
    const DocumentPolicyFeatureInfoMap& GetDocumentPolicyFeatureInfoMap() {
      static const base::NoDestructor<DocumentPolicyFeatureInfoMap> feature_info_map([] {
        DocumentPolicyFeatureInfoMap map({        {
              mojom::DocumentPolicyFeature::kDefaultValueFeatureForTest,
              {
                "",
                PolicyValue::CreateBool(true)
              }
            }, ...});
    
            if (base::FeatureList::IsEnabled(features::kPaintHolding)) {
              map.insert_or_assign(
                mojom::DocumentPolicyFeature::kDefaultValueFeatureForTest,
                DocumentPolicyFeatureInfo {
                  "",
                  PolicyValue::CreateBool(false)
                }
              );
            } else if (base::FeatureList::IsEnabled(features::kScriptStreaming)) {
              map.insert_or_assign(
                mojom::DocumentPolicyFeature::kDefaultValueFeatureForTest,
                DocumentPolicyFeatureInfo {
                  "",
                  PolicyValue::CreateBool(true)
                }
              );
            }
        return map;
      }());
      return *feature_info_map;
    }
    
    Bug: 1166698
    Change-Id: Ib0bf5905ddcccface2673486181616662c6e2b7a
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2534612
    Commit-Queue: Charlie Hu <chenleihu@google.com>
    Reviewed-by: default avatarAlex Moshchuk <alexmos@chromium.org>
    Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
    Reviewed-by: default avatarIan Clelland <iclelland@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#843716}
    8985886d
features.h 16 KB