Skip to content

Conversation

@Cramsden
Copy link
Contributor

📜 Tickets

Jira ticket

💡 Description

Remove Equatable from AppState and redux states that are not using Equatable for naive diffing. These states don't require equatable for any reason and will make aspects of Swift 6 migration much easier without a larger Tab refactor.

🎥 Demos

Before After
Demo

📝 Checklist

  • I filled in the ticket numbers and a description of my work
  • I updated the PR name to follow our PR naming guidelines
  • I ensured unit tests pass and wrote tests for new code
  • If working on UI, I checked and implemented accessibility (Dynamic Text and VoiceOver)
  • If adding telemetry, I read the data stewardship requirements and will request a data review
  • If adding or modifying strings, I read the guidelines and will request a string review from l10n
  • If needed, I updated documentation and added comments to complex code
  • If needed, I added a backport comment (example @Mergifyio backport release/v150.0)

Copy link
Contributor

@lmarceau lmarceau left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 🎖️

@lmarceau
Copy link
Contributor

Should we point towards the epic branch for this PR?

Copy link
Collaborator

@ih-codes ih-codes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! +1 to @lmarceau 's comment about pointing to the migration branch this week.

@Cramsden Cramsden changed the base branch from main to epic-branch/swift-migration September 22, 2025 17:13
@mobiletest-ci-bot
Copy link

Messages
📖 Project coverage: 38.28%

💪 Quality guardian

5 tests files modified. You're a champion of test coverage! 🚀

💬 Description craftsman

Great PR description! Reviewers salute you 🫡

Client.app: Coverage: 37.11

File Coverage
OnboardingViewControllerState.swift 0.0% ⚠️
PasswordGeneratorState.swift 81.67%
BrowserViewControllerState.swift 53.31%
ThemeSettingsState.swift 70.54%
ToolbarState.swift 92.06%
MicrosurveyState.swift 94.92%
ShareType.swift 47.5% ⚠️
TermsOfUseState.swift 0.0% ⚠️
NativeErrorPageState.swift 92.86%
TabPeekState.swift 58.82%
SearchEngineSelectionState.swift 94.37%
BrowserNavigationType.swift 100.0%
Route.swift 100.0%
MainMenuState.swift 37.09% ⚠️
RemoteTabsPanelState.swift 85.22%
TrackingProtectionState.swift 79.61%
ActiveScreenState.swift 92.76%

Generated by 🚫 Danger Swift against 7b1f8ff

