This version of swift-format adds support for Swift 5.10 introduced in Xcode 15.3 (https://github.com/apple/swift-format/releases/tag/510.1.0). A recursive format on the `ios/brave-ios` folder was also run to pick up any updated formatting.
Chromium changed the location of vendored crates and now uses Cargo.toml directly to manage dependencies
https://source.chromium.org/chromium/chromium/src/+/0ec93d1ef9e4d367ee428d2fa8827c226107a440
This change moves all the vendored files to the new location and patches gnrt to work correctly in the brave third_party/rust directory. All build files for rust dependencies were regenerated using gnrt.
* Defer media detection on certain sites
On certain sites, such as YouTube, media detection is resource-intensive.
This is due to the necessity of loading the same page within a background
web contents once again, so that we can hide media source API or fake UA
string. Otherwise, Getting downloadable video url is impossible.
Previously, we executed the media detection script each time navigation
occurred, displaying playlist action icon view on location bar when there're
media that can be added. But this had noticeable impact on performance
and memory usage when visiting sites like Youtube.
To mitigate this, we will defer media detection on these sites. Instead,
the playlist action icon will be displayed when the page URL aligns with
known rule sets. Upon clicking the icon, the media detection process will
be initiated.
Note that on sties in which media detection can be done without a background
web contents, media detection will be executed as before, on navigation.
* [iOS] Don't fail to validate Package.swift when missing `.env` file
* [iOS] Switch `ios_bootstrap` to use `python3` directly over `vpython3`
Also fixes the options passed into `util.run`
* [iOS] Fix core build config when using 'Debug (App Store)' scheme
* update build script, move core package directory
* Use xcode scheme pre-actions
* Make args file with version & api keys, remove unused configs
* Update dev to nightly naming, cleanup, fix missed test
* Remove brave-core-ios from package, update bootstrap
* dont remove frameworks early
* Move brave-ios npm packages into brave-core, cleanup
* Disable swift-format for now, disable clang-format on ThirdParty dir
* Build frameworks to src/out directory instead of inside brave-ios folder
* Move ios third party deps to brave/third_party/ios_deps directory
* Fix bootstrap copy with new directories, more cleanup
* Add iOS unit tests to `npm run test` command
* Remove swift formatting from presubmit
* Use symlink to output directory, move xcframework creation to npm cmd
* Add license checker special cases for iOS deps
* Presubmit fixes
* Replace `build_in_core` shell script with `scheme_preaction` python
- Adds `brave_ios_marketing_version` config and adds pre-actions for all main schemes
- Re-add Nightly (Dev) scheme
* Cleanup bootstrap, complete dev to nightly rename, remove Local xcconfigs
Plus format/presubmit fixes
* Remove SPM Package.resolved and ignore it
We won't be using the non-Xcode project based build system
* Update presubmit config, Remove macOS wireguard framework prebuild
* Add license info for moved brave-ios npm packages
* Exclude third_party/ios_deps from cpplint
* Add DEPS file to Guardian dep
* Rename brave_version_patch to illustrate its for iOS only
* Use correct GN configuration based on Xcode configuration
* Allow ios bootstrap script to be run from any directory. Update README
* Make fastlane channel builds also release to testers
Also fixes an issue where Xcode injected environment variables were available during GN builds which would cause build failures in Release configurations
* Remove clean git status check from fastlane
* Update fastlane script to always run bootstrap
* Fix bootstrap script copying placeholders to the wrong directory
* Disable xcpretty in fastlane scripts
* Fix debug scheme entitlements now that it shares nightly bundle id
* Update simulator target in fastlane unit test lane
* Disable xcpretty on unit tests and fixup test build
* Add provisioning profiles for nightly builds
* Expand relative directories in bootstrap
* Add explicit provisioning for nightly
* Fix tests & export junit reports
* Update nightly provisioning profile names
* Remove all skipped tests
* Fix failing unit tests
* Add explicit provisioning profiles for beta & release
* Remove app center fastlane plugin and ignore fastlane test_output in git
* Cleanup Xcode project config
* Fix invalid code signing identities on individual targets
* Skip flaky wallet tests, re-add automatic signing for debug builds
* Fix flaky CoreData tests by guaranteeing view context merge
* Update Jenkinsfile
* Move Xcode derived data directory to src/out for CI builds
* Remove 'No Changes' CoreData test
* Fixed missed Xcode derived data directory setting for iPad test build
* Fix iPad test plan
* Separate testflight build & upload into multiple fastlane runs
* Add version string to MaterialComponents during preaction
* Add ability to pass in PUBLIC CI arg into fastlane upload lane
* Cleanup config & presubmit rules
* Add explicit licenses/README.chromium's for third party iOS deps
* Presubmit cleanup/fixes
* Change Xcode preactions to run on xcframeworks instead of GN outputs
This avoids rebuilds that are due to BraveCore.framework and MaterialComponents.framework folders being touched in the out directory when we cleanup chromium assets and fix the MaterialComponents Info.plist
* Improve debugging when `strip_absolute_paths_from_debug_symbols` is true
- The bootstrap script now generates an LLDBInit that is used for Debug schemes. This file contains an lldb target.source-map to allow lldb to resolve breakpoints
- SPM & Xcode now build with the `-debug-prefix-map` swift flag so that all iOS files built out of GN also have relative debug paths
- Replace compilation flags being defined with OTHER_SWIFT_FLAGS to use SWIFT_ACTIVE_COMPILATION_CONDITIONS instead
* Remove SPM reload during preaction and use .env for Package.swift
This removes a race that could happen when reloading the package during the build
* Add Action Extension provisioning profiles and fix its xcode build settings
* Move xcframework creation command into separate file
* Fixup nvm/brew npm PATHs in Xcode pre-action script
* Move iOS bootstrap into gclient runhook, rename current_link
* Bootstrap script improvements based on feedback
* Rebase master/fix bootstrap import
* Bootstrap script improvements based on feedback pt2
* Revert Jenkinsfile change
* Move CheckNoJsInIos and CheckNoDeprecatedCss into permanent ignores
* Rebase master & fix wallet mock asset ratio service
---------
Co-authored-by: Mihai PLESA <mplesa@brave.com>
We renamed our fork of the kuchiki tree-handling crate since
upstream is unmaintained. It's easier to build against released
crates now that we're vendoring, so move to the new publication
crate name. This also addresses a `cargo audit` warning about
the unmaintained dependency.
Note however that we're still using a brave-specific fork from
git here, so the crate itself is still installed from DEPS.
This adds a new transitive dependency on `indexmap`, which is used
to roundtrip html attributes with stable ordering so unit tests
don't need trivial updates whenever we touch something.
This dependency was for a while available in upstream chromium,
but has since been dropped, so we're using our own copy under
brave/third_party/rust.
kuchikiki 0.8.2 specifies newer versions of its other dependencies
but seems to still work when built against the old releases, so
those are left to another commit.
This replaces the DEPS entry with a copy of the source from
https://github.com/brave/kuchikiki for simpler updating.
Note that this is still a patched version, different from
the 0.8.2 package published on crates.io.
Make Windows online installer universal
Before this commit, the x64 online installer installed x64 Brave, even
on Arm64 Windows. Now, if the update server offers an Arm64 binary on
the right channel, the online installer will install Arm64 Brave.