Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: duckduckgo/macos-browser
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: deff8579f2dde0c1b4461ee5d7bc140b8880b758
Choose a base ref
..
head repository: duckduckgo/macos-browser
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 783a83f060b39159e2fd91dd8a2f05567d5d5c86
Choose a head ref
Showing with 1,631 additions and 550 deletions.
  1. +3 −3 .github/workflows/{build_appstore.yml → macos_build_appstore.yml}
  2. +4 −4 .github/workflows/{build_hotfix_release.yml → macos_build_hotfix_release.yml}
  3. +4 −4 .github/workflows/{build_notarized.yml → macos_build_notarized.yml}
  4. +5 −5 .github/workflows/{bump_internal_release.yml → macos_bump_internal_release.yml}
  5. +4 −4 .github/workflows/{code_freeze.yml → macos_code_freeze.yml}
  6. +3 −3 .github/workflows/{create_variant.yml → macos_create_variant.yml}
  7. +9 −9 .github/workflows/{create_variants.yml → macos_create_variants.yml}
  8. +2 −2 .github/workflows/{danger.yml → macos_danger.yml}
  9. +1 −1 .github/workflows/{hotfix.yml → macos_hotfix.yml}
  10. +6 −6 .github/workflows/{pir_end_to_end_tests.yml → macos_pir_end_to_end_tests.yml}
  11. +4 −4 .github/workflows/{pr.yml → macos_pr.yml}
  12. +2 −2 .github/workflows/{pr_task_url.yml → macos_pr_task_url.yml}
  13. +1 −1 .github/workflows/{private_api_report.yml → macos_private_api_report.yml}
  14. +2 −3 .github/workflows/{promote_testflight.yml → macos_promote_testflight.yml}
  15. +10 −10 .github/workflows/{publish_dmg_release.yml → macos_publish_dmg_release.yml}
  16. +6 −6 .github/workflows/{release.yml → macos_release.yml}
  17. +1 −1 .github/workflows/{stale_pr.yml → macos_stale_pr.yml}
  18. +3 −3 .github/workflows/{sync_end_to_end.yml → macos_sync_end_to_end.yml}
  19. +10 −10 .github/workflows/{sync_end_to_end_legacy_os.yml → macos_sync_end_to_end_legacy_os.yml}
  20. +1 −1 .github/workflows/{tag_release.yml → macos_tag_release.yml}
  21. +5 −5 .github/workflows/{ui_tests.yml → macos_ui_tests.yml}
  22. +1 −1 .github/workflows/{update_phishing_detection_data.yml → macos_update_phishing_detection_data.yml}
  23. +1 −1 Configuration/BuildNumber.xcconfig
  24. +0 −194 DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
  25. BIN DuckDuckGo/Assets.xcassets/Images/Arrow-Right-12.imageset/Arrow-Right-12.pdf
  26. +15 −0 DuckDuckGo/Assets.xcassets/Images/Arrow-Right-12.imageset/Contents.json
  27. +15 −0 DuckDuckGo/Assets.xcassets/Images/OpenTabSuggestion.imageset/Contents.json
  28. BIN DuckDuckGo/Assets.xcassets/Images/OpenTabSuggestion.imageset/Window-Tabbed-16D 1.pdf
  29. +5 −0 DuckDuckGo/Common/Localizables/UserText.swift
  30. +10 −4 DuckDuckGo/Common/View/AppKit/ColorView.swift
  31. +4 −6 DuckDuckGo/HomePage/Model/HomePageAddressBarModel.swift
  32. +120 −0 DuckDuckGo/Localizable.xcstrings
  33. +0 −1 DuckDuckGo/MainWindow/MainViewController.swift
  34. +2 −1 DuckDuckGo/Menus/MainMenuActions.swift
  35. +4 −2 DuckDuckGo/NavigationBar/View/AddressBarButtonsViewController.swift
  36. +39 −20 DuckDuckGo/NavigationBar/View/AddressBarTextField.swift
  37. +63 −12 DuckDuckGo/NavigationBar/View/AddressBarViewController.swift
  38. +78 −17 DuckDuckGo/NavigationBar/View/NavigationBar.storyboard
  39. +5 −7 DuckDuckGo/NavigationBar/View/NavigationBarViewController.swift
  40. +1 −0 DuckDuckGo/NetworkProtection/AppTargets/BothAppTargets/NetworkProtectionNavBarPopoverManager.swift
  41. +7 −3 DuckDuckGo/Preferences/Model/VPNPreferencesModel.swift
  42. +1 −0 DuckDuckGo/StateRestoration/AppStateChangedPublisher.swift
  43. +4 −2 DuckDuckGo/Statistics/GeneralPixel.swift
  44. +77 −16 DuckDuckGo/Suggestions/Model/SuggestionContainer.swift
  45. +56 −6 DuckDuckGo/Suggestions/View/Suggestion.storyboard
  46. +91 −19 DuckDuckGo/Suggestions/View/SuggestionTableCellView.swift
  47. +3 −9 DuckDuckGo/Suggestions/View/SuggestionViewController.swift
  48. +13 −6 DuckDuckGo/Suggestions/ViewModel/SuggestionViewModel.swift
  49. +1 −5 DuckDuckGo/Tab/Model/Tab.swift
  50. +4 −3 DuckDuckGo/Tab/Model/TabContent.swift
  51. +1 −1 DuckDuckGo/Tab/Navigation/DuckURLSchemeHandler.swift
  52. +1 −0 DuckDuckGo/Tab/View/BrowserTabViewController.swift
  53. +1 −0 DuckDuckGo/Tab/ViewModel/TabViewModel.swift
  54. +3 −1 DuckDuckGo/TabBar/View/TabBarViewItem.swift
  55. +10 −0 DuckDuckGo/TabBar/ViewModel/TabCollectionViewModel.swift
  56. +76 −14 DuckDuckGo/Windows/View/WindowControllersManager.swift
  57. +11 −1 DuckDuckGoVPN/DuckDuckGoVPNAppDelegate.swift
  58. +5 −1 IntegrationTests/Tab/SearchNonexistentDomainTests.swift
  59. +25 −0 LocalPackages/AppKitExtensions/Sources/AppKitExtensions/NSColorExtension.swift
  60. +65 −1 LocalPackages/DataBrokerProtection/Sources/DataBrokerProtection/Model/Actions/Click.swift
  61. +7 −0 LocalPackages/DataBrokerProtection/Sources/DataBrokerProtection/Model/DataBroker.swift
  62. +43 −6 LocalPackages/DataBrokerProtection/Sources/DataBrokerProtection/Operations/DataBrokerOperation.swift
  63. +2 −2 ...erProtection/Sources/DataBrokerProtection/Operations/DataBrokerProfileQueryOperationManager.swift
  64. +7 −1 ...taBrokerProtection/Sources/DataBrokerProtection/Operations/OperationPreferredDateCalculator.swift
  65. +4 −0 ...es/DataBrokerProtection/Sources/DataBrokerProtection/Pixels/DataBrokerProtectionStatsPixels.swift
  66. +2 −3 LocalPackages/DataBrokerProtection/Sources/DataBrokerProtection/UI/UIMapper.swift
  67. +1 −1 ...ackages/DataBrokerProtection/Tests/DataBrokerProtectionTests/DataBrokerOperationActionTests.swift
  68. +99 −0 LocalPackages/DataBrokerProtection/Tests/DataBrokerProtectionTests/DataBrokerOperationTests.swift
  69. +15 −20 ...rokerProtection/Tests/DataBrokerProtectionTests/DataBrokerProfileQueryOperationManagerTests.swift
  70. +5 −5 LocalPackages/DataBrokerProtection/Tests/DataBrokerProtectionTests/MapperToUITests.swift
  71. +7 −0 LocalPackages/DataBrokerProtection/Tests/DataBrokerProtectionTests/Mocks.swift
  72. +94 −34 .../DataBrokerProtection/Tests/DataBrokerProtectionTests/OperationPreferredDateCalculatorTests.swift
  73. +12 −0 LocalPackages/FeatureFlags/Sources/FeatureFlags/FeatureFlag.swift
  74. +1 −0 LocalPackages/NetworkProtectionMac/Package.swift
  75. +2 −1 ...s/NetworkProtectionMac/Sources/NetworkProtectionProxy/Controller/TransparentProxyController.swift
  76. +2 −0 ...s/NetworkProtectionMac/Sources/NetworkProtectionProxy/IPC/TransparentProxyAppMessageHandler.swift
  77. +3 −0 ...kages/NetworkProtectionMac/Sources/NetworkProtectionProxy/Provider/TransparentProxyProvider.swift
  78. +17 −0 ...kages/NetworkProtectionMac/Sources/NetworkProtectionProxy/Settings/TransparentProxySettings.swift
  79. +41 −0 ...etworkProtectionProxy/Settings/UserDefaultsExtensions/UserDefaults+vpnProxyFeatureAvailable.swift
  80. +2 −0 LocalPackages/NetworkProtectionMac/Sources/NetworkProtectionUI/Menu/StatusBarMenu.swift
  81. +1 −0 ...ProtectionMac/Sources/NetworkProtectionUI/Views/StatusView/NetworkProtectionStatusViewModel.swift
  82. +42 −0 ...Packages/NetworkProtectionMac/Sources/NetworkProtectionUI/Views/TipViews/Model/VPNTipsModel.swift
  83. +25 −25 ...rkProtectionMac/Sources/NetworkProtectionUI/Views/TunnelControllerView/TunnelControllerView.swift
  84. +8 −0 ...tectionMac/Sources/NetworkProtectionUI/Views/TunnelControllerView/TunnelControllerViewModel.swift
  85. +7 −0 ...Packages/NetworkProtectionMac/Tests/NetworkProtectionUITests/TunnelControllerViewModelTests.swift
  86. +1 −0 UnitTests/Freemium/DBP/FreemiumDBPPresenterTests.swift
  87. +2 −0 UnitTests/RecentlyClosed/RecentlyClosedCoordinatorTests.swift
  88. +199 −7 UnitTests/Suggestions/Model/SuggestionContainerTests.swift
  89. +2 −0 UnitTests/Suggestions/Model/SuggestionLoadingMock.swift
  90. +30 −4 UnitTests/Suggestions/ViewModel/SuggestionContainerViewModelTests.swift
  91. +44 −0 UnitTests/Suggestions/ViewModel/SuggestionViewModelTests.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Make App Store Connect Release
