• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2023 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.adservices.service.measurement;
18 
19 import com.android.adservices.service.Flags;
20 
21 /** Class for cached Phenotype flags. */
22 public class CachedFlags {
23     private final boolean mEnableSessionStableKillSwitches;
24     private final boolean mApiRegisterSourceKillSwitch;
25     private final boolean mApiRegisterSourcesKillSwitch;
26     private final boolean mApiRegisterWebSourceKillSwitch;
27     private final boolean mApiRegisterTriggerKillSwitch;
28     private final boolean mApiRegisterWebTriggerKillSwitch;
29     private final boolean mApiDeleteRegistrationsKillSwitch;
30     private final boolean mApiStatusKillSwitch;
31     private final boolean mEnforceForegroundStatusForMeasurementRegisterWebSource;
32     private final boolean mEnforceForegroundStatusForMeasurementRegisterWebTrigger;
33     private final boolean mEnforceForegroundStatusForMeasurementRegisterSource;
34     private final boolean mEnforceForegroundStatusForMeasurementRegisterTrigger;
35     private final boolean mEnforceForegroundStatusForMeasurementRegisterSources;
36     private final boolean mEnforceForegroundStatusForMeasurementDeleteRegistrations;
37     private final boolean mEnforceForegroundStatusForMeasurementStatus;
38     private final boolean mEnableApiStatusAllowListCheck;
39     private final boolean mMeasurementEnablePackageNameUidCheck;
40     private final String mApiAppAllowList;
41     private final String mApiAppBlockList;
42     private final String mWebContextClientAppAllowList;
43     private final boolean mEnableMsmtRegisterSourcePackageDenyList;
44 
45     private final Flags mFlags;
46 
CachedFlags(Flags flags)47     public CachedFlags(Flags flags) {
48         mFlags = flags;
49         mEnableSessionStableKillSwitches = flags.getMeasurementEnableSessionStableKillSwitches();
50         mApiRegisterSourceKillSwitch = flags.getMeasurementApiRegisterSourceKillSwitch();
51         mApiRegisterSourcesKillSwitch = flags.getMeasurementApiRegisterSourcesKillSwitch();
52         mApiRegisterWebSourceKillSwitch = flags.getMeasurementApiRegisterWebSourceKillSwitch();
53         mApiRegisterTriggerKillSwitch = flags.getMeasurementApiRegisterTriggerKillSwitch();
54         mApiRegisterWebTriggerKillSwitch = flags.getMeasurementApiRegisterWebTriggerKillSwitch();
55         mApiDeleteRegistrationsKillSwitch = flags.getMeasurementApiDeleteRegistrationsKillSwitch();
56         mApiStatusKillSwitch = flags.getMeasurementApiStatusKillSwitch();
57         mEnforceForegroundStatusForMeasurementRegisterWebTrigger =
58                 flags.getEnforceForegroundStatusForMeasurementRegisterWebTrigger();
59         mEnforceForegroundStatusForMeasurementRegisterWebSource =
60                 flags.getEnforceForegroundStatusForMeasurementRegisterWebSource();
61         mEnforceForegroundStatusForMeasurementRegisterTrigger =
62                 flags.getEnforceForegroundStatusForMeasurementRegisterTrigger();
63         mEnforceForegroundStatusForMeasurementRegisterSource =
64                 flags.getEnforceForegroundStatusForMeasurementRegisterSource();
65         mEnforceForegroundStatusForMeasurementRegisterSources =
66                 flags.getEnforceForegroundStatusForMeasurementRegisterSources();
67         mEnforceForegroundStatusForMeasurementDeleteRegistrations =
68                 flags.getEnforceForegroundStatusForMeasurementDeleteRegistrations();
69         mEnforceForegroundStatusForMeasurementStatus =
70                 flags.getEnforceForegroundStatusForMeasurementStatus();
71         mApiAppAllowList = flags.getMsmtApiAppAllowList();
72         mApiAppBlockList = flags.getMsmtApiAppBlockList();
73         mWebContextClientAppAllowList = flags.getWebContextClientAppAllowList();
74         mEnableApiStatusAllowListCheck = flags.getMsmtEnableApiStatusAllowListCheck();
75         mEnableMsmtRegisterSourcePackageDenyList =
76                 flags.getEnableMsmtRegisterSourcePackageDenyList();
77         mMeasurementEnablePackageNameUidCheck = flags.getMeasurementEnablePackageNameUidCheck();
78     }
79 
getMeasurementApiRegisterSourceKillSwitch()80     public boolean getMeasurementApiRegisterSourceKillSwitch() {
81         return mEnableSessionStableKillSwitches
82                 ? mApiRegisterSourceKillSwitch
83                 : mFlags.getMeasurementApiRegisterSourceKillSwitch();
84     }
85 
getMeasurementApiRegisterSourcesKillSwitch()86     public boolean getMeasurementApiRegisterSourcesKillSwitch() {
87         return mEnableSessionStableKillSwitches
88                 ? mApiRegisterSourcesKillSwitch
89                 : mFlags.getMeasurementApiRegisterSourcesKillSwitch();
90     }
91 
getMeasurementApiRegisterWebSourceKillSwitch()92     public boolean getMeasurementApiRegisterWebSourceKillSwitch() {
93         return mEnableSessionStableKillSwitches
94                 ? mApiRegisterWebSourceKillSwitch
95                 : mFlags.getMeasurementApiRegisterWebSourceKillSwitch();
96     }
97 
getMeasurementApiRegisterTriggerKillSwitch()98     public boolean getMeasurementApiRegisterTriggerKillSwitch() {
99         return mEnableSessionStableKillSwitches
100                 ? mApiRegisterTriggerKillSwitch
101                 : mFlags.getMeasurementApiRegisterTriggerKillSwitch();
102     }
103 
getMeasurementApiRegisterWebTriggerKillSwitch()104     public boolean getMeasurementApiRegisterWebTriggerKillSwitch() {
105         return mEnableSessionStableKillSwitches
106                 ? mApiRegisterWebTriggerKillSwitch
107                 : mFlags.getMeasurementApiRegisterWebTriggerKillSwitch();
108     }
109 
getMeasurementApiDeleteRegistrationsKillSwitch()110     public boolean getMeasurementApiDeleteRegistrationsKillSwitch() {
111         return mEnableSessionStableKillSwitches
112                 ? mApiDeleteRegistrationsKillSwitch
113                 : mFlags.getMeasurementApiDeleteRegistrationsKillSwitch();
114     }
115 
getMeasurementApiStatusKillSwitch()116     public boolean getMeasurementApiStatusKillSwitch() {
117         return mEnableSessionStableKillSwitches
118                 ? mApiStatusKillSwitch
119                 : mFlags.getMeasurementApiStatusKillSwitch();
120     }
121 
getEnforceForegroundStatusForMeasurementRegisterSource()122     public boolean getEnforceForegroundStatusForMeasurementRegisterSource() {
123         return mEnableSessionStableKillSwitches
124                 ? mEnforceForegroundStatusForMeasurementRegisterSource
125                 : mFlags.getEnforceForegroundStatusForMeasurementRegisterSource();
126     }
127 
getEnforceForegroundStatusForMeasurementRegisterTrigger()128     public boolean getEnforceForegroundStatusForMeasurementRegisterTrigger() {
129         return mEnableSessionStableKillSwitches
130                 ? mEnforceForegroundStatusForMeasurementRegisterTrigger
131                 : mFlags.getEnforceForegroundStatusForMeasurementRegisterTrigger();
132     }
133 
getEnforceForegroundStatusForMeasurementRegisterSources()134     public boolean getEnforceForegroundStatusForMeasurementRegisterSources() {
135         return mEnableSessionStableKillSwitches
136                 ? mEnforceForegroundStatusForMeasurementRegisterSources
137                 : mFlags.getEnforceForegroundStatusForMeasurementRegisterSources();
138     }
139 
getEnforceForegroundStatusForMeasurementRegisterWebSource()140     public boolean getEnforceForegroundStatusForMeasurementRegisterWebSource() {
141         return mEnableSessionStableKillSwitches
142                 ? mEnforceForegroundStatusForMeasurementRegisterWebSource
143                 : mFlags.getEnforceForegroundStatusForMeasurementRegisterWebSource();
144     }
145 
getEnforceForegroundStatusForMeasurementRegisterWebTrigger()146     public boolean getEnforceForegroundStatusForMeasurementRegisterWebTrigger() {
147         return mEnableSessionStableKillSwitches
148                 ? mEnforceForegroundStatusForMeasurementRegisterWebTrigger
149                 : mFlags.getEnforceForegroundStatusForMeasurementRegisterWebTrigger();
150     }
151 
getEnforceForegroundStatusForMeasurementDeleteRegistrations()152     public boolean getEnforceForegroundStatusForMeasurementDeleteRegistrations() {
153         return mEnableSessionStableKillSwitches
154                 ? mEnforceForegroundStatusForMeasurementDeleteRegistrations
155                 : mFlags.getEnforceForegroundStatusForMeasurementDeleteRegistrations();
156     }
157 
getMsmtEnableApiStatusAllowListCheck()158     public boolean getMsmtEnableApiStatusAllowListCheck() {
159         return mEnableSessionStableKillSwitches
160                 ? mEnableApiStatusAllowListCheck
161                 : mFlags.getMsmtEnableApiStatusAllowListCheck();
162     }
163 
getEnforceForegroundStatusForMeasurementStatus()164     public boolean getEnforceForegroundStatusForMeasurementStatus() {
165         return mEnableSessionStableKillSwitches
166                 ? mEnforceForegroundStatusForMeasurementStatus
167                 : mFlags.getEnforceForegroundStatusForMeasurementStatus();
168     }
169 
getMsmtApiAppAllowList()170     public String getMsmtApiAppAllowList() {
171         return mEnableSessionStableKillSwitches
172                 ? mApiAppAllowList
173                 : mFlags.getMsmtApiAppAllowList();
174     }
175 
getMsmtApiAppBlockList()176     public String getMsmtApiAppBlockList() {
177         return mEnableSessionStableKillSwitches
178                 ? mApiAppBlockList
179                 : mFlags.getMsmtApiAppBlockList();
180     }
181 
getWebContextClientAppAllowList()182     public String getWebContextClientAppAllowList() {
183         return mEnableSessionStableKillSwitches
184                 ? mWebContextClientAppAllowList
185                 : mFlags.getWebContextClientAppAllowList();
186     }
187 
getEnableMsmtRegisterSourcePackageDenyList()188     public boolean getEnableMsmtRegisterSourcePackageDenyList() {
189         return mEnableSessionStableKillSwitches
190                 ? mEnableMsmtRegisterSourcePackageDenyList
191                 : mFlags.getEnableMsmtRegisterSourcePackageDenyList();
192     }
193 
getMeasurementEnablePackageNameUidCheck()194     public boolean getMeasurementEnablePackageNameUidCheck() {
195         return mEnableSessionStableKillSwitches
196                 ? mMeasurementEnablePackageNameUidCheck
197                 : mFlags.getMeasurementEnablePackageNameUidCheck();
198     }
199 }
200