Resolves "New Tab" bug after web content process jettison
This commit is contained in:
@@ -19,12 +19,8 @@ class Tab: NSObject, SBRProcessBundleBridgeDelegate
|
||||
|
||||
public var tabInfo: TabInfo {
|
||||
get {
|
||||
TabInfo(
|
||||
title: loadedWebView?.title,
|
||||
urlString: loadedWebView?.url?.absoluteString ?? self.homeURL?.absoluteString,
|
||||
faviconData: self.favicon?.pngData(),
|
||||
identifier: self.identifier
|
||||
)
|
||||
updateMetadata()
|
||||
return _tabInfo
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,6 +39,8 @@ class Tab: NSObject, SBRProcessBundleBridgeDelegate
|
||||
}
|
||||
public var policyManager: ResourcePolicyManager
|
||||
|
||||
private var _tabInfo: TabInfo = TabInfo()
|
||||
|
||||
private var loadedWebView: WKWebView? = nil
|
||||
public var title: String? { get { tabInfo.title } }
|
||||
public var url: URL? {
|
||||
@@ -82,6 +80,7 @@ class Tab: NSObject, SBRProcessBundleBridgeDelegate
|
||||
@Published public var favicon: UIImage?
|
||||
|
||||
public var loadError: Error?
|
||||
public var contentProcessTerminated: Bool = false
|
||||
|
||||
private var faviconHost: String?
|
||||
private var faviconRequest: AnyCancellable?
|
||||
@@ -151,4 +150,15 @@ class Tab: NSObject, SBRProcessBundleBridgeDelegate
|
||||
.assign(to: \.favicon, on: self)
|
||||
}
|
||||
}
|
||||
|
||||
private func updateMetadata() {
|
||||
guard contentProcessTerminated == false else { return }
|
||||
|
||||
_tabInfo = TabInfo(
|
||||
title: loadedWebView?.title,
|
||||
urlString: loadedWebView?.url?.absoluteString ?? self.homeURL?.absoluteString,
|
||||
faviconData: self.favicon?.pngData(),
|
||||
identifier: self.identifier
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,10 @@ class TabController
|
||||
tabs.first { $0.identifier == identifier }
|
||||
}
|
||||
|
||||
func tab(forWebView webView: WKWebView) -> Tab? {
|
||||
tabs.first { $0.webView == webView }
|
||||
}
|
||||
|
||||
func createNewTab(url: URL?) -> Tab {
|
||||
return self.createNewTab(url: url, webViewConfiguration: nil)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user