     func updateToolbarStateForTraitCollection(_ newCollection: UITraitCollection, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator? = nil) {
         let showToolbar = shouldShowFooterForTraitCollection(newCollection)
         let showTopTabs = shouldShowTopTabsForTraitCollection(newCollection)
-
+        let shouldShowNewTabButton = profile.prefs.boolForKey(PrefsKeys.ShowNewTabToolbarButton) ?? (newTabUserResearch?.newTabState ?? false)
+        
         urlBar.topTabsIsShowing = showTopTabs
         urlBar.setShowToolbar(!showToolbar)
         toolbar?.addNewTabButton.isHidden = showToolbar

            toolbar?.applyUIMode(isPrivate: tabManager.selectedTab?.isPrivate ?? false)
            toolbar?.applyTheme()
            toolbar?.addNewTabButton.isHidden = true
            updateTabCountUsingTabManager(self.tabManager)
        }


        // No tab
        guard let tab = tabManager.selectedTab else {
            navigationToolbar.updateMiddleButtonState(.search)
            currentMiddleButtonState = .search
            return
        }
        
        // Tab with starting page
        if tab.isURLStartingPage {
            navigationToolbar.updateMiddleButtonState(.search)
            currentMiddleButtonState = .search
            return
        }
        
        let state: MiddleButtonState = shouldShowNewTabButton ? .newTab : (isLoading ? .stop : .reload)
        navigationToolbar.updateMiddleButtonState(state)
        currentMiddleButtonState = state
    }

    override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey: Any]?, context: UnsafeMutableRawPointer?) {