name: macOS - Make App Store Connect Release

on:
on:
workflow_dispatch:
inputs:
destination:
@@ -140,7 +140,7 @@ jobs:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ vars.AWS_DEFAULT_REGION }}
DSYM_S3_PATH: s3://${{ vars.DSYM_BUCKET_NAME }}/${{ vars.DSYM_BUCKET_PREFIX }}/DuckDuckGo-AppStore-${{ env.app-version }}-dSYM.zip
DSYM_S3_PATH: s3://${{ vars.DSYM_BUCKET_NAME }}/${{ vars.MACOS_DSYM_BUCKET_PREFIX }}/DuckDuckGo-AppStore-${{ env.app-version }}-dSYM.zip
run: |
echo "dsym-s3-path=${DSYM_S3_PATH}" >> $GITHUB_OUTPUT
aws s3 cp ${{ env.dsym-path }} ${{ env.DSYM_S3_PATH }}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Build Hotfix Release
name: macOS - Build Hotfix Release

on:
workflow_dispatch:
@@ -39,7 +39,7 @@ jobs:
name: Run Tests

needs: assert_release_branch
uses: ./.github/workflows/pr.yml
uses: ./.github/workflows/macos_pr.yml
secrets:
APPLE_API_KEY_BASE64: ${{ secrets.APPLE_API_KEY_BASE64 }}
APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY_ID }}
@@ -91,7 +91,7 @@ jobs:
prepare_release:
name: Prepare Release
needs: run_tests
uses: ./.github/workflows/release.yml
uses: ./.github/workflows/macos_release.yml
with:
asana-task-url: ${{ github.event.inputs.asana-task-url }}
destination: appstore
@@ -112,7 +112,7 @@ jobs:
tag_and_merge:
name: Tag and Merge Branch
needs: [ prepare_release, update_asana ]
uses: ./.github/workflows/tag_release.yml
uses: ./.github/workflows/macos_tag_release.yml
with:
asana-task-url: ${{ github.event.inputs.asana-task-url }}
branch: ${{ github.ref_name }}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Make Notarized DMG Release
name: macOS - Make Notarized DMG Release

