Show SSL status in titlebar

This commit is contained in:
James Magahern
2021-06-14 18:09:33 -07:00
parent 6ae053ab67
commit c60df21c54
3 changed files with 106 additions and 5 deletions

View File

@@ -32,6 +32,7 @@ class BrowserViewController: UIViewController
private var loadingObservation: NSKeyValueObservation?
private var backButtonObservation: NSKeyValueObservation?
private var forwardButtonObservation: NSKeyValueObservation?
private var hasSecureContentObservation: NSKeyValueObservation?
private var activeTabObservation: AnyCancellable?
private var faviconObservation: AnyCancellable?
@@ -454,15 +455,21 @@ class BrowserViewController: UIViewController
// Back/forward observer
toolbarController.backButton.isEnabled = webView.canGoBack
backButtonObservation = webView.observe(\.canGoBack, changeHandler: { [toolbarController] (webView, observedChange) in
backButtonObservation = webView.observe(\.canGoBack, changeHandler: { [unowned self] (webView, observedChange) in
toolbarController.backButton.isEnabled = webView.canGoBack
})
toolbarController.forwardButton.isEnabled = webView.canGoForward
forwardButtonObservation = webView.observe(\.canGoForward, changeHandler: { [toolbarController] (webView, observedChange) in
forwardButtonObservation = webView.observe(\.canGoForward, changeHandler: { [unowned self] (webView, observedChange) in
toolbarController.forwardButton.isEnabled = webView.canGoForward
})
// Secure content
browserView.titlebarView.showsSecurityIndicator = webView.hasOnlySecureContent
hasSecureContentObservation = webView.observe(\.hasOnlySecureContent, changeHandler: { [unowned self] (webView, observedChange) in
browserView.titlebarView.showsSecurityIndicator = webView.hasOnlySecureContent
})
// Favicon observation
faviconObservation = tab.$favicon.receive(on: DispatchQueue.main)
.sink { [unowned self] _ in