Script origins control inline policy, all scripts allowed for tab
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user