Fix crash, stale allowAllScripts and allowedOrigins

This commit is contained in:
James Magahern
2020-07-29 18:58:31 -07:00
parent 663dfcd2bb
commit c96cafd1ca
5 changed files with 38 additions and 17 deletions

View File

@@ -90,8 +90,9 @@ class ScriptPolicyViewController: UIViewController, UICollectionViewDelegate
private static let enableScriptsForTabItem: String = "enableScriptsForTab"
convenience init(policyManager: ResourcePolicyManager, hostOrigin: String, loadedScripts: Set<String>) {
convenience init(policyManager: ResourcePolicyManager, hostOrigin: String, loadedScripts: Set<String>, scriptsAllowedForTab: Bool) {
self.init(nibName: nil, bundle: nil)
allowScriptsForTab = scriptsAllowedForTab
let listConfig = UICollectionLayoutListConfiguration(appearance: .grouped)
let listLayout = UICollectionViewCompositionalLayout.list(using: listConfig)
@@ -117,7 +118,9 @@ class ScriptPolicyViewController: UIViewController, UICollectionViewDelegate
// Hide script origins
snapshot.deleteSections([ .origins ])
} else {
snapshot.appendSections([ .origins ])
if !snapshot.sectionIdentifiers.contains(.origins) {
snapshot.appendSections([ .origins ])
}
snapshot.appendItems(originItems, toSection: .origins)
}
@@ -177,9 +180,14 @@ class ScriptPolicyViewController: UIViewController, UICollectionViewDelegate
collectionView.delegate = self
var snapshot = dataSource.snapshot()
snapshot.appendSections([ .tabOptions, .origins ])
snapshot.appendSections([ .tabOptions ])
snapshot.appendItems([ Self.enableScriptsForTabItem ], toSection: .tabOptions)
snapshot.appendItems(originItems, toSection: .origins)
if !allowScriptsForTab {
snapshot.appendSections([ .origins ])
snapshot.appendItems(originItems, toSection: .origins)
}
dataSource.apply(snapshot)
self.dataSource = dataSource