on:
on:
workflow_dispatch:
inputs:
release-type:
@@ -181,7 +181,7 @@ jobs:
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ vars.AWS_DEFAULT_REGION }}
DSYM_BUCKET_NAME: ${{ vars.DSYM_BUCKET_NAME }}
DSYM_BUCKET_PREFIX: ${{ vars.DSYM_BUCKET_PREFIX }}
DSYM_BUCKET_PREFIX: ${{ vars.MACOS_DSYM_BUCKET_PREFIX }}
DSYM_NAME: ${{ steps.set-outputs.outputs.dsym-name }}
DSYM_LOCAL_PATH: "${{ github.workspace }}/release/${{ steps.set-outputs.outputs.dsym-name }}"
run: |
@@ -383,7 +383,7 @@ jobs:
Gemfile
Gemfile.lock
fastlane
- name: Set up fastlane
run: bundle install

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Bump Internal Release
name: macOS - Bump Internal Release

on:
schedule:
@@ -72,7 +72,7 @@ jobs:
needs: validate_input_conditions

if: needs.validate_input_conditions.outputs.skip-release != 'true'
uses: ./.github/workflows/pr.yml
uses: ./.github/workflows/macos_pr.yml
with:
branch: ${{ needs.validate_input_conditions.outputs.release-branch }}
secrets:
@@ -124,7 +124,7 @@ jobs:
prepare_release:
name: Prepare Release
needs: [ validate_input_conditions, increment_build_number ]
uses: ./.github/workflows/release.yml
uses: ./.github/workflows/macos_release.yml
with:
asana-task-url: ${{ needs.validate_input_conditions.outputs.asana-task-url }}
branch: ${{ needs.validate_input_conditions.outputs.release-branch }}
@@ -146,7 +146,7 @@ jobs:
tag_and_merge:
name: Tag and Merge Branch
needs: [ validate_input_conditions, prepare_release ]
uses: ./.github/workflows/tag_release.yml
uses: ./.github/workflows/macos_tag_release.yml
with:
asana-task-url: ${{ needs.validate_input_conditions.outputs.asana-task-url }}
branch: ${{ needs.validate_input_conditions.outputs.release-branch }}
@@ -160,7 +160,7 @@ jobs:
publish_release:
name: Publish DMG Release
needs: [ validate_input_conditions, tag_and_merge ]
uses: ./.github/workflows/publish_dmg_release.yml
uses: ./.github/workflows/macos_publish_dmg_release.yml
with:
asana-task-url: ${{ needs.validate_input_conditions.outputs.asana-task-url }}
branch: ${{ needs.validate_input_conditions.outputs.release-branch }}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Code Freeze
name: macOS - Code Freeze

