1717//
1818
1919import Foundation
20+ import BrowserServicesKit
2021import Combine
2122import Common
23+ import FeatureFlags
2224import os. log
25+ import AppKit
2326
2427protocol PermissionManagerProtocol : AnyObject {
2528
@@ -39,13 +42,15 @@ protocol PermissionManagerProtocol: AnyObject {
3942final class PermissionManager : PermissionManagerProtocol {
4043
4144 private let store : PermissionStore
45+ private let featureFlagger : FeatureFlagger
4246 private var permissions = [ String: [ PermissionType: StoredPermission] ] ( )
4347
4448 private let permissionSubject = PassthroughSubject < PublishedPermission , Never > ( )
4549 var permissionPublisher : AnyPublisher < PublishedPermission , Never > { permissionSubject. eraseToAnyPublisher ( ) }
4650
47- init ( store: PermissionStore ) {
51+ init ( store: PermissionStore , featureFlagger : FeatureFlagger = NSApp . delegateTyped . featureFlagger ) {
4852 self . store = store
53+ self . featureFlagger = featureFlagger
4954 loadPermissions ( )
5055 }
5156
@@ -76,8 +81,11 @@ final class PermissionManager: PermissionManagerProtocol {
7681 }
7782
7883 func setPermission( _ decision: PersistedPermissionDecision , forDomain domain: String , permissionType: PermissionType ) {
79- assert ( permissionType. canPersistGrantedDecision || decision != . allow)
80- assert ( permissionType. canPersistDeniedDecision || decision != . deny)
84+
85+ if !featureFlagger. isFeatureOn ( . newPermissionView) {
86+ assert ( permissionType. canPersistGrantedDecision || decision != . allow)
87+ assert ( permissionType. canPersistDeniedDecision || decision != . deny)
88+ }
8189
8290 let storedPermission : StoredPermission
8391 let domain = domain. droppingWwwPrefix ( )
0 commit comments