Commit Graph
100 Commits
Author SHA1 Message Date
Kyle Hickinson 00a1b41039 [iOS] [AIChat] Support tools for custom models (#34944)
This adds a new toggle to the custom model form to allow the user to control whether or not the local modal supports tools
2026-03-26 15:33:26 -04:00
Kyle Hickinson f1e524783a [iOS] Remove TabManager reference from InfoBar (#35015)
InfoBar is a plain view, it should not be creating tabs, it should be up the caller to handle `onLinkPressed`
2026-03-26 18:46:54 +01:00
Kyle Hickinson 21d15967c3 [iOS] Fix browser menu row button tap region on iPad (#34954)
Apply a second `contentShape(.rect)` after `hoverEffect` to re-assert the custom ButtonStyle hit-test boundaries, which `hoverEffect` was breaking on iPad by restoring the default increased Button hit-test slop.
2026-03-26 13:38:51 -04:00
Kyle Hickinson 0a441f8e79 [iOS] Fix wallet compilation on Xcode 26.4 (#34990)
Xcode 26.4 has a stricter type checker when it comes to numbers which can cause ambiguity errors when compiling code with custom equality & comparison overloads that use strict number types (`Double` in this case)
2026-03-26 16:22:33 +00:00
Kyle Hickinson 340bf7920f [iOS] Move YT quality preference observation into tab helper (#34987) 2026-03-26 10:39:00 -04:00
Kyle Hickinson 8d9e7d2ce8 [iOS] Vendor in Swift-BigInt dependency (#34989)
This dependency doesn't seem to be maintained anymore and needs further updates to compile with Xcode 26.4. Since its only used for certain wallet frontend pieces in iOS and may go away completely in the future, vendoring this in for simplicity
2026-03-26 10:36:03 -04:00
Kyle Hickinson 932a671167 [iOS] Hide tab bar when using bottom bar & in overlay mode (#34994) 2026-03-25 20:47:43 +01:00
Kyle Hickinson d20d8f46df [iOS] Always show mode option picker when adding a device to sync (#34904) 2026-03-24 19:07:28 +00:00
Kyle Hickinson 01eee1ef48 [iOS] Add link options to Origin settings view (#34943) 2026-03-24 14:54:38 -04:00
Kyle Hickinson 2783197e1e [iOS] Add reset functionality to Brave Origin settings (#34938) 2026-03-24 13:12:10 -04:00
Kyle Hickinson a0877d1461 [iOS] Add new favicon status to TabState (#34909)
This exposes the new favicon status method from WebState in TabState. In the future the `Favicon` value will be removed
2026-03-24 09:59:06 -04:00
Kyle Hickinson f0b6d88595 [iOS] Disable inline predictions for sync code words text view (#34902) 2026-03-23 22:48:10 +01:00
Kyle Hickinson aecf5b0e21 [iOS] Add Brave Talk JavaScriptFeature (#34799)
This introduces a Chromium JavaScriptFeature based on `BraveTalkScript.js`

The script itself deviates from its original in that it is now sandboxed to the isolated content world
2026-03-23 16:44:39 -04:00
Kyle Hickinson a39486edab [iOS] Use correct favicon for NTP in back/forward modal (#34901)
Fixes a regression in #34071 that showed a monogram for the NTP in the back/forward modal instead of the Brave logo
2026-03-23 21:34:48 +01:00
Kyle Hickinson 55ff217f78 [iOS] Expose WebState favicon status to CWVWebView (#34842)
This adds access to `WebState::GetFaviconStatus` in `CWVWebView`. At the moment this will always report as `nil` because we don't use Chromiums `WebFaviconDriver`
2026-03-20 16:54:12 -04:00
Kyle Hickinson a7e361d59a [iOS] Remove icon kind argument from favicon fetcher (#34843)
This argument was ignored and never used in the function body so remove it from the method and call sites
2026-03-20 16:19:46 -04:00
Kyle Hickinson 8aa3e2808b [iOS] Remove legacy tab tray UI & feature flag (#34840)
This removes the old tab tray UI since the feature flag enabling the new UI has been on by default for 6 months
2026-03-20 11:11:19 -04:00
Kyle Hickinson bab1be1dea [iOS] Remove TabState.viewPrintFormatter (#34819)
Implements the method correctly in CWVWebView so that it may be used as the view print formatter directly
2026-03-19 11:34:57 -04:00
Kyle Hickinson 326cf18de7 [iOS] Implement usage of new Reader Mode JavaScriptFeature (#34545)
This enables the usage of the new `ReaderModeJavaScriptFeature` when the `UseProfileWebViewConfiguration` feature flag is enabled
2026-03-17 15:00:04 -04:00
Kyle Hickinson 50a14f8b7b [iOS] Remove unused API from Brave Talk page script (#34791)
This also removes the related handlers & callbacks
2026-03-17 14:55:40 -04:00
Kyle Hickinson 329e5c8c04 [iOS] Add keyboard origin checks for collapsed toolbars (#34790)
This adds an additional check to ensure we only collapse the bottom bar when a keyboard triggered by Brave becomes visible.
2026-03-17 14:55:26 -04:00
Kyle Hickinson 8d23d94302 [iOS] Add missing AI chat distiller resource dep (#34789)
Accidentally dropped this dep during a last second reorg in #34764
2026-03-17 17:06:31 +01:00
Kyle Hickinson be31dd48ca [iOS] Add Reader Mode JavaScriptFeature (#34544)
This introduces a Chromium JavaScriptFeature based on `ReaderModeScript.js`

The script itself deviates from its original in that it:
- No longer sends messages to the app in favour of allowing the app to instead just call `checkReadability` when the page finishes loading (this better matches typical Chromium architecture).
- Makes `checkReadability` return the result and removes the `readerize` JavaScript method.
2026-03-17 11:49:52 -04:00
Kyle Hickinson 1bc7301e52 [iOS] Add AI Chat distiller JavaScriptFeature (#34764)
This introduces a Chromium JavaScriptFeature based on `BraveLeoScript.js` that it used when `UseProfileWebViewConfiguration` is enabled
2026-03-17 10:25:42 -04:00
Kyle Hickinson 4c0335bbf8 [iOS] Add document fetcher JavaScriptFeature (#34769)
This introduces a Chromium JavaScriptFeature based on `ResourceDownloaderScript.js` that it used when `UseProfileWebViewConfiguration` is enabled
2026-03-17 10:25:15 -04:00
Kyle Hickinson 190448fea8 [iOS] Don't always pass in WebKit configuration in AI Chat WebUI helper (#34763)
Follow-up fix for #34329 where a WebKit configuration was being passed in when associating page context in Leo WebUI
2026-03-16 14:57:00 -04:00
Kyle Hickinson d6bdea4db6 [iOS] Update onboarding copy (#34714)
This updates some copy that did not meet our style guide
2026-03-16 14:22:55 -04:00
Kyle Hickinson 2dfa2cdb68 [iOS] Always update tab bar visibility during keyboard events (#34758)
This fixes the tab bar disappearing when tapping on the URL bar
2026-03-16 16:23:49 +01:00
Kyle Hickinson bbfcb096eb [iOS] Add legacy Logins/autofill JavaScriptFeature (#34671)
* [iOS] Add legacy Logins/autofill JavaScriptFeature

This introduces a Chromium JavaScriptFeature based on `LoginsScript.js`
2026-03-15 19:12:06 -04:00
Kyle Hickinson d4a7e51039 [iOS] Only collapse toolbar for keyboards triggered by the active tab (#34709)
This updates the bottom bar & keyboard handling relationship such that we only collapse the bottom bar when the keyboard appears if the reason for the keyboard appearing is that the active tab has focused an element on the page.
2026-03-13 14:56:23 -04:00
Kyle Hickinson 9835b85b03 [iOS] Add ads media reporting JavaScriptFeature (#34609)
This introduces a Chromium JavaScriptFeature based on `AdsMediaReportingScript.js` and uses it when `UseProfileWebViewConfiguration` is enabled.
2026-03-12 17:43:28 -04:00
Kyle Hickinson 2571668354 [iOS] Add AdsTabHelper for page notifications (#34459)
[iOS] Add AdsTabHelper for page notifications

This also adds temporary methods in BraveWebView to pass media notifications since the tab ID will be different than whats in Swift
2026-03-12 16:13:11 -04:00
Kyle Hickinson 7f83b5e053 [iOS] Don't always pass in WebKit configuration in Playlist web loader (#34607)
Follow-up fix for #34329 where a WebKit configuration was being passed in when creating playlist web views
2026-03-10 16:55:24 +00:00
Kyle Hickinson 30cbda9f39 [iOS] Discard unused Chromium session restore data on launch (#34604)
WebState's created to handle tab sync would save session restoration data to disk since they are added and activated in the WebStateList, however these sessions were never restored on launch and thus never get removed leading to hundreds of session data files being stored and never cleaned up.
2026-03-10 12:33:44 -04:00
Kyle Hickinson 8480f310be [iOS] Remove publisher blob from rewards notification (#34522)
This matches `RewardsTabHelper` which calls `NotifyPublisherPageVisit` with an empty string for the publisher blob.
2026-03-06 17:37:38 +00:00
Kyle Hickinson dadd42f442 [iOS] Expose private tracking state for if a restore is occuring (#34458)
This adds a new override on `web::NavigationManager` to expose the private field in `NavigatonManagerImpl`: `native_restore_in_progress_`. This field can be used the same way `TabState.isRestoring` was used on the Swift side which is a requirement for moving certain logic done in the Swift side into WebState tab helpers.
2026-03-06 10:59:11 -05:00
Kyle Hickinson 13740fda0e [iOS] Add page metadata JavaScriptFeature (#34498)
This introduces a Chromium JavaScriptFeature based on `MetadataScript.js` and uses it when `UseProfileWebViewConfiguration` is enabled.
2026-03-06 09:58:34 -05:00
Kyle Hickinson bff6d146b2 [iOS] Add force paste JavaScriptFeature (#34408)
This introduces a Chromium JavaScriptFeature based on `ForcePasteScript.js` and uses it when `UseProfileWebViewConfiguration` is enabled.
2026-03-05 18:33:06 +00:00
Kyle Hickinson b85bbc4968 [iOS] Add DeAmp JavaScriptFeature (#34407)
This introduces a Chromium JavaScriptFeature based on `DeAmpScript.js` and uses it when `UseProfileWebViewConfiguration` is enabled.
2026-03-05 12:40:42 -05:00
Kyle Hickinson c823e5fe3d [iOS] Move ownership of AdsClientNotifier into AdsServiceImplIOS (#34448)
This implements the related notify methods inside of the AdsService implementation as well
2026-03-04 17:20:16 -05:00
Kyle Hickinson dab790cb23 [iOS] Use correct key path when handling ads media reporting messages (#34447)
The script handler was incorrectly reading from `data` instead of `data.playing` so the script handler was not functioning correctly and never reporting media playback status to the ads service.
2026-03-04 17:20:06 -05:00
Kyle Hickinson 362f3810d0 [iOS] Remove page-metadata-parser dep and simplify extraction script (#34405)
A majority of the metadata pulled from this script is unused and so remaining bits do not require the need of a separate library to extract.
2026-03-04 14:31:52 -05:00
Kyle Hickinson e00b92a376 [iOS] Find active element through iframes for force paste (#34438)
This fixes a bug where Force Paste didn't work if you attempted to force paste into an iframe that had nested iframes. It also moves the script from being injected into all frames to only be injected in the main frame since thats the only frame we execute the JavaScript on.
2026-03-04 14:26:38 -05:00
Kyle Hickinson e297fca56b [iOS] Dont always pass in WebKit configuration in popup tab creation (#34436)
Follow-up fix for #34329 where a WebKit configuration was being passed in when creating popup tabs since `tab.configuration` will be the underlying `WKWebView`'s configuration
2026-03-04 13:46:37 -05:00
Kyle Hickinson c2e61ad4a2 [iOS] [AI Chat] Always show Leo in standalone mode (#34410) 2026-03-04 01:31:01 +00:00
Kyle Hickinson ae7efb6848 [iOS] Add ios directories to the typescript lint config (#34412)
This is required to run presubmit on TypeScript added in iOS subdirectories
2026-03-04 01:11:59 +00:00
Kyle Hickinson 70bb0664dd [iOS] Add package.json to control module type in iOS (#34363)
* [iOS] Add package.json to control module type in iOS

This adds a new `package.json` in `//brave/ios` to ensure that usages of the iOS JS tooling `optimize_ts`/`compile_ts` use the correct module type (`nodenext`). This is a prerequisite to building Brave JavaScriptFeature's with TypeScript

* Migrate iOS webpack.config.js to ESM syntax
2026-03-03 21:12:21 +01:00
Kyle Hickinson b700154649 [iOS] Don't create default WebKit configuration in TabStateFactory (#34378)
Follow-up fix for #34329 where a default WebKit configuration was being created anyways and would assert when `UseProfileWebViewConfiguration` was enabled.
2026-03-03 05:36:47 +00:00
Kyle Hickinson 510aaebc55 [iOS] [CodeHealth] Use tab's profile directly when available (#34374)
This replaces access to the global profile in scenarios that include a tab's context
2026-03-02 17:54:35 -05:00
Kyle Hickinson b21818c51d [iOS] Cancel navigations that respond with 204/205 status codes (#34325)
In iOS 26.2 a change shipped in WebKit (https://github.com/WebKit/WebKit/blob/2298f97e1caf0add0fd3d962dcbe7eb024a60b5f/Source/WebCore/loader/DocumentLoader.cpp#L1182) that aborted navigations that responded with 204 and 205 status codes.
2026-03-02 15:40:58 -05:00
Kyle Hickinson ec0b3a1f3d [iOS] Shift responsibility of nil WKWebViewConfiguration to call site (#34329)
Now that `TabStateFactory` is only used when creating actual tabs, the responsibility of passing in a nil `WKWebViewConfiguration` when `UseProfileWebViewConfiguration` is enabled can be shifted to the call site.

This also adds new asserts to ensure we aren't using TabManager's configurations when the feature flag is enabled.
2026-03-02 15:00:58 -05:00
Kyle Hickinson 9fb150885f [iOS] Add additional checks for updating loading bar progress (#34324)
This fixes a bug where the progress bar can get stuck at 10% even after a navigation finishes.
2026-03-02 14:32:46 -05:00
Kyle Hickinson 495b3fb3a0 [iOS] Add fallbacks for toolbar visibility & keyboard state conflicts (#34237)
This is a speculative fix for the URL bar being hidden after background Brave. It attempts to restore toolbar interactivity based on the keyboards state upon the scene activating along with adds additional checks during the visibility updates.
2026-03-02 14:18:00 -05:00
Kyle Hickinson ca0147b0a7 [iOS] Remove dead WebKit helpers (#34255)
This removes dead code now that WebKitTabState has been removed such as unused assets and the error page UI & script handler
2026-02-27 22:07:28 +00:00
Kyle Hickinson b3b5f879fb [iOS] Add associated Profile to TabState (#34232)
This replaces the `isPrivate` field with the profile
2026-02-26 23:25:44 +00:00
Kyle Hickinson 296ef41507 [iOS] [AI Chat] Only attach context to Leo WebUI from webpages (#34221)
This ensures that Leo opens in standalone mode if you open it from NTP or other non-webpage related tabs.
2026-02-26 23:23:48 +00:00
Kyle Hickinson bd45f50ca0 [iOS] Use correct password store when creating autofill data manager (#34231)
This was accidentally using the account password store instead of the profile password store
2026-02-26 23:00:41 +00:00
Kyle Hickinson 55b342a961 [iOS] Ensure all tab removal actions add tabs to recently closed list (#34220)
This fixes tabs removed by multi-select and "Close Other Tabs" not being added to the recently closed tabs list
2026-02-26 22:50:23 +00:00
Kyle Hickinson 7fc572a582 [iOS] Expose the associated profile in BraveWebViewConfiguration (#34227) 2026-02-26 16:20:55 -05:00
Kyle Hickinson f9be9c1fb2 [iOS] Remove WebKitTabState & friends (#34215)
This TabState implementation is no longer created so it can be removed
2026-02-26 18:30:01 +00:00
Kyle Hickinson 815c8cd6b1 Remove iOS codeowner (#34224) 2026-02-26 12:49:47 -05:00
Kyle Hickinson be316cdf5d [iOS] Require profile when creating a TabState (#34214)
This officially removes the remaining path that would create `WebKitTabState` (which can now be removed in future PRs). To ensure TabManager is still testable, a closure/factory is now passed into its initializer to allow returning `FakeTabState` in its unit tests.
2026-02-26 12:37:02 -05:00
Kyle Hickinson 210152ac09 [iOS] Use Chromium web views for playlist item streaming url fetch (#34197) 2026-02-26 10:32:50 -05:00
Kyle Hickinson c22c223a70 [iOS] Introduce FakeTabState for unit tests & SwiftUI Previews (#34193)
This replaces all the places `TabStateFactory.create` was being called in unit tests & SwiftUI previews that needed a `TabState` for some reason with a new `FakeTabState`
2026-02-26 10:26:22 -05:00
Kyle Hickinson c9b7841c9a [iOS] Handle UseProfileWebViewConfiguration in multi-tab shred (#34184)
This updates the shred feature to use the correct website data store from the shared configuration rather than use TabManager's when the `UseProfileWebViewConfiguration` feature flag is enabled
2026-02-25 15:45:56 -05:00
Kyle Hickinson 81a5195977 [iOS] Handle UseProfileWebViewConfiguration during tab state creation (#34185)
This updates the `TabStateFactory` to no longer pass in the initial WebKit configuration when the `UseProfileWebViewConfiguration` feature flag is enabled
2026-02-25 15:45:13 -05:00
Kyle Hickinson ade65da50e [iOS] Disable JS injection with UseProfileWebViewConfiguration enabled (#34183)
This disables all of the JS injection & script handlers done on the Swift side (obviously breaking all JS related features in the meantime) when the `UseProfileWebViewConfiguration` feature flag is enabled
2026-02-25 20:02:24 +00:00
Kyle Hickinson 2036fdef99 [iOS] Split up Brave specific configuration updates into its own method (#34160)
This new method will also be used when handling `BraveWebView.didResetConfiguration`. This also cleans up a number of configuration defaults that were already being set inside of `WKWebViewConfigurationProvider::ResetWithWebViewConfiguration`
2026-02-25 14:16:51 -05:00
Kyle Hickinson ef86e4849a [iOS] Allow access to the WebKit config data store from Chromium config (#34167)
This exposes a property in `BraveWebViewConfiguration` to fetch the web view configuration's data store from `WKWebViewConfigurationProvider`. This property will be used for the shred feature when the `UseProfileWebViewConfiguration` feature flag is enabled.
2026-02-25 14:15:32 -05:00
Kyle Hickinson 9090b993d4 Fix broken test BraveWalletP3AUnitTest.AdaTransactionSentObservation (#34189) 2026-02-25 18:37:12 +01:00
Kyle Hickinson 5992967fe4 [iOS] Remove unused reader mode service & operation (#34164)
We dont support adding arbitrary URLs to a reader mode list so this code was never used. This removes an instance where a TabState is created without providing a profile.
2026-02-25 10:29:29 -05:00
Kyle Hickinson 6e5c372d96 [iOS] [Origin] Display paywall based on purchased state (#34121) 2026-02-25 10:24:26 -05:00
Kyle Hickinson 4e1413b436 [iOS] [Origin] Inject app store receipt/order ID when visiting account (#34120)
Similar to Leo/VPN
2026-02-24 14:06:48 -05:00
Kyle Hickinson f1f55c1aee [iOS] [Origin] Add bridged methods to getting purchase state (#34116)
Adds the new methods to the Obj-C bridge to access purchase state from `BraveOriginService`. This change also updates the `BraveOriginServiceFactory` to pass in a valid skus service getter
2026-02-24 14:05:22 -05:00
Kyle Hickinson ea5c7c79f5 [iOS] Allow additional setup after the web view configuration is reset (#34087)
This adds a temporary WebClient method–exposed through `BraveWebView`–that will allow Brave to perform additional changes to the underlying `WKWebViewConfiguration ` when said configuration is reset in `WKWebViewConfigurationProvider`.  This is a requirement for being able to add the `internal` scheme handler and adjust a few WebKit preferences still controlled by Brave when the `UseProfileWebViewConfiguration` feature flag is enabled.
2026-02-24 09:42:55 -05:00
Kyle Hickinson f613c133da [iOS] Update new tab page url (#34071)
This updates the new tab page url to `about://newtab/` which matches Chromium (they use `chrome://newtab/` but its rewritten to `about://newtab/`) and removes the "about home" related URL extensions and `InternalURL` paths.

- `InternalURL` will eventually go away as we shift those pages into Chromium's WebUI setup and new tab page hasn't been an actual WebUI for years
- As a side-effect, this cleans up a number of places that checked both `URL.isWebPage()` and `InternalURL` which both do scheme checks so are mutually exclusive.
2026-02-23 12:46:45 -05:00
Kyle Hickinson 9c9e246d2a [iOS] [AI Chat] Add missing feature flags to flags WebUI (#34110)
This adds a few AI Chat feature flags that were also relevant to iOS to `brave://flgas` (`brave-ai-chat-rich-search-widgets`, `brave-ai-chat-conversation-api-v2`, `brave-ai-chat-user-choice-tool`)
2026-02-23 12:20:28 -05:00
Kyle Hickinson 321ee90b3d [iOS] Update the Chromium web views JavaScript feature flag name (#34063)
This changes the name from `UseChromiumWebViewsJavaScript` to `UseProfileWebViewConfiguration` to better clarify what the feature flag does, which is to remove the usage of per-tab web view configurations.
2026-02-19 17:32:54 +00:00
Kyle Hickinson 4a25a05376 [iOS] Make TabState.configuration optional (#34040)
This property was returning a brand new `WKWebViewConfiguration` when there was no real configuration to return which is not useful anyways. This is also a step towards removing this property in the future since `ChromiumTabState` will only ever be able to fetch this configuration from the underlying WKWebView once configurations are no longer passed in during creation.
2026-02-19 10:09:29 -05:00
Kyle Hickinson a23beb6eda [iOS] Avoid request loads when setting up unrealized (zombie) tabs (#34041)
This fixes a flow where zombie tabs created on launch were only actually avoiding a request load because the tab's web view hadn't been created yet. In the future this is not guaranteed and a load request may realize a WebState unintentionally
2026-02-18 16:14:05 -05:00
Kyle Hickinson e9c599e52a [iOS] Remove UseChromiumWebViews feature flag (#34018)
Its been enabled by default for 6 months and we are unlikely to ever disable it via griffin for any reason, so this should be safe to remove now
2026-02-18 12:03:43 -05:00
Kyle Hickinson 80aaa36d9f [iOS] Add migration feature flag for using Chromium JavaScript backend (#33994)
This feature flag will be used to refactor Brave iOS's JavaScript backend to utilize Chromium's instead
2026-02-17 18:21:53 -05:00
Kyle Hickinson 58b88b0fd8 [iOS] Only pass in profile when creating TabState (#33997)
This is setting up changes where we eventually never pass in a `WKWebViewConfiguration` when creating ChromiumTabState, so we need to ensure we have the correct profile up front instead of obtaining the OTR profile based on the configuration passed in.
2026-02-17 17:53:15 -05:00
Kyle Hickinson 54774a21c7 [iOS] Remove FocusScript JS feature (#34004)
The `FocusScript` script was only used for disabling certain keyboard shortcuts while a field is focused, but this can be determined with other means so its not needed
2026-02-17 22:46:06 +00:00
Kyle Hickinson 99396a6987 [iOS] Remove unused CustomSearchScript (#34012) 2026-02-17 22:39:12 +00:00
Kyle Hickinson 6ed1cd0c95 [iOS] Disable Create PDF share/menu action on WebUI (#33996)
This feature is disabled explicitly on app specific URLS (i.e. WebUI/internal schemes) in Chromium's `-[CRWWebController createFullPagePDFWithCompletion:]`
2026-02-17 17:01:10 -05:00
Kyle Hickinson 671c58c213 [iOS] Remove unused FindInPage script (#34011)
This was replaced by the `UIFindInteraction` API when our minimum deployment target became iOS 16
2026-02-17 21:43:20 +00:00
Kyle Hickinson 5f3719dabe [iOS] Remove unused NoImageMode script (#34010)
This was replaced by a simple content blocker forever ago
2026-02-17 21:40:24 +00:00
Kyle Hickinson 7b86d8848c [iOS] Remove blob downloader JS feature (#34009)
This content script isn't used anywhere in Brave and can be removed
2026-02-17 16:21:37 -05:00
Kyle Hickinson 32278fda8c [iOS] Expose autofill password identifiers (#33917)
This exposes the stable identifier in `password_manager::PasswordForm` that isn't exposed in `CWVPassword` which can be helpful for SwiftUI related methods that require identifiable objects
2026-02-17 13:19:14 -05:00
Kyle Hickinson 6f4a35e6b8 [iOS] [AI Chat] Add missing apiHost source setup (#33903)
This was added originally in https://github.com/brave/brave-core/pull/33453 but was missed in the iOS WebUI setup
2026-02-12 18:56:26 +00:00
Kyle Hickinson 65a9e942df [iOS] [AI Chat] Add support for "bring your own model" in Leo (#33419)
This adds the ability to add custom models to be used from in Leo WebUI
2026-02-11 17:50:56 -05:00
Kyle Hickinson 15db753e0c [iOS] Expose autofill profiles identifiers (#33813)
This exposes the stable identifier in `autofill::AutofillProfile` that isn't exposed in `CWVAutofillProfile` which can be helpful for SwiftUI related methods that require identifiable objects.
2026-02-10 19:32:19 +00:00
Kyle Hickinson cfdc6508ae [iOS] Expose methods to add new autofill profiles in data manager (#33814)
This change further adds new methods to `CWVAutofillDataManager` to allow obtaining a mutable autofill profile and to add new locale profiles
2026-02-10 13:21:48 -05:00
Kyle Hickinson 59431e515e [iOS] Expose autofill credit card identifiers (#33809)
This exposes the stable identifier in `autofill::CreditCard` that isn't exposed in `CWVCreditCard` which can be helpful for SwiftUI related methods that require identifiable objects
2026-02-10 13:19:31 -05:00
Kyle Hickinson 943ac9623e [iOS] Expose methods to add/remove credit cards in autofill data manager (#33808)
This change adds a category on `CWVAutofillDataManager` to expose additional methods to add & remove local credit cards from the `PaymentsDataManager`
2026-02-10 10:45:53 -05:00
Kyle Hickinson b5164afbe8 [iOS] Expose credit card form input utils on CWVCreditCard (#33799)
The `CWVCreditCard` class is a read-only bridge on top of `autofill::CreditCard`, this change exposes util methods in Chromium for handling the credit card creation/update form input and validation. A future change will add methods for adding/updating/removing credit cards from the payments data manager
2026-02-09 15:33:18 -05:00
Kyle Hickinson d9d2f9909d [iOS] Move lifetime of Brave web view configurations to BrowserState (#33796)
This change introduces a new provider type that conforms to `base::SupportsUserData::Data` such that we can associate a single `BraveWebViewConfiguration` to a single `web::BrowserState` in a similar fashion as `web::WKWebViewConfigurationProvider`.
2026-02-09 15:33:05 -05:00
Kyle Hickinson 9eaac0d9ed [iOS] Remove Static usage from VPN settings page (#33640)
This converts the VPN settings page to a SwiftUI View and removes the Static dependency
2026-02-09 10:10:09 -05:00
Kyle Hickinson d62634a1e4 [iOS] Move Brave Sync NetworkTimeHelper setup to PreMainMessageLoopRun (#33756)
This fixes a crash where sync setup is started and accesses `brave_sync::NetworkTimeHelper` before it has set a task runner.
2026-02-06 23:06:35 +00:00