on:
workflow_dispatch:
@@ -56,7 +56,7 @@ jobs:
name: Run Tests

needs: create_release_branch
uses: ./.github/workflows/pr.yml
uses: ./.github/workflows/macos_pr.yml
with:
branch: ${{ needs.create_release_branch.outputs.release_branch_name }}
secrets:
@@ -99,7 +99,7 @@ jobs:
prepare_release:
name: Prepare Release
needs: [ create_release_branch, increment_build_number ]
uses: ./.github/workflows/release.yml
uses: ./.github/workflows/macos_release.yml
with:
asana-task-url: ${{ needs.create_release_branch.outputs.asana_task_url }}
branch: ${{ needs.create_release_branch.outputs.release_branch_name }}
@@ -120,7 +120,7 @@ jobs:
tag_and_merge:
name: Tag and Merge Branch
needs: [ create_release_branch, prepare_release ]
uses: ./.github/workflows/tag_release.yml
uses: ./.github/workflows/macos_tag_release.yml
with:
asana-task-url: ${{ needs.create_release_branch.outputs.asana_task_url }}
base-branch: ${{ github.ref_name }}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Create DMG Variant
name: macOS - Create DMG Variant

on:
workflow_dispatch:
@@ -40,7 +40,7 @@ on:
jobs:

create-dmg-variant:

name: Create DMG Variant

env:
@@ -69,7 +69,7 @@ jobs:
- name: Set up fastlane
run: bundle install

- name: Sync code signing assets
env:
APPLE_API_KEY_BASE64: ${{ secrets.APPLE_API_KEY_BASE64 }}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Create DMG Variants
name: macOS - Create DMG Variants

on:
workflow_dispatch:
@@ -42,15 +42,15 @@ jobs:
steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Fetch Build Variants
id: get-build-variants
uses: ./.github/actions/asana-get-build-variants-list
with:
access-token: ${{ secrets.ASANA_ACCESS_TOKEN }}
atb-asana-task-id: ${{ vars.DMG_VARIANTS_LIST_TASK_ID }}
origin-asana-section-id: ${{ vars.DMG_VARIANTS_ORIGIN_SECTION_ID }}

download-dmg-and-upload-artifact:

