Skip to content
This repository was archived by the owner on Feb 24, 2025. It is now read-only.

Commit 8f4a97f

Browse files
Merge remote-tracking branch 'origin/main' into jkt/shared-web-tests
2 parents 2fd77ec + 4191990 commit 8f4a97f

File tree

96 files changed

+3123
-1054
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+3123
-1054
lines changed

.github/workflows/ios-end-to-end.yml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -102,17 +102,17 @@ jobs:
102102
ios-version: 17
103103
fail-on-timeout: true
104104

105-
# notify-failure:
106-
# name: Notify on failure
107-
# if: ${{ always() && contains(join(needs.*.result, ','), 'failure') && github.ref_name == 'main' }}
108-
# needs: [build-end-to-end-tests, end-to-end-tests]
109-
# runs-on: ubuntu-latest
105+
notify-failure:
106+
name: Notify on failure
107+
if: ${{ always() && contains(join(needs.*.result, ','), 'failure') && github.ref_name == 'main' }}
108+
needs: [build-end-to-end-tests, end-to-end-tests]
109+
runs-on: ubuntu-latest
110110

111-
# steps:
112-
# - name: Create Asana task when workflow failed
113-
# run: |
114-
# curl -s "https://app.asana.com/api/1.0/tasks" \
115-
# --header "Accept: application/json" \
116-
# --header "Authorization: Bearer ${{ secrets.ASANA_ACCESS_TOKEN }}" \
117-
# --header "Content-Type: application/json" \
118-
# --data ' { "data": { "name": "GH Workflow Failure - End to end tests", "workspace": "${{ vars.ASANA_WORKSPACE_ID }}", "projects": [ "${{ vars.GH_ASANA_IOS_APP_PROJECT_ID }}" ], "notes" : "The end to end workflow has failed. See https://github.com/duckduckgo/iOS/actions/runs/${{ github.run_id }}. For instructions on how to handle the failure(s), check https://app.asana.com/0/0/1206423571874502/f" } }'
111+
steps:
112+
- name: Create Asana task when workflow failed
113+
run: |
114+
curl -s "https://app.asana.com/api/1.0/tasks" \
115+
--header "Accept: application/json" \
116+
--header "Authorization: Bearer ${{ secrets.ASANA_ACCESS_TOKEN }}" \
117+
--header "Content-Type: application/json" \
118+
--data ' { "data": { "name": "GH Workflow Failure - End to end tests", "workspace": "${{ vars.ASANA_WORKSPACE_ID }}", "projects": [ "${{ vars.GH_ASANA_IOS_APP_PROJECT_ID }}" ], "notes" : "The end to end workflow has failed. See https://github.com/duckduckgo/iOS/actions/runs/${{ github.run_id }}. For instructions on how to handle the failure(s), check https://app.asana.com/0/0/1206423571874502/f" } }'

.github/workflows/ios-sync-end-to-end.yml

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -119,17 +119,17 @@ jobs:
119119
120120
121121

122-
# notify-failure:
123-
# name: Notify on failure
124-
# if: ${{ always() && contains(join(needs.*.result, ','), 'failure') && github.ref_name == 'main' }}
125-
# needs: [build-for-sync-end-to-end-tests, sync-end-to-end-tests]
126-
# runs-on: ubuntu-latest
127-
128-
# steps:
129-
# - name: Create Asana task when workflow failed
130-
# run: |
131-
# curl -s "https://app.asana.com/api/1.0/tasks" \
132-
# --header "Accept: application/json" \
133-
# --header "Authorization: Bearer ${{ secrets.ASANA_ACCESS_TOKEN }}" \
134-
# --header "Content-Type: application/json" \
135-
# --data ' { "data": { "name": "GH Workflow Failure - Sync End to end tests", "workspace": "${{ vars.ASANA_WORKSPACE_ID }}", "projects": [ "${{ vars.GH_ASANA_IOS_APP_PROJECT_ID }}" ], "notes" : "The end to end workflow has failed. See https://github.com/duckduckgo/iOS/actions/runs/${{ github.run_id }}" } }'
122+
notify-failure:
123+
name: Notify on failure
124+
if: ${{ always() && contains(join(needs.*.result, ','), 'failure') && github.ref_name == 'main' }}
125+
needs: [build-for-sync-end-to-end-tests, sync-end-to-end-tests]
126+
runs-on: ubuntu-latest
127+
128+
steps:
129+
- name: Create Asana task when workflow failed
130+
run: |
131+
curl -s "https://app.asana.com/api/1.0/tasks" \
132+
--header "Accept: application/json" \
133+
--header "Authorization: Bearer ${{ secrets.ASANA_ACCESS_TOKEN }}" \
134+
--header "Content-Type: application/json" \
135+
--data ' { "data": { "name": "GH Workflow Failure - Sync End to end tests", "workspace": "${{ vars.ASANA_WORKSPACE_ID }}", "projects": [ "${{ vars.GH_ASANA_IOS_APP_PROJECT_ID }}" ], "notes" : "The end to end workflow has failed. See https://github.com/duckduckgo/iOS/actions/runs/${{ github.run_id }}" } }'

