Resolves "New Tab" bug after web content process jettison

This commit is contained in:
2024-08-05 17:36:59 -07:00
parent 29057c8024
commit 69aa02e303
4 changed files with 32 additions and 9 deletions

View File

@@ -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
)
}
}