name: Download Release App and upload artifact
@@ -78,7 +78,7 @@ jobs:
strategy:
fail-fast: false
matrix: ${{ fromJSON(needs.set-up-variants.outputs.build-variants-1) }}
uses: ./.github/workflows/create_variant.yml
uses: ./.github/workflows/macos_create_variant.yml
with:
atb-variant: ${{ matrix.variant }}
origin-variant: ${{ matrix.origin }}
@@ -99,7 +99,7 @@ jobs:
strategy:
fail-fast: false
matrix: ${{ fromJSON(needs.set-up-variants.outputs.build-variants-2) }}
uses: ./.github/workflows/create_variant.yml
uses: ./.github/workflows/macos_create_variant.yml
with:
atb-variant: ${{ matrix.variant }}
origin-variant: ${{ matrix.origin }}
@@ -111,17 +111,17 @@ jobs:
AWS_SECRET_ACCESS_KEY_RELEASE_S3: ${{ secrets.AWS_SECRET_ACCESS_KEY_RELEASE_S3 }}
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
SSH_PRIVATE_KEY_FASTLANE_MATCH: ${{ secrets.SSH_PRIVATE_KEY_FASTLANE_MATCH }}

mattermost:

name: Send Mattermost message
needs: [create-variants-1, create-variants-2]
runs-on: macos-15

env:
success: ${{ needs.create-variants-1.result == 'success' && needs.create-variants-2.result == 'success' }}
failure: ${{ needs.create-variants-1.result == 'failure' || needs.create-variants-2.result == 'failure' }}

steps:
- name: Check out the code
if: ${{ env.success || env.failure }} # Don't execute when cancelled
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: Danger JS
on:
name: macOS - Danger JS
on:
pull_request:
types: [labeled, unlabeled, opened, reopened, edited, synchronize]

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Set Up Hotfix Release Branch
name: macOS - Set Up Hotfix Release Branch

on:
workflow_dispatch:
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
name: PIR E2E Tests
name: macOS - PIR E2E Tests

on:
workflow_dispatch:
schedule:
- cron: '0 3 * * 1-5' # 3AM UTC offsetted to legacy to avoid action-junit-report@v4 bug
pull_request:

jobs:
pir-e2e-tests:
name: PIR e2e tests
@@ -48,11 +48,11 @@ jobs:

- name: Start PIR Fake Broker
run: |
cd pir-fake-broker
cd pir-fake-broker
cd scripts
./install-prerequisites.sh
./setup-ci.sh
cd ..
cd ..
pnpm start:all &
- name: Check out the code
@@ -65,7 +65,7 @@ jobs:
run: |
cd main
bundle install
- name: Sync code signing assets
env:
APPLE_API_KEY_BASE64: ${{ secrets.APPLE_API_KEY_BASE64 }}
@@ -130,7 +130,7 @@ jobs:
- name: Publish tests report
uses: mikepenz/action-junit-report@v4
if: always()
if: always()
with:
check_name: "Test Report ${{ matrix.runner }}"
report_paths: pir-e2e-tests.xml
8 changes: 4 additions & 4 deletions .github/workflows/pr.yml → .github/workflows/macos_pr.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: PR Checks
name: macOS - PR Checks

on:
on:
push:
branches: [ main, "release/**" ]
pull_request:
@@ -156,7 +156,7 @@ jobs:
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
SSH_PRIVATE_KEY_FASTLANE_MATCH: ${{ secrets.SSH_PRIVATE_KEY_FASTLANE_MATCH }}
run: bundle exec fastlane sync_signing_ci

- name: Set cache key hash
run: |
has_only_tags=$(jq '[ .pins[].state | has("version") ] | all' DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved)
@@ -305,7 +305,7 @@ jobs:
name: Private API Report
needs: tests
if: ${{ success() || needs.tests.outputs.private-api-check-report }}
uses: ./.github/workflows/private_api_report.yml
uses: ./.github/workflows/macos_private_api_report.yml
with:
report: ${{ needs.tests.outputs.private-api-check-report }}

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Asana PR Task URL
name: macOS - Asana PR Task URL

on:
on:
pull_request:
types: [opened, edited, closed, synchronize, review_requested, ready_for_review]

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Private API Usage Report
name: macOS - Private API Usage Report

on:
workflow_call:
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Promote TestFlight to App Store
name: macOS - Promote TestFlight to App Store

on:
on:
workflow_dispatch: {}

jobs:
@@ -31,4 +31,3 @@ jobs:
git config --global user.name "Dax the Duck"
git config --global user.email "dax@duckduckgo.com"
bundle exec fastlane promote_latest_testflight_to_appstore
Loading