.maestro/browser_features/state_restoration.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@ tags:
1818
- pressKey: Enter
1919

2020
# Create navigation stack
21-
- assertVisible: "English"
22-
- tapOn: "English"
21+
- assertVisible: 'English.*'
22+
- tapOn:
23+
text: 'English.*'
24+
childOf: "Top languages, navigation"
2325
- assertVisible: "Welcome to Wikipedia.*"
2426
- tapOn: "Wikipedia"
2527
- assertVisible: "Article"

.maestro/browser_features/swipe_tabs.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ tags:
2121

2222
# Open New Tab
2323
- tapOn: "Tab Switcher"
24-
- tapOn:
25-
id: Add
24+
- tapOn: "New Tab"
2625

2726
# Perform a search
2827
- assertVisible:

.maestro/privacy_tests/06_multi-tab.yaml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,8 @@ tags:
5858
text: "Publisher site"
5959
- assertVisible: Tab Switcher
6060
- tapOn: Tab Switcher
61-
- assertVisible:
62-
id: "Add"
63-
- tapOn:
64-
id: "Add"
61+
- assertVisible: "New Tab"
62+
- tapOn: "New Tab"
6563
- assertVisible:
6664
id: "searchEntry"
6765
- tapOn:

.maestro/privacy_tests/10_expired_certificate.yaml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ tags:
1717
- inputText: "https://expired.badssl.com"
1818
- pressKey: Enter
1919
- assertVisible: "Warning: This site may be insecure"
20-
- assertNotVisible:
21-
id: "LogoIcon"
20+
- assertVisible:
21+
id: "Globe-24"
2222
- tapOn: "Leave This Site"
2323
- assertNotVisible: "Warning: This site may be insecure"
2424

@@ -27,11 +27,13 @@ tags:
2727
id: "searchEntry"
2828
- inputText: "https://expired.badssl.com"
2929
- pressKey: Enter
30+
- assertVisible:
31+
id: "Globe-24"
3032
- tapOn: "Advanced"
3133
- scroll
3234
- tapOn: "Accept Risk and Visit Site"
3335
- assertVisible:
34-
id: "LogoIcon"
36+
id: "privacy-icon-shield.button"
3537
- assertVisible: "expired.badssl.com"
3638

3739

.maestro/release_tests/firebutton.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,7 @@ tags:
3939
# Close tab
4040
- tapOn: "Tab Switcher"
4141
- tapOn: "Close \"Example Domain\" at example.com"
42-
- tapOn:
43-
id: "Add"
42+
- tapOn: "New Tab"
4443

4544
# Check history
4645
- assertVisible:

.maestro/release_tests/tabs.yaml

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,8 @@ tags:
2323
- assertVisible: Tab Switcher
2424
- tapOn: Tab Switcher
2525
- assertVisible: ".*Privacy Test Pages.*"
26-
- assertVisible:
27-
id: "Add"
28-
- tapOn:
29-
id: "Add"
26+
- assertVisible: "New Tab"
27+
- tapOn: "New Tab"
3028
- assertVisible:
3129
id: "searchEntry"
3230
- tapOn:
@@ -84,10 +82,8 @@ tags:
8482
- assertVisible: Tab Switcher
8583
- tapOn: Tab Switcher
8684
- assertVisible: ".*Privacy Test Pages.*"
87-
- assertVisible:
88-
id: "Add"
89-
- tapOn:
90-
id: "Add"
85+
- assertVisible: "New Tab"
86+
- tapOn: "New Tab"
9187
- assertVisible:
9288
id: "searchEntry"
9389
- tapOn:

