// // TabController.swift // SBrowser // // Created by James Magahern on 7/30/20. // import Foundation class TabController { var tabs: [Tab] = [] var policyManager = ResourcePolicyManager() init() { // TODO: load tabs from disk. _ = createNewTab(url: nil) } func tab(forURL url: URL) -> Tab? { tabs.first { $0.url == url } } func tab(forIdentifier identifier: UUID) -> Tab? { tabs.first { $0.identifier == identifier } } func createNewTab(url: URL?) -> Tab { let tab = Tab(url: url, policyManager: policyManager) tabs.append(tab) return tab } func closeTab(_ tab: Tab) { if let index = tabs.firstIndex(of: tab) { tabs.remove(at: index) } } }