@Cramsden Cramsden merged commit e301bf2 into epic-branch/swift-migration Sep 22, 2025
8 checks passed
@Cramsden Cramsden deleted the cr/FXIOS-13511_remove-redux-equatable branch September 22, 2025 18:50
ih-codes pushed a commit that referenced this pull request Sep 22, 2025
…er redux states (#29495)

* Remove unneeded equatable conformance on redux states

* Fix tests

* Fix test
lmarceau pushed a commit that referenced this pull request Sep 24, 2025
…er redux states (#29495)

* Remove unneeded equatable conformance on redux states

* Fix tests

* Fix test
ih-codes pushed a commit that referenced this pull request Sep 24, 2025
…er redux states (#29495)

* Remove unneeded equatable conformance on redux states

* Fix tests

* Fix test
Cramsden added a commit that referenced this pull request Sep 24, 2025
…ct concurrency warnings (#29497)

* Refactor FXIOS-13511 [Swift 6] Remove Equatable from AppState and other redux states (#29495)

* Remove unneeded equatable conformance on redux states

* Fix tests

* Fix test

* Refactor FXIOS-13532 [Swift 6 Migration] Fix strict concurrency errors related to Notifications  (#29514)

Fun stuff

* first pass of isolating tab to the main actor

* Clean up tests and push commented out code

* fix additional warnings

* Clean up remaining warnings

* fix tests

* add missing ticket numbers

* resolve introduced warning

---------

Co-authored-by: lmarceau <lmarceau@mozilla.com>
ih-codes pushed a commit that referenced this pull request Sep 25, 2025
…er redux states (#29495)

* Remove unneeded equatable conformance on redux states

* Fix tests

* Fix test
ih-codes pushed a commit that referenced this pull request Sep 25, 2025
…ct concurrency warnings (#29497)

* Refactor FXIOS-13511 [Swift 6] Remove Equatable from AppState and other redux states (#29495)

* Remove unneeded equatable conformance on redux states

* Fix tests

* Fix test

* Refactor FXIOS-13532 [Swift 6 Migration] Fix strict concurrency errors related to Notifications  (#29514)

Fun stuff

* first pass of isolating tab to the main actor

* Clean up tests and push commented out code

* fix additional warnings

* Clean up remaining warnings

* fix tests

* add missing ticket numbers

* resolve introduced warning

---------

Co-authored-by: lmarceau <lmarceau@mozilla.com>
ih-codes added a commit that referenced this pull request Sep 26, 2025
… from last week (#5) (#29657)

* Refactor FXIOS-13511 [Swift 6] Remove Equatable from AppState and other redux states (#29495)

* Remove unneeded equatable conformance on redux states

* Fix tests

* Fix test

* Refactor FXIOS-13532 [Swift 6 Migration] Fix strict concurrency errors related to Notifications  (#29514)

Fun stuff

* Refactor FXIOS-13502 [Swift 6 Migration] Fix main actor isolation warnings in MozillaRustComponents (#29426)

"Fix" main actor isolation warnings in MozillaRustComponents with a workaround for setting accessibility identifiers to prevent larger impacts and errors in Client generated code.

* Refactor FXIOS-13511 [Swift 6] Move Tab to MainActor and resolve strict concurrency warnings (#29497)

* Refactor FXIOS-13511 [Swift 6] Remove Equatable from AppState and other redux states (#29495)

* Remove unneeded equatable conformance on redux states

* Fix tests

* Fix test

* Refactor FXIOS-13532 [Swift 6 Migration] Fix strict concurrency errors related to Notifications  (#29514)

Fun stuff

* first pass of isolating tab to the main actor

* Clean up tests and push commented out code

* fix additional warnings

* Clean up remaining warnings

* fix tests

* add missing ticket numbers

* resolve introduced warning

---------

Co-authored-by: lmarceau <lmarceau@mozilla.com>

* Refactor FXIOS-13532 #29411 [Swift 6 Migration] AppDelegate + PushNotification (#29590)

* Fix for Constellation update

* Fix UNUserNotificationCenterDelegate methods

* Fix tests

* Refactor FXIOS-13235 [Swift 6 Migration] Enable strict concurrency checking in SummarizerKit (#29575)

* Enable strict concurrency in SummarizerKit.

* Fix closure `Sendable` warnings.

* Fix some other warnings. Suppress others with FIXME tickets.

* Refactor FXIOS-13463 #29256 [Swift 6 Migration] WebEngine @mainactor (#29393)

* Policy decider

* Make main actor

* @mainactor stuff

* Fix the tests

* Adjust Client

* Add ticket number

* Adjust following comments

* Refactor FXIOS-12796 [Swift 6 Migration] Fix more under-specified protocols (#29650)

* Fix under-specified protocols: AddressToolbarDelegate, EmptyPrivateTabView, InsetUpdatable, PhotonActionSheetContainerCellDelegate, NavigationController.

* Fix unit tests.

* Refactor FXIOS-13502 [Swift 6 Migration] Fix or suppress `Sendable` and misc. warnings in MozillaRustComponents (round 1) (#29425)

* Fix or suppress Sendable warnings in MozillaRustComponents.

* Janky workaround for main actor isolation warning.

* Update some Rust Components Sendable callbacks with @mainactor as well so the Client can reason better about main actor isolation.

* Refactor FXIOS-13511 [Swift 6] Additional Strict Concurrency Clean up for Tab and Friends (#29628)

* Additional tab clean up

* Isolate UserScriptManager to main actor

* fix tests

* turn off strict concurrency

* more main actor isolation

* resolve introduced warnings

---------

Co-authored-by: Carson Ramsden <carsonramsden@gmail.com>
Co-authored-by: lmarceau <lmarceau@mozilla.com>
lmarceau added a commit that referenced this pull request Sep 26, 2025
…ct concurrency warnings (#29497)

* Refactor FXIOS-13511 [Swift 6] Remove Equatable from AppState and other redux states (#29495)

* Remove unneeded equatable conformance on redux states

* Fix tests

* Fix test

* Refactor FXIOS-13532 [Swift 6 Migration] Fix strict concurrency errors related to Notifications  (#29514)

Fun stuff

* first pass of isolating tab to the main actor

* Clean up tests and push commented out code

* fix additional warnings

* Clean up remaining warnings

* fix tests

* add missing ticket numbers

* resolve introduced warning

---------

Co-authored-by: lmarceau <lmarceau@mozilla.com>
lmarceau added a commit that referenced this pull request Oct 1, 2025
…ct concurrency warnings (#29497)

* Refactor FXIOS-13511 [Swift 6] Remove Equatable from AppState and other redux states (#29495)

* Remove unneeded equatable conformance on redux states

* Fix tests

* Fix test

* Refactor FXIOS-13532 [Swift 6 Migration] Fix strict concurrency errors related to Notifications  (#29514)

Fun stuff

* first pass of isolating tab to the main actor

* Clean up tests and push commented out code

* fix additional warnings

* Clean up remaining warnings

* fix tests

* add missing ticket numbers

* resolve introduced warning

---------

Co-authored-by: lmarceau <lmarceau@mozilla.com>
lmarceau added a commit that referenced this pull request Oct 1, 2025
…engine package (#29660)

* Refactor FXIOS-13511 [Swift 6] Move Tab to MainActor and resolve strict concurrency warnings (#29497)

* Refactor FXIOS-13511 [Swift 6] Remove Equatable from AppState and other redux states (#29495)

* Remove unneeded equatable conformance on redux states

* Fix tests

* Fix test

* Refactor FXIOS-13532 [Swift 6 Migration] Fix strict concurrency errors related to Notifications  (#29514)

Fun stuff

* first pass of isolating tab to the main actor

* Clean up tests and push commented out code

* fix additional warnings

* Clean up remaining warnings

* fix tests

* add missing ticket numbers

* resolve introduced warning

---------

Co-authored-by: lmarceau <lmarceau@mozilla.com>

* Refactor FXIOS-13511 [Swift 6] Additional Strict Concurrency Clean up for Tab and Friends (#29628)

* Additional tab clean up

* Isolate UserScriptManager to main actor

* fix tests

* turn off strict concurrency

* more main actor isolation

* resolve introduced warnings

* Part 3

* Final touches to WKEngineWebView

* Adjust comment

* Fixing warnings related to nonisolated functions from MenuHelperWebViewInterface

* Fix "implicit use of 'self' in closure" error.

---------

Co-authored-by: Carson Ramsden <carsonramsden@gmail.com>
Co-authored-by: ih-codes <ihugel@mozilla.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants