@@ -11,6 +11,11 @@ export const stylePropsNames = [
1111 'aspect-ratio' ,
1212 'background' ,
1313 'border' ,
14+ 'border-top' ,
15+ 'border-bottom' ,
16+ 'border-left' ,
17+ 'border-right' ,
18+ 'border-color' ,
1419 'border-radius' ,
1520 'bottom' ,
1621 'box-shadow' ,
@@ -49,6 +54,7 @@ export const stylePropsNames = [
4954 'min-inline-size' ,
5055 'min-width' ,
5156 'opacity' ,
57+ 'order' ,
5258 'overflow' ,
5359 'overflow-anchor' ,
5460 'overflow-wrap' ,
@@ -127,8 +133,10 @@ export interface PermanentAdPlacesRule extends ExtVersionConstraints {
127133 divWrapperStyle ?: Record < StylePropName , string > ;
128134 wrapperStyle ?: Record < StylePropName , string > ;
129135 elementToMeasureSelector ?: string ;
136+ elementsToMeasureSelectors ?: Record < 'width' | 'height' , string > ;
130137 stylesOverrides ?: AdStylesOverrides [ ] ;
131138 shouldHideOriginal ?: boolean ;
139+ displayWidth ?: string ;
132140}
133141
134142export interface AdProvidersByDomainRule extends ExtVersionConstraints {
@@ -138,7 +146,9 @@ export interface AdProvidersByDomainRule extends ExtVersionConstraints {
138146
139147export interface AdProviderSelectorsRule extends ExtVersionConstraints {
140148 selectors : string [ ] ;
149+ negativeSelectors ?: string [ ] ;
141150 parentDepth ?: number ;
151+ enableForMises ?: boolean ;
142152}
143153
144154export interface AdProviderForAllSitesRule extends ExtVersionConstraints {
@@ -149,13 +159,22 @@ export interface ReplaceAdsUrlsBlacklistEntry extends ExtVersionConstraints {
149159 regexes : string [ ] ;
150160}
151161
162+ export interface ElementsToHideOrRemoveEntry extends ExtVersionConstraints {
163+ cssString : string ;
164+ parentDepth : number ;
165+ isMultiple : boolean ;
166+ urlRegexes : string [ ] ;
167+ shouldHide : boolean ;
168+ }
169+
152170const AD_PLACES_RULES_KEY = 'ad_places_rules' ;
153171const AD_PROVIDERS_BY_SITES_KEY = 'ad_providers_by_sites' ;
154172const AD_PROVIDERS_ALL_SITES_KEY = 'ad_providers_all_sites' ;
155173const AD_PROVIDERS_LIST_KEY = 'ad_providers_list' ;
156174const PERMANENT_AD_PLACES_RULES_KEY = 'permanent_ad_places_rules' ;
157175const PERMANENT_NATIVE_AD_PLACES_RULES_KEY = 'permanent_native_ad_places_rules' ;
158176const REPLACE_ADS_URLS_BLACKLIST_KEY = 'replace_ads_urls_blacklist' ;
177+ const ELEMENTS_TO_HIDE_OR_REMOVE_KEY = 'elements_to_hide_or_remove' ;
159178
160179export const adPlacesRulesMethods = objectStorageMethodsFactory < AdPlacesRule [ ] > ( AD_PLACES_RULES_KEY , [ ] ) ;
161180
@@ -181,6 +200,11 @@ export const replaceAdsUrlsBlacklistMethods = objectStorageMethodsFactory<Replac
181200 [ ]
182201) ;
183202
203+ export const elementsToHideOrRemoveMethods = objectStorageMethodsFactory < ElementsToHideOrRemoveEntry [ ] > (
204+ ELEMENTS_TO_HIDE_OR_REMOVE_KEY ,
205+ [ ]
206+ ) ;
207+
184208export const getAdProvidersForAllSites = async ( ) => redisClient . smembers ( AD_PROVIDERS_ALL_SITES_KEY ) ;
185209
186210export const addAdProvidersForAllSites = async ( providers : string [ ] ) =>
@@ -191,5 +215,19 @@ export const removeAdProvidersForAllSites = async (providers: string[]) =>
191215
192216const FALLBACK_VERSION = '0.0.0' ;
193217
194- export const filterByVersion = < T extends ExtVersionConstraints > ( rules : T [ ] , version ?: string ) =>
195- rules . filter ( ( { extVersion } ) => versionSatisfiesRange ( version ?? FALLBACK_VERSION , extVersion ) ) ;
218+ export function filterRules < T extends ExtVersionConstraints > ( rules : T [ ] , version : string | undefined ) : T [ ] ;
219+ export function filterRules < T extends ExtVersionConstraints & { enableForMises ?: boolean } > (
220+ rules : T [ ] ,
221+ version : string | undefined ,
222+ isMisesBrowser : boolean
223+ ) : T [ ] ;
224+ export function filterRules < T extends ExtVersionConstraints & { enableForMises ?: boolean } > (
225+ rules : T [ ] ,
226+ version : string | undefined ,
227+ isMisesBrowser = false
228+ ) {
229+ return rules . filter (
230+ ( { extVersion, enableForMises = true } ) =>
231+ versionSatisfiesRange ( version ?? FALLBACK_VERSION , extVersion ) && ( ! isMisesBrowser || enableForMises )
232+ ) ;
233+ }
0 commit comments