Script origins control inline policy, all scripts allowed for tab

This commit is contained in:
James Magahern
2020-07-29 17:46:53 -07:00
parent f330293606
commit 32cdcf71f7
14 changed files with 301 additions and 57 deletions

View File

@@ -10,28 +10,31 @@ import Foundation
class ResourcePolicyManager: NSObject, SBRResourceOriginPolicyDataSource
{
static let AllowedOriginsDefaultsKey = "allowedOrigins"
private var allowedOriginSet: Set<String> = {
if let allowedOrigins = UserDefaults.standard.array(forKey: AllowedOriginsDefaultsKey) as? [String] {
return Set<String>(allowedOrigins)
static let EnabledOriginsDefaultsKey = "enabledOrigins"
private static func stringSetForKey(_ key: String) -> Set<String> {
if let set = UserDefaults.standard.array(forKey: key) as? [String] {
return Set<String>(set)
}
return Set<String>()
}()
func allowedOriginsForScriptResources() -> Set<String>
{
allowedOriginSet
}
func allowOriginToLoadScriptResources(_ origin: String)
{
private static func saveStringSet(_ set: Set<String>, forKey key: String) {
UserDefaults.standard.set(Array(set), forKey: key)
}
private var allowedOriginSet: Set<String> = stringSetForKey(AllowedOriginsDefaultsKey) {
didSet { Self.saveStringSet(allowedOriginSet, forKey: Self.AllowedOriginsDefaultsKey) }
}
func allowedOriginsForScriptResources() -> Set<String> { allowedOriginSet }
func allowOriginToLoadScriptResources(_ origin: String) {
allowedOriginSet.formUnion([ origin ])
UserDefaults.standard.set(Array(allowedOriginSet), forKey: Self.AllowedOriginsDefaultsKey)
}
func disallowOriginToLoadScriptResources(_ origin: String)
{
func disallowOriginToLoadScriptResources(_ origin: String) {
allowedOriginSet.remove(origin)
UserDefaults.standard.set(Array(allowedOriginSet), forKey: Self.AllowedOriginsDefaultsKey)
}
}