Skip to content

Commit

Permalink
Merge branch 'main' into dominik/xcode-16
Browse files Browse the repository at this point in the history
# By Mariusz Śpiewak (3) and others
# Via Elle Sullivan (2) and others
* main: (26 commits)
  Release 7.143.0-0 (#3497)
  Fix the condition (#3496)
  Use cookie to share subscription access token on DDG domains (#3488)
  Show VPN onboarding tips (#3429)
  TestFlight only release and promotion (#3474)
  point to BSK branch (#3492)
  Remove Recovered References (#3457)
  Fix image set warning (#3459)
  Make running the script more explicit (#3484)
  Add pixel when the error page is shown (#3487)
  Release 7.142.0-1 (#3483)
  Merge Hotfix/7.141.1 into 7.142.0 release branch (#3481)
  Release 7.141.1-0 (#3479)
  Handle 'data' scheme downloads through WebKit's `decisionHandler(.download)` (#3478)
  Email parsing improved (#3436)
  Fix updating OmniBar constraints on iOS18 (#3473)
  For BLOB downloads make sure the file is not preview-able before triggering the download (#3472)
  Set UserDefaults API access reason to 1C8F.1 (#3475)
  Bump BSK to the version with newTabSearchField feature flag (#3449)
  Use New Tab Page implementation without customization features (#3453)
  ...

# Conflicts:
#	DuckDuckGo.xcodeproj/project.pbxproj
#	DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
  • Loading branch information
samsymons committed Oct 29, 2024
2 parents 0239e19 + c5aab0c commit 4c98e85
Show file tree
Hide file tree
Showing 72 changed files with 2,205 additions and 641 deletions.
33 changes: 33 additions & 0 deletions .github/workflows/promote_testflight.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Promote TestFlight to App Store

on:
workflow_dispatch: {}

jobs:
promote-testflight-to-appstore:
runs-on: macos-14

steps:
- name: Check out the code
uses: actions/checkout@v4
with:
ref: ${{ github.ref_name }}
sparse-checkout: |
.github
Gemfile
Gemfile.lock
fastlane
scripts
- name: Set up fastlane
run: bundle install

- name: Promote TestFlight to App Store
env:
APPLE_API_KEY_BASE64: ${{ secrets.APPLE_API_KEY_BASE64 }}
APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY_ID }}
APPLE_API_KEY_ISSUER: ${{ secrets.APPLE_API_KEY_ISSUER }}
run: |
git config --global user.name "Dax the Duck"
git config --global user.email "[email protected]"
bundle exec fastlane promote_latest_testflight_to_appstore
5 changes: 2 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
destination:
description: "Upload destination (App Store or TestFlight)"
required: true
default: appstore
default: testflight
type: choice
options:
- appstore
Expand Down Expand Up @@ -36,10 +36,9 @@ jobs:
id: destination
run: |
INPUT_DESTINATION=${{ github.event.inputs.destination }}
echo "destination=${INPUT_DESTINATION:-"appstore"}" >> $GITHUB_OUTPUT
echo "destination=${INPUT_DESTINATION:-"testflight"}" >> $GITHUB_OUTPUT
- name: Assert release branch
if: steps.destination.outputs.destination == 'appstore'
run: |
case "${{ github.ref }}" in
*release/*) ;;
Expand Down
2 changes: 1 addition & 1 deletion Configuration/Version.xcconfig
Original file line number Diff line number Diff line change
@@ -1 +1 @@
MARKETING_VERSION = 7.141.0
MARKETING_VERSION = 7.143.0
4 changes: 2 additions & 2 deletions Core/AppPrivacyConfigurationDataProvider.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ import BrowserServicesKit
final public class AppPrivacyConfigurationDataProvider: EmbeddedDataProvider {

public struct Constants {
public static let embeddedDataETag = "\"4ffe7d2b6c8e252d0289b1398cc2685d\""
public static let embeddedDataSHA = "9795ade4fdbc474688250f2ecfa097e917feea21a54fd97c524b851245d170e8"
public static let embeddedDataETag = "\"f8b9cfd5f1eb7b77c21d4476f85bd177\""
public static let embeddedDataSHA = "c26c97714d73a9e1e99dbd341d5890da42b49d34a296672be3d3cea00bdd37a0"
}

public var embeddedDataEtag: String {
Expand Down
4 changes: 2 additions & 2 deletions Core/AppTrackerDataSetProvider.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ import BrowserServicesKit
final public class AppTrackerDataSetProvider: EmbeddedDataProvider {

public struct Constants {
public static let embeddedDataETag = "\"f5dad10599a8d6088ec1908da3eeb3cc\""
public static let embeddedDataSHA = "bb4c80f41383971693b241b4580fa74bbec1378ca6c2f8da8745dc6044fa1af9"
public static let embeddedDataETag = "\"0b9329cf89ed936dab485072c32814c4\""
public static let embeddedDataSHA = "09b3b38cb556f93ac3d7c45e2535677285f5beef4cb4c0af2aaaa00b25f311d4"
}

public var embeddedDataEtag: String {
Expand Down
15 changes: 15 additions & 0 deletions Core/PixelEvent.swift
Original file line number Diff line number Diff line change
Expand Up @@ -708,6 +708,11 @@ extension Pixel {
case privacyProTransactionProgressNotHiddenAfter60s
case privacyProSuccessfulSubscriptionAttribution
case privacyProKeychainAccessError
case privacyProSubscriptionCookieMissingTokenOnSignIn
case privacyProSubscriptionCookieMissingCookieOnSignOut
case privacyProSubscriptionCookieRefreshedWithUpdate
case privacyProSubscriptionCookieRefreshedWithDelete
case privacyProSubscriptionCookieFailedToSetSubscriptionCookie

// MARK: Pixel Experiment
case pixelExperimentEnrollment
Expand Down Expand Up @@ -827,6 +832,9 @@ extension Pixel {
case duckplayerExperimentDailySearch
case duckplayerExperimentWeeklySearch
case duckplayerExperimentYoutubePageView

// MARK: WebView Error Page Shown
case webViewErrorPageShown
}

}
Expand Down Expand Up @@ -1517,6 +1525,11 @@ extension Pixel.Event {
case .privacyProTransactionProgressNotHiddenAfter60s: return "m_privacy-pro_progress_not_hidden_after_60s"
case .privacyProSuccessfulSubscriptionAttribution: return "m_subscribe"
case .privacyProKeychainAccessError: return "m_privacy-pro_keychain_access_error"
case .privacyProSubscriptionCookieMissingTokenOnSignIn: return "m_privacy-pro_subscription-cookie-missing_token_on_sign_in"
case .privacyProSubscriptionCookieMissingCookieOnSignOut: return "m_privacy-pro_subscription-cookie-missing_cookie_on_sign_out"
case .privacyProSubscriptionCookieRefreshedWithUpdate: return "m_privacy-pro_subscription-cookie-refreshed_with_update"
case .privacyProSubscriptionCookieRefreshedWithDelete: return "m_privacy-pro_subscription-cookie-refreshed_with_delete"
case .privacyProSubscriptionCookieFailedToSetSubscriptionCookie: return "m_privacy-pro_subscription-cookie-failed_to_set_subscription_cookie"

// MARK: Pixel Experiment
case .pixelExperimentEnrollment: return "pixel_experiment_enrollment"
Expand Down Expand Up @@ -1649,6 +1662,8 @@ extension Pixel.Event {
case .duckplayerExperimentWeeklySearch: return "duckplayer_experiment_weekly_search_v2"
case .duckplayerExperimentYoutubePageView: return "duckplayer_experiment_youtube_page_view_v2"

// MARK: - WebView Error Page shown
case .webViewErrorPageShown: return "m_errorpageshown"
}
}
}
Expand Down
9 changes: 9 additions & 0 deletions Core/SchemeHandler.swift
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ public class SchemeHandler {
}

public enum SchemeType: Equatable {
case allow
case navigational
case external(Action)
case blob
Expand All @@ -51,6 +52,7 @@ public class SchemeHandler {
case shortcuts
case shortcutsProduction = "shortcuts-production"
case workflow
case marketplaceKit = "marketplace-kit"
}

private enum BlockedScheme: String {
Expand All @@ -74,6 +76,13 @@ public class SchemeHandler {
}

switch PlatformScheme(rawValue: schemeString) {
case .marketplaceKit:
// marketplaceKit urls have to be allowed through without interference
if #available(iOS 17.4, *) {
return .allow
} else {
return .unknown
}
case .sms, .mailto, .itms, .itmss, .itunes, .itmsApps, .itmsAppss, .shortcuts, .shortcutsProduction, .workflow:
return .external(.askForConfirmation)
case .none:
Expand Down
4 changes: 3 additions & 1 deletion Core/UserDefaultsPropertyWrapper.swift
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,9 @@ public struct UserDefaultsWrapper<T> {
case duckPlayerPixelExperimentLastDayPixelFired = "com.duckduckgo.ios.duckplayer.pixel.experiment.last.day.pixel.fired.v2"
case duckPlayerPixelExperimentLastVideoIDRendered = "com.duckduckgo.ios.duckplayer.pixel.experiment.last.videoID.rendered.v2"
case duckPlayerPixelExperimentOverride = "com.duckduckgo.ios.duckplayer.pixel.experiment.override.v2"


// TipKit
case resetTipKitOnNextLaunch = "com.duckduckgo.ios.tipKit.resetOnNextLaunch"
}

private let key: Key
Expand Down
Loading

0 comments on commit 4c98e85

Please sign in to comment.