         LeanPlumClient.shared.track(event: .openedNewTab, withParameters: ["Source": "Tab Tray"])
     }
 
+}
+
+extension TabTrayController: TabManagerDelegate {
+    func tabManager(_ tabManager: TabManager, didSelectedTabChange selected: Tab?, previous: Tab?) {}
+
+    func tabManager(_ tabManager: TabManager, willAddTab tab: Tab) {}
+
+    func tabManager(_ tabManager: TabManager, didAddTab tab: Tab) {}
+
+    func tabManager(_ tabManager: TabManager, willRemoveTab tab: Tab) {}
+
+    func tabManager(_ tabManager: TabManager, didRemoveTab tab: Tab) {}
+
+    func tabManagerDidRestoreTabs(_ tabManager: TabManager) {
+        self.emptyPrivateTabsView.isHidden = !self.privateTabsAreEmpty()
+    }
+
+    func tabManagerDidAddTabs(_ tabManager: TabManager) {}
+
+    func tabManagerDidRemoveAllTabs(_ tabManager: TabManager, toast: ButtonToast?) {
+        guard let toast = toast, privateMode else {
+            return
+        }
+        view.addSubview(toast)
+        toast.showToast(makeConstraints: { make in
+            make.left.right.equalTo(self.view)
+            make.bottom.equalTo(self.toolbar.snp.top)
+        })
+    }
 }
 
 extension TabTrayController: UITextFieldDelegate {


    fileprivate var descriptionLabel: UILabel = {
        let label = UILabel()
        label.textColor = UIColor.theme.tabTray.tabTitleText
        label.font = EmptyPrivateTabsViewUX.DescriptionFont
        label.textAlignment = .center
        label.numberOfLines = 0

fileprivate class EmptyPrivateTabsView: UIView {
    fileprivate lazy var titleLabel: UILabel = {
        let label = UILabel()
        label.textColor = UIColor.Photon.White100
        label.font = EmptyPrivateTabsViewUX.TitleFont
        label.textAlignment = .center
        return label
