Skip to content

Commit 1d21148

Browse files
Refactor NO_TICKET Various improvements (#31253)
* Remove unused code * Fix spelling * Use guard * Fix comment * Rename pageActionStack to trailingPageActionStack * Add a11y ids to BVC elements * Update firefox-ios/Client/Frontend/Browser/Toolbars/AddressToolbarContainer.swift Co-authored-by: Cyndi Chin <[email protected]> --------- Co-authored-by: Cyndi Chin <[email protected]>
1 parent 7c7f6dc commit 1d21148

File tree

4 files changed

+51
-33
lines changed

4 files changed

+51
-33
lines changed

BrowserKit/Sources/ToolbarKit/AddressToolbar/BrowserAddressToolbar.swift

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import Common
88
/// Simple address toolbar implementation.
99
/// +-------------+--------------------------------------------------------+----------+
1010
/// | navigation | [ leading ] indicators url [ trailing ] | browser |
11-
/// | actions | [ page ] [ page ] | browser |
12-
/// | | [ actions ] [ actions ] | actions |
11+
/// | actions | [ page ] [ page ] | actions |
12+
/// | | [ actions ] [ actions ] | |
1313
/// +-------------+--------------------------------------------------------+----------+
1414
public class BrowserAddressToolbar: UIView,
1515
Notifiable,
@@ -48,7 +48,7 @@ public class BrowserAddressToolbar: UIView,
4848

4949
private lazy var leadingPageActionStack: UIStackView = .build()
5050

51-
private lazy var pageActionStack: UIStackView = .build { view in
51+
private lazy var trailingPageActionStack: UIStackView = .build { view in
5252
view.spacing = UX.actionSpacing
5353
}
5454

@@ -123,7 +123,7 @@ public class BrowserAddressToolbar: UIView,
123123
trailingSpace: CGFloat,
124124
isUnifiedSearchEnabled: Bool,
125125
animated: Bool) {
126-
[navigationActionStack, leadingPageActionStack, pageActionStack, browserActionStack].forEach {
126+
[navigationActionStack, leadingPageActionStack, trailingPageActionStack, browserActionStack].forEach {
127127
$0.isHidden = config.uxConfiguration.scrollAlpha.isZero
128128
}
129129
if #available(iOS 26.0, *) {
@@ -193,7 +193,7 @@ public class BrowserAddressToolbar: UIView,
193193
locationContainer.addSubview(leadingPageActionStack)
194194
locationContainer.addSubview(locationView)
195195
locationContainer.addSubview(locationDividerView)
196-
locationContainer.addSubview(pageActionStack)
196+
locationContainer.addSubview(trailingPageActionStack)
197197

198198
toolbarContainerView.addSubview(navigationActionStack)
199199
toolbarContainerView.addSubview(locationContainer)
@@ -214,7 +214,7 @@ public class BrowserAddressToolbar: UIView,
214214

215215
[navigationActionStack,
216216
leadingPageActionStack,
217-
pageActionStack,
217+
trailingPageActionStack,
218218
browserActionStack].forEach(setZeroWidthConstraint)
219219

220220
toolbarTopBorderHeightConstraint = toolbarTopBorderView.heightAnchor.constraint(equalToConstant: 0)
@@ -269,12 +269,12 @@ public class BrowserAddressToolbar: UIView,
269269
locationView.bottomAnchor.constraint(equalTo: locationContainer.bottomAnchor),
270270

271271
locationDividerView.topAnchor.constraint(equalTo: locationContainer.topAnchor),
272-
locationDividerView.trailingAnchor.constraint(equalTo: pageActionStack.leadingAnchor),
272+
locationDividerView.trailingAnchor.constraint(equalTo: trailingPageActionStack.leadingAnchor),
273273
locationDividerView.bottomAnchor.constraint(equalTo: locationContainer.bottomAnchor),
274274

275-
pageActionStack.topAnchor.constraint(equalTo: locationContainer.topAnchor),
276-
pageActionStack.trailingAnchor.constraint(equalTo: locationContainer.trailingAnchor),
277-
pageActionStack.bottomAnchor.constraint(equalTo: locationContainer.bottomAnchor),
275+
trailingPageActionStack.topAnchor.constraint(equalTo: locationContainer.topAnchor),
276+
trailingPageActionStack.trailingAnchor.constraint(equalTo: locationContainer.trailingAnchor),
277+
trailingPageActionStack.bottomAnchor.constraint(equalTo: locationContainer.bottomAnchor),
278278

279279
browserActionStack.topAnchor.constraint(equalTo: toolbarContainerView.topAnchor),
280280
browserActionStack.bottomAnchor.constraint(equalTo: toolbarContainerView.bottomAnchor),
@@ -319,7 +319,7 @@ public class BrowserAddressToolbar: UIView,
319319

320320
// Page actions
321321
updateActionStack(stackView: leadingPageActionStack, toolbarElements: config.leadingPageActions)
322-
updateActionStack(stackView: pageActionStack, toolbarElements: config.trailingPageActions)
322+
updateActionStack(stackView: trailingPageActionStack, toolbarElements: config.trailingPageActions)
323323

324324
updateActionSpacing(uxConfig: config.uxConfiguration)
325325
updateToolbarLayout(animated: animated)
@@ -329,7 +329,7 @@ public class BrowserAddressToolbar: UIView,
329329
let stacks = browserActionStack.arrangedSubviews +
330330
navigationActionStack.arrangedSubviews +
331331
leadingPageActionStack.arrangedSubviews +
332-
pageActionStack.arrangedSubviews
332+
trailingPageActionStack.arrangedSubviews
333333
let isAnimationEnabled = !UIAccessibility.isReduceMotionEnabled && animated
334334

335335
if isAnimationEnabled {
@@ -416,7 +416,7 @@ public class BrowserAddressToolbar: UIView,
416416
leadingLocationContainerConstraint?.constant = hasNavigationActions && isRegular ? -UX.horizontalSpace : 0
417417

418418
// Page action spacing
419-
let hasPageActions = !pageActionStack.arrangedSubviews.isEmpty
419+
let hasPageActions = !trailingPageActionStack.arrangedSubviews.isEmpty
420420
dividerWidthConstraint?.constant = hasPageActions ? uxConfig.browserActionsAddressBarDividerWidth : 0
421421
}
422422

firefox-ios/Client/Application/AccessibilityIdentifiers.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,13 @@ struct AccessibilityIdentifiers {
6464
struct WebView {
6565
static let documentLoadingLabel = "WebView.documentLoadingLabel"
6666
}
67+
68+
static let overKeyboardContainer = "Browser.overKeyboardContainer"
69+
static let headerContainer = "Browser.headerContainer"
70+
static let bottomContainer = "Browser.bottomContainer"
71+
static let bottomContentStackView = "Browser.bottomContentStackView"
72+
static let contentContainer = "Browser.contentContainer"
73+
static let statusBarOverlay = "Browser.statusBarOverlay"
6774
}
6875

6976
struct ContextualHints {

firefox-ios/Client/Frontend/Browser/BrowserViewController/Views/BrowserViewController.swift

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,9 @@ class BrowserViewController: UIViewController,
134134
// MARK: Lazy loading UI elements
135135
private var documentLoadingView: TemporaryDocumentLoadingView?
136136
private(set) lazy var mailtoLinkHandler = MailtoLinkHandler()
137-
private lazy var statusBarOverlay: StatusBarOverlay = .build { _ in }
137+
private lazy var statusBarOverlay: StatusBarOverlay = .build { view in
138+
view.accessibilityIdentifier = AccessibilityIdentifiers.Browser.statusBarOverlay
139+
}
138140
private var statusBarOverlayConstraints = [NSLayoutConstraint]()
139141
private(set) lazy var addressToolbarContainer: AddressToolbarContainer = .build(nil, {
140142
AddressToolbarContainer(isMinimalAddressBarEnabled: self.isMinimalAddressBarEnabled,
@@ -144,11 +146,15 @@ class BrowserViewController: UIViewController,
144146
private(set) lazy var overlayManager: OverlayModeManager = DefaultOverlayModeManager()
145147

146148
// Header stack view can contain the top url bar, top reader mode, top ZoomPageBar
147-
private(set) lazy var header: BaseAlphaStackView = .build { _ in }
149+
private(set) lazy var header: BaseAlphaStackView = .build { view in
150+
view.accessibilityIdentifier = AccessibilityIdentifiers.Browser.headerContainer
151+
}
148152

149153
// OverKeyboardContainer stack view contains
150154
// the bottom reader mode, the bottom url bar and the ZoomPageBar
151-
private(set) lazy var overKeyboardContainer: BaseAlphaStackView = .build { _ in }
155+
private(set) lazy var overKeyboardContainer: BaseAlphaStackView = .build { view in
156+
view.accessibilityIdentifier = AccessibilityIdentifiers.Browser.overKeyboardContainer
157+
}
152158

153159
// Constraints used to show/hide toolbars
154160
var headerTopConstraint: Constraint?
@@ -170,16 +176,21 @@ class BrowserViewController: UIViewController,
170176
}
171177

172178
// BottomContainer stack view contains toolbar
173-
lazy var bottomContainer: BaseAlphaStackView = .build { _ in }
179+
lazy var bottomContainer: BaseAlphaStackView = .build { view in
180+
view.accessibilityIdentifier = AccessibilityIdentifiers.Browser.bottomContainer
181+
}
174182

175183
// Alert content that appears on top of the content
176184
// ex: Find In Page, SnackBar from LoginsHelper
177185
private(set) lazy var bottomContentStackView: BaseAlphaStackView = .build { stackview in
178186
stackview.isClearBackground = true
187+
stackview.accessibilityIdentifier = AccessibilityIdentifiers.Browser.bottomContentStackView
179188
}
180189

181190
// The content container contains the homepage, error page or webview. Embedded by the coordinator.
182-
private(set) lazy var contentContainer: ContentContainer = .build { _ in }
191+
private(set) lazy var contentContainer: ContentContainer = .build { view in
192+
view.accessibilityIdentifier = AccessibilityIdentifiers.Browser.contentContainer
193+
}
183194

184195
// A view for displaying a preview of the web page.
185196
private lazy var webPagePreview: TabWebViewPreview = .build {

firefox-ios/Client/Frontend/Browser/Toolbars/AddressToolbarContainer.swift

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ final class AddressToolbarContainer: UIView,
221221
guard #available(iOS 26.0, *), let windowUUID else { return 0 }
222222

223223
let isEditingAddress = state?.addressToolbar.isEditing == true
224-
let shoudShowKeyboard = state?.addressToolbar.shouldShowKeyboard
224+
let shouldShowKeyboard = state?.addressToolbar.shouldShowKeyboard
225225
let isBottomToolbar = state?.toolbarPosition == .bottom
226226
let shouldAdjustForAccessory = hasAccessoryView &&
227227
!isEditingAddress &&
@@ -231,7 +231,7 @@ final class AddressToolbarContainer: UIView,
231231

232232
/// We want to check here if the keyboard accessory view state has changed
233233
/// To avoid spamming redux actions.
234-
guard hasAccessoryView != shoudShowKeyboard else { return accessoryViewOffset }
234+
guard hasAccessoryView != shouldShowKeyboard else { return accessoryViewOffset }
235235
store.dispatch(
236236
ToolbarAction(
237237
shouldShowKeyboard: hasAccessoryView,
@@ -459,19 +459,19 @@ final class AddressToolbarContainer: UIView,
459459
}
460460

461461
private func setupSkeletonAddressBarsLayout() {
462-
if toolbarHelper.isSwipingTabsEnabled {
463-
NSLayoutConstraint.activate([
464-
leftSkeletonAddressBar.topAnchor.constraint(equalTo: topAnchor),
465-
leftSkeletonAddressBar.trailingAnchor.constraint(equalTo: leadingAnchor),
466-
leftSkeletonAddressBar.bottomAnchor.constraint(equalTo: bottomAnchor),
467-
leftSkeletonAddressBar.widthAnchor.constraint(equalTo: widthAnchor, constant: -UX.skeletonBarWidthOffset),
468-
469-
rightSkeletonAddressBar.topAnchor.constraint(equalTo: topAnchor),
470-
rightSkeletonAddressBar.leadingAnchor.constraint(equalTo: trailingAnchor),
471-
rightSkeletonAddressBar.bottomAnchor.constraint(equalTo: bottomAnchor),
472-
rightSkeletonAddressBar.widthAnchor.constraint(equalTo: widthAnchor, constant: -UX.skeletonBarWidthOffset)
473-
])
474-
}
462+
guard toolbarHelper.isSwipingTabsEnabled else { return }
463+
464+
NSLayoutConstraint.activate([
465+
leftSkeletonAddressBar.topAnchor.constraint(equalTo: topAnchor),
466+
leftSkeletonAddressBar.trailingAnchor.constraint(equalTo: leadingAnchor),
467+
leftSkeletonAddressBar.bottomAnchor.constraint(equalTo: bottomAnchor),
468+
leftSkeletonAddressBar.widthAnchor.constraint(equalTo: widthAnchor, constant: -UX.skeletonBarWidthOffset),
469+
470+
rightSkeletonAddressBar.topAnchor.constraint(equalTo: topAnchor),
471+
rightSkeletonAddressBar.leadingAnchor.constraint(equalTo: trailingAnchor),
472+
rightSkeletonAddressBar.bottomAnchor.constraint(equalTo: bottomAnchor),
473+
rightSkeletonAddressBar.widthAnchor.constraint(equalTo: widthAnchor, constant: -UX.skeletonBarWidthOffset)
474+
])
475475
}
476476

477477
private func updateProgressBarPosition(_ position: AddressToolbarPosition) {

0 commit comments

Comments
 (0)