.maestro/release_tests/tabswitcher.yaml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,8 @@ tags:
2323
- assertVisible: Tab Switcher
2424
- tapOn: Tab Switcher
2525
- assertVisible: ".*Privacy Test Pages.*"
26-
- assertVisible:
27-
id: "Add"
28-
- tapOn:
29-
id: "Add"
26+
- assertVisible: "New Tab"
27+
- tapOn: "New Tab"
3028
- assertVisible:
3129
id: "searchEntry"
3230
- tapOn:

.maestro/shared/sync_recover_data.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ appId: com.duckduckgo.mobile.ios
1010
- pressKey: Enter
1111
- assertVisible: Get Started
1212
- tapOn: Get Started
13+
- runFlow:
14+
when:
15+
visible: Allows you to upload photographs and videos
16+
commands:
17+
- tapOn: "Allow"
1318
- tapOn: Enter Text Code Manually
1419
- tapOn: Paste
1520
- assertVisible: Save Recovery Code

Configuration/Version.xcconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
MARKETING_VERSION = 7.156.0
1+
MARKETING_VERSION = 7.157.0

Core/AppPrivacyConfigurationDataProvider.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ import BrowserServicesKit
2323
final public class AppPrivacyConfigurationDataProvider: EmbeddedDataProvider {
2424

2525
public struct Constants {
26-
public static let embeddedDataETag = "\"f6119c5fdfae457f4d5268c9e54dd3e3\""
27-
public static let embeddedDataSHA = "631b830c9dfd567466d9548b29920881f509b4efefcd76cff293347e1f5d9511"
26+
public static let embeddedDataETag = "\"bb2a054a5a85590bd0289de2f2c6b938\""
27+
public static let embeddedDataSHA = "4beea7a26ff011e0f5290763fb5b672be2e3fc74fcf0ab5088581bd2d8b0d019"
2828
}
2929

3030
public var embeddedDataEtag: String {

Core/ContentBlockerRulesLists.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ public final class ContentBlockerRulesLists: DefaultContentBlockerRulesListsSour
3434
if adClickAttribution.isEnabled,
3535
let tdsRulesIndex = result.firstIndex(where: { $0.name == Constants.trackerDataSetRulesListName }) {
3636
let tdsRules = result[tdsRulesIndex]
37-
let allowlistedTrackerNames = adClickAttribution.allowlist.map { $0.entity }
37+
let allowlist = adClickAttribution.allowlist
38+
let allowlistedTrackerNames = allowlist.map { $0.entity }
3839
let splitter = AdClickAttributionRulesSplitter(rulesList: tdsRules, allowlistedTrackerNames: allowlistedTrackerNames)
3940
if let splitRules = splitter.split() {
4041
result.remove(at: tdsRulesIndex)

Core/ios-config.json

Lines changed: 92 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"readme": "https://github.com/duckduckgo/privacy-configuration",
3-
"version": 1738568676812,
3+
"version": 1739190984719,
44
"features": {
55
"adAttributionReporting": {
66
"state": "disabled",
@@ -500,6 +500,24 @@
500500
{
501501
"domain": "ib3.org"
502502
},
503+
{
504+
"domain": "bergwelten.com"
505+
},
506+
{
507+
"domain": "bibliotheek.be"
508+
},
509+
{
510+
"domain": "volcanoteide.com"
511+
},
512+
{
513+
"domain": "dwaalzin.nu"
514+
},
515+
{
516+
"domain": "omegawatches.com"
517+
},
518+
{
519+
"domain": "russafasingluten.com"
520+
},
503521
{
504522
"domain": "marvel.com"
505523
},
@@ -684,7 +702,7 @@
684702
}
685703
}
686704
},
687-
"hash": "8c574ca7f63ca3c43b61bc7a610e9382"
705+
"hash": "61d2fa5b7a2ac83e2d013e0ed1f0aae2"
688706
},
689707
"autofillBreakageReporter": {
690708
"state": "enabled",
@@ -1627,7 +1645,33 @@
16271645
"domain": "instructure.com"
16281646
}
16291647
],
1630-
"hash": "96b2f778bab196aa424e9c859ddea778"
1648+
"features": {
1649+
"tdsNextExperimentBaseline": {
1650+
"state": "enabled",
1651+
"rollout": {
1652+
"steps": [
1653+
{
1654+
"percent": 50
1655+
}
1656+
]
1657+
},
1658+
"settings": {
1659+
"controlUrl": "v5/temp/ios-tds.json",
1660+
"treatmentUrl": "v5/temp/ios-tds-b.json"
1661+
},
1662+
"cohorts": [
1663+
{
1664+
"name": "control",
1665+
"weight": 1
1666+
},
1667+
{
1668+
"name": "treatment",
1669+
"weight": 1
1670+
}
1671+
]
1672+
}
1673+
},
1674+
"hash": "430ad988df515217c667b86b1ca252e6"
16311675
},
16321676
"contextualOnboarding": {
16331677
"exceptions": [],
@@ -2515,6 +2559,21 @@
25152559
}
25162560
]
25172561
},
2562+
{
2563+
"domain": "abcnews.go.com",
2564+
"rules": [
2565+
{
2566+
"selector": ".navigation",
2567+
"type": "modify-style",
2568+
"values": [
2569+
{
2570+
"property": "top",
2571+
"value": "0px"
2572+
}
2573+
]
2574+
}
2575+
]
2576+
},
25182577
{
25192578
"domain": "accuweather.com",
25202579
"rules": [
@@ -2619,6 +2678,15 @@
26192678
}
26202679
]
26212680
},
2681+
{
2682+
"domain": "autoby.jp",
2683+
"rules": [
2684+
{
2685+
"selector": ".ad-center",
2686+
"type": "hide-empty"
2687+
}
2688+
]
2689+
},
26222690
{
26232691
"domain": "avito.ru",
26242692
"rules": [
@@ -3562,6 +3630,10 @@
35623630
"selector": "div:has(> iframe[src*='prid=19031496'])",
35633631
"type": "hide"
35643632
},
3633+
{
3634+
"selector": "div:has(> iframe[src*='prid=19031497'])",
3635+
"type": "hide"
3636+
},
35653637
{
35663638
"selector": "div:has(> iframe[src*='prid=19043282'])",
35673639
"type": "hide"
@@ -5396,11 +5468,20 @@
53965468
"type": "hide-empty"
53975469
}
53985470
]
5471+
},
5472+
{
5473+
"domain": "tdpri.com",
5474+
"rules": [
5475+
{
5476+
"selector": "[data-aa-adunit]",
5477+
"type": "closest-empty"
5478+
}
5479+
]
53995480
}
54005481
]
54015482
},
54025483
"state": "enabled",
5403-
"hash": "2270e8bd839d78d31d29563123472275"
5484+
"hash": "efda959788d70dbe8e931840be862bda"
54045485
},
54055486
"exceptionHandler": {
54065487
"exceptions": [
@@ -5980,6 +6061,11 @@
59806061
},
59816062
"hash": "e705c70baeee9f16f5c481a5be1d95b9"
59826063
},
6064+
"htmlHistoryPage": {
6065+
"state": "disabled",
6066+
"exceptions": [],
6067+
"hash": "c292bb627849854515cebbded288ef5a"
6068+
},
59836069
"htmlNewTabPage": {
59846070
"state": "disabled",
59856071
"exceptions": [],
@@ -6834,7 +6920,7 @@
68346920
"alicdn.com": {
68356921
"rules": [
68366922
{
6837-
"rule": "alicdn.com/g/qwenweb/qwen-webui-fe/0.0.15",
6923+
"rule": "alicdn.com/g/qwenweb/qwen-webui-fe/",
68386924
"domains": [
68396925
"qwenlm.ai"
68406926
]
@@ -10059,7 +10145,7 @@
1005910145
"domain": "instructure.com"
1006010146
}
1006110147
],
10062-
"hash": "91135866917545966d19e300f74e5743"
10148+
"hash": "e2f5170e42e9861517e09f864f3a3848"
1006310149
},
1006410150
"trackingCookies1p": {
1006510151
"settings": {

0 commit comments

Comments
 (0)