diff --git a/firefox-ios/Client/Frontend/Browser/BrowserViewController/Extensions/BrowserViewController+FindInPage.swift b/firefox-ios/Client/Frontend/Browser/BrowserViewController/Extensions/BrowserViewController+FindInPage.swift index 853e8d49422ff..41b78dde6a8fc 100644 --- a/firefox-ios/Client/Frontend/Browser/BrowserViewController/Extensions/BrowserViewController+FindInPage.swift +++ b/firefox-ios/Client/Frontend/Browser/BrowserViewController/Extensions/BrowserViewController+FindInPage.swift @@ -34,19 +34,19 @@ extension BrowserViewController { // Used only on iOS 15 private func useCustomFindInteraction(isVisible: Bool, tab: Tab? = nil) { if isVisible { - if findInPageBar == nil { + if iOS15FindInPageBar == nil { setupFindInPage() } - self.findInPageBar?.becomeFirstResponder() - } else if let findInPageBar = self.findInPageBar { + self.iOS15FindInPageBar?.becomeFirstResponder() + } else if let findInPageBar = self.iOS15FindInPageBar { removeFindInPage(findInPageBar, tab: tab) } } private func setupFindInPage() { let findInPageBar = FindInPageBar() - self.findInPageBar = findInPageBar + self.iOS15FindInPageBar = findInPageBar findInPageBar.delegate = self bottomContentStackView.addArrangedViewToBottom(findInPageBar, animated: false, completion: { @@ -74,7 +74,7 @@ extension BrowserViewController { guard let webView = tab?.webView else { return } webView.evaluateJavascriptInDefaultContentWorld("__firefox__.findDone()") bottomContentStackView.removeArrangedView(findInPageBar) - self.findInPageBar = nil + self.iOS15FindInPageBar = nil updateConstraintsForFindInPageChanges() } @@ -93,12 +93,12 @@ extension BrowserViewController: FindInPageBarDelegate, FindInPageHelperDelegate } func findInPage(didFindNextWithText text: String) { - findInPageBar?.endEditing(true) + iOS15FindInPageBar?.endEditing(true) find(text, function: "findNext") } func findInPage(didFindPreviousWithText text: String) { - findInPageBar?.endEditing(true) + iOS15FindInPageBar?.endEditing(true) find(text, function: "findPrevious") } @@ -113,10 +113,10 @@ extension BrowserViewController: FindInPageBarDelegate, FindInPageHelperDelegate } func findInPageHelper(didUpdateCurrentResult currentResult: Int) { - findInPageBar?.currentResult = currentResult + iOS15FindInPageBar?.currentResult = currentResult } func findInPageHelper(didUpdateTotalResults totalResults: Int) { - findInPageBar?.totalResults = totalResults + iOS15FindInPageBar?.totalResults = totalResults } } diff --git a/firefox-ios/Client/Frontend/Browser/BrowserViewController/Views/BrowserViewController.swift b/firefox-ios/Client/Frontend/Browser/BrowserViewController/Views/BrowserViewController.swift index c88945398c349..3885caea212ad 100644 --- a/firefox-ios/Client/Frontend/Browser/BrowserViewController/Views/BrowserViewController.swift +++ b/firefox-ios/Client/Frontend/Browser/BrowserViewController/Views/BrowserViewController.swift @@ -101,7 +101,7 @@ class BrowserViewController: UIViewController, var searchController: SearchViewController? var searchSessionState: SearchSessionState? var searchLoader: SearchLoader? - var findInPageBar: FindInPageBar? + var iOS15FindInPageBar: FindInPageBar? /* TODO: Remove once we drop iOS 15 support */ var zoomPageBar: ZoomPageBar? var addressBarPanGestureHandler: AddressBarPanGestureHandler? var microsurvey: MicrosurveyPromptView? @@ -4438,7 +4438,7 @@ extension BrowserViewController: LegacyTabDelegate { func tab(_ tab: Tab, didSelectFindInPageForSelection selection: String) { updateFindInPageVisibility(isVisible: true, withSearchText: selection) - findInPageBar?.text = selection + iOS15FindInPageBar?.text = selection } func tab(_ tab: Tab, didSelectSearchWithFirefoxForSelection selection: String) { @@ -5051,7 +5051,7 @@ extension BrowserViewController: KeyboardHelperDelegate { ) } tabManager.selectedTab?.setFindInPage(isBottomSearchBar: isBottomSearchBar, - doesFindInPageBarExist: findInPageBar != nil) + doesFindInPageBarExist: iOS15FindInPageBar != nil) guard isSwipingTabsEnabled else { return } addressBarPanGestureHandler?.enablePanGestureOnHomepageIfNeeded() } diff --git a/firefox-ios/Client/PrivacyWindowHelper.swift b/firefox-ios/Client/PrivacyWindowHelper.swift index ff388bfdbcaf5..63e9abeadf683 100644 --- a/firefox-ios/Client/PrivacyWindowHelper.swift +++ b/firefox-ios/Client/PrivacyWindowHelper.swift @@ -16,7 +16,9 @@ final class PrivacyWindowHelper { privacyWindow?.rootViewController?.view.backgroundColor = color // Set the privacy window level to be above alert windows (highest in importance). privacyWindow?.windowLevel = .alert + 1 - privacyWindow?.makeKeyAndVisible() + // Avoid makeKeyAndVisible(), becoming key steals first responder + // and causses iOS keyboard to dismiss on background/foreground in private mode. + privacyWindow?.isHidden = false } @MainActor