Skip to content

Commit 21f48ae

Browse files
Release build 11.7.0 [ci release]
1 parent 4d3fcb7 commit 21f48ae

23 files changed

+664
-59
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Dependabot auto-approve and auto-merge
2+
on: pull_request
3+
4+
permissions:
5+
contents: write
6+
pull-requests: write
7+
8+
jobs:
9+
dependabot:
10+
runs-on: ubuntu-latest
11+
if: github.event.pull_request.user.login == 'dependabot[bot]'
12+
steps:
13+
- name: Dependabot metadata
14+
id: metadata
15+
uses: dependabot/fetch-metadata@08eff52bf64351f401fb50d4972fa95b9f2c2d1b
16+
with:
17+
github-token: '${{ secrets.GITHUB_TOKEN }}'
18+
19+
- name: Auto-approve and enable auto-merge for npm patch updates (except ignored packages)
20+
if: |
21+
steps.metadata.outputs.package-ecosystem == 'npm' &&
22+
steps.metadata.outputs.update-type == 'version-update:semver-patch' &&
23+
!contains(steps.metadata.outputs.dependency-names, '@atlaskit/pragmatic-drag-and-drop') &&
24+
!contains(steps.metadata.outputs.dependency-names, 'preact') &&
25+
!contains(steps.metadata.outputs.dependency-names, '@preact/signals') &&
26+
!contains(steps.metadata.outputs.dependency-names, 'lottie-web')
27+
run: |
28+
gh pr review --approve "$PR_URL"
29+
gh pr merge --auto --merge "$PR_URL"
30+
env:
31+
PR_URL: ${{ github.event.pull_request.html_url }}
32+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

CHANGELOG.txt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
- Update build-and-troubleshooting.md for apple changes (#1891)
2-
- Add in file count check for data.files in canShare (#1899)
3-
- build(deps): bump actions/checkout from 4 to 5 (#1901)
4-
- build(deps): bump esbuild from 0.25.8 to 0.25.9 (#1903)
5-
- build(deps): bump @rive-app/canvas-single from 2.31.1 to 2.31.2 (#1902)
6-
- Force search mode when Duck.ai is disabled in Omnibar (#1895)
1+
- Add additionalCheck for android rollout (#1908)
2+
- Ensure message correctness in extension (#1907)
3+
- Add @duckduckgo/extension-owners to CODEOWNERS (#1896)
4+
- Auto approve patch changes to the repo (#1904)

CODEOWNERS

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ injected/integration-test/mocks/broker-protection/ @duckduckgo/content-scope-scr
2121
injected/integration-test/test-pages/broker-protection/ @duckduckgo/content-scope-scripts-owners @duckduckgo/injected-broker-protection
2222

2323
# Platform owners
24-
injected/src/features.js @duckduckgo/content-scope-scripts-owners @duckduckgo/apple-devs @duckduckgo/android-devs @duckduckgo/team-windows-development @kzar @sammacbeth
24+
injected/src/features.js @duckduckgo/content-scope-scripts-owners @duckduckgo/apple-devs @duckduckgo/android-devs @duckduckgo/team-windows-development @duckduckgo/extension-owners
2525
Sources/ @duckduckgo/content-scope-scripts-owners @duckduckgo/apple-devs
2626
injected/entry-points/android.js @duckduckgo/content-scope-scripts-owners @duckduckgo/android-devs
27-
injected/entry-points/extension-mv3.js @duckduckgo/content-scope-scripts-owners @kzar @sammacbeth
27+
injected/entry-points/extension-mv3.js @duckduckgo/content-scope-scripts-owners @duckduckgo/extension-owners
2828
injected/entry-points/windows.js @duckduckgo/content-scope-scripts-owners @duckduckgo/team-windows-development
2929

3030
# Test owners

build/android/autofillPasswordImport.js

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,11 @@
145145
return false;
146146
}
147147
function isFeatureBroken(args, feature) {
148-
return isPlatformSpecificFeature(feature) ? !args.site.enabledFeatures.includes(feature) : args.site.isBroken || args.site.allowlisted || !args.site.enabledFeatures.includes(feature);
148+
const isFeatureEnabled = args.site.enabledFeatures?.includes(feature) ?? false;
149+
if (isPlatformSpecificFeature(feature)) {
150+
return !isFeatureEnabled;
151+
}
152+
return args.site.isBroken || args.site.allowlisted || !isFeatureEnabled;
149153
}
150154
function camelcase(dashCaseText) {
151155
return dashCaseText.replace(/-(.)/g, (_2, letter) => {
@@ -3084,11 +3088,12 @@
30843088
* ```
30853089
* This also supports domain overrides as per `getFeatureSetting`.
30863090
* @param {string} featureKeyName
3091+
* @param {'enabled' | 'disabled'} [defaultState]
30873092
* @param {string} [featureName]
30883093
* @returns {boolean}
30893094
*/
3090-
getFeatureSettingEnabled(featureKeyName, featureName) {
3091-
const result = this.getFeatureSetting(featureKeyName, featureName);
3095+
getFeatureSettingEnabled(featureKeyName, defaultState, featureName) {
3096+
const result = this.getFeatureSetting(featureKeyName, featureName) || defaultState;
30923097
if (typeof result === "object") {
30933098
return result.state === "enabled";
30943099
}
@@ -3209,6 +3214,11 @@
32093214
* @type {boolean}
32103215
*/
32113216
__publicField(this, "listenForUrlChanges", false);
3217+
/**
3218+
* Set this to true if you wish to get update calls (legacy).
3219+
* @type {boolean}
3220+
*/
3221+
__publicField(this, "listenForUpdateChanges", false);
32123222
/** @type {ImportMeta} */
32133223
__privateAdd(this, _importConfig);
32143224
this.setArgs(this.args);
@@ -3954,6 +3964,9 @@
39543964
if (featuresToLoad.includes(featureName)) {
39553965
const ContentFeature2 = ddg_platformFeatures_default["ddg_feature_" + featureName];
39563966
const featureInstance = new ContentFeature2(featureName, importConfig, args);
3967+
if (!featureInstance.getFeatureSettingEnabled("additionalCheck", "enabled")) {
3968+
continue;
3969+
}
39573970
featureInstance.callLoad();
39583971
features.push({ featureName, featureInstance });
39593972
}
@@ -3971,6 +3984,9 @@
39713984
const resolvedFeatures = await Promise.all(features);
39723985
resolvedFeatures.forEach(({ featureInstance, featureName }) => {
39733986
if (!isFeatureBroken(args, featureName) || alwaysInitExtensionFeatures(args, featureName)) {
3987+
if (!featureInstance.getFeatureSettingEnabled("additionalCheck", "enabled")) {
3988+
return;
3989+
}
39743990
featureInstance.callInit(args);
39753991
if (featureInstance.listenForUrlChanges || featureInstance.urlChanged) {
39763992
registerForURLChanges((navigationType) => {
@@ -3995,7 +4011,7 @@
39954011
async function updateFeaturesInner(args) {
39964012
const resolvedFeatures = await Promise.all(features);
39974013
resolvedFeatures.forEach(({ featureInstance, featureName }) => {
3998-
if (!isFeatureBroken(initArgs, featureName) && featureInstance.update) {
4014+
if (!isFeatureBroken(initArgs, featureName) && featureInstance.listenForUpdateChanges) {
39994015
featureInstance.update(args);
40004016
}
40014017
});

build/android/brokerProtection.js

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1669,7 +1669,11 @@
16691669
return false;
16701670
}
16711671
function isFeatureBroken(args, feature) {
1672-
return isPlatformSpecificFeature(feature) ? !args.site.enabledFeatures.includes(feature) : args.site.isBroken || args.site.allowlisted || !args.site.enabledFeatures.includes(feature);
1672+
const isFeatureEnabled = args.site.enabledFeatures?.includes(feature) ?? false;
1673+
if (isPlatformSpecificFeature(feature)) {
1674+
return !isFeatureEnabled;
1675+
}
1676+
return args.site.isBroken || args.site.allowlisted || !isFeatureEnabled;
16731677
}
16741678
function camelcase(dashCaseText) {
16751679
return dashCaseText.replace(/-(.)/g, (_2, letter) => {
@@ -4627,11 +4631,12 @@
46274631
* ```
46284632
* This also supports domain overrides as per `getFeatureSetting`.
46294633
* @param {string} featureKeyName
4634+
* @param {'enabled' | 'disabled'} [defaultState]
46304635
* @param {string} [featureName]
46314636
* @returns {boolean}
46324637
*/
4633-
getFeatureSettingEnabled(featureKeyName, featureName) {
4634-
const result = this.getFeatureSetting(featureKeyName, featureName);
4638+
getFeatureSettingEnabled(featureKeyName, defaultState, featureName) {
4639+
const result = this.getFeatureSetting(featureKeyName, featureName) || defaultState;
46354640
if (typeof result === "object") {
46364641
return result.state === "enabled";
46374642
}
@@ -4752,6 +4757,11 @@
47524757
* @type {boolean}
47534758
*/
47544759
__publicField(this, "listenForUrlChanges", false);
4760+
/**
4761+
* Set this to true if you wish to get update calls (legacy).
4762+
* @type {boolean}
4763+
*/
4764+
__publicField(this, "listenForUpdateChanges", false);
47554765
/** @type {ImportMeta} */
47564766
__privateAdd(this, _importConfig);
47574767
this.setArgs(this.args);
@@ -8652,6 +8662,9 @@
86528662
if (featuresToLoad.includes(featureName)) {
86538663
const ContentFeature2 = ddg_platformFeatures_default["ddg_feature_" + featureName];
86548664
const featureInstance = new ContentFeature2(featureName, importConfig, args);
8665+
if (!featureInstance.getFeatureSettingEnabled("additionalCheck", "enabled")) {
8666+
continue;
8667+
}
86558668
featureInstance.callLoad();
86568669
features.push({ featureName, featureInstance });
86578670
}
@@ -8669,6 +8682,9 @@
86698682
const resolvedFeatures = await Promise.all(features);
86708683
resolvedFeatures.forEach(({ featureInstance, featureName }) => {
86718684
if (!isFeatureBroken(args, featureName) || alwaysInitExtensionFeatures(args, featureName)) {
8685+
if (!featureInstance.getFeatureSettingEnabled("additionalCheck", "enabled")) {
8686+
return;
8687+
}
86728688
featureInstance.callInit(args);
86738689
if (featureInstance.listenForUrlChanges || featureInstance.urlChanged) {
86748690
registerForURLChanges((navigationType) => {
@@ -8693,7 +8709,7 @@
86938709
async function updateFeaturesInner(args) {
86948710
const resolvedFeatures = await Promise.all(features);
86958711
resolvedFeatures.forEach(({ featureInstance, featureName }) => {
8696-
if (!isFeatureBroken(initArgs, featureName) && featureInstance.update) {
8712+
if (!isFeatureBroken(initArgs, featureName) && featureInstance.listenForUpdateChanges) {
86978713
featureInstance.update(args);
86988714
}
86998715
});

build/android/contentScope.js

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -998,7 +998,11 @@
998998
}
999999
}
10001000
function isFeatureBroken(args, feature) {
1001-
return isPlatformSpecificFeature(feature) ? !args.site.enabledFeatures.includes(feature) : args.site.isBroken || args.site.allowlisted || !args.site.enabledFeatures.includes(feature);
1001+
const isFeatureEnabled = args.site.enabledFeatures?.includes(feature) ?? false;
1002+
if (isPlatformSpecificFeature(feature)) {
1003+
return !isFeatureEnabled;
1004+
}
1005+
return args.site.isBroken || args.site.allowlisted || !isFeatureEnabled;
10021006
}
10031007
function camelcase(dashCaseText) {
10041008
return dashCaseText.replace(/-(.)/g, (_2, letter) => {
@@ -4467,11 +4471,12 @@
44674471
* ```
44684472
* This also supports domain overrides as per `getFeatureSetting`.
44694473
* @param {string} featureKeyName
4474+
* @param {'enabled' | 'disabled'} [defaultState]
44704475
* @param {string} [featureName]
44714476
* @returns {boolean}
44724477
*/
4473-
getFeatureSettingEnabled(featureKeyName, featureName) {
4474-
const result = this.getFeatureSetting(featureKeyName, featureName);
4478+
getFeatureSettingEnabled(featureKeyName, defaultState, featureName) {
4479+
const result = this.getFeatureSetting(featureKeyName, featureName) || defaultState;
44754480
if (typeof result === "object") {
44764481
return result.state === "enabled";
44774482
}
@@ -4592,6 +4597,11 @@
45924597
* @type {boolean}
45934598
*/
45944599
__publicField(this, "listenForUrlChanges", false);
4600+
/**
4601+
* Set this to true if you wish to get update calls (legacy).
4602+
* @type {boolean}
4603+
*/
4604+
__publicField(this, "listenForUpdateChanges", false);
45954605
/** @type {ImportMeta} */
45964606
__privateAdd(this, _importConfig);
45974607
this.setArgs(this.args);
@@ -9435,6 +9445,9 @@
94359445
if (featuresToLoad.includes(featureName)) {
94369446
const ContentFeature2 = ddg_platformFeatures_default["ddg_feature_" + featureName];
94379447
const featureInstance2 = new ContentFeature2(featureName, importConfig, args);
9448+
if (!featureInstance2.getFeatureSettingEnabled("additionalCheck", "enabled")) {
9449+
continue;
9450+
}
94389451
featureInstance2.callLoad();
94399452
features.push({ featureName, featureInstance: featureInstance2 });
94409453
}
@@ -9452,6 +9465,9 @@
94529465
const resolvedFeatures = await Promise.all(features);
94539466
resolvedFeatures.forEach(({ featureInstance: featureInstance2, featureName }) => {
94549467
if (!isFeatureBroken(args, featureName) || alwaysInitExtensionFeatures(args, featureName)) {
9468+
if (!featureInstance2.getFeatureSettingEnabled("additionalCheck", "enabled")) {
9469+
return;
9470+
}
94559471
featureInstance2.callInit(args);
94569472
if (featureInstance2.listenForUrlChanges || featureInstance2.urlChanged) {
94579473
registerForURLChanges((navigationType) => {
@@ -9476,7 +9492,7 @@
94769492
async function updateFeaturesInner(args) {
94779493
const resolvedFeatures = await Promise.all(features);
94789494
resolvedFeatures.forEach(({ featureInstance: featureInstance2, featureName }) => {
9479-
if (!isFeatureBroken(initArgs, featureName) && featureInstance2.update) {
9495+
if (!isFeatureBroken(initArgs, featureName) && featureInstance2.listenForUpdateChanges) {
94809496
featureInstance2.update(args);
94819497
}
94829498
});

build/apple/contentScope.js

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -998,7 +998,11 @@
998998
}
999999
}
10001000
function isFeatureBroken(args, feature) {
1001-
return isPlatformSpecificFeature(feature) ? !args.site.enabledFeatures.includes(feature) : args.site.isBroken || args.site.allowlisted || !args.site.enabledFeatures.includes(feature);
1001+
const isFeatureEnabled = args.site.enabledFeatures?.includes(feature) ?? false;
1002+
if (isPlatformSpecificFeature(feature)) {
1003+
return !isFeatureEnabled;
1004+
}
1005+
return args.site.isBroken || args.site.allowlisted || !isFeatureEnabled;
10021006
}
10031007
function camelcase(dashCaseText) {
10041008
return dashCaseText.replace(/-(.)/g, (_2, letter) => {
@@ -3956,11 +3960,12 @@
39563960
* ```
39573961
* This also supports domain overrides as per `getFeatureSetting`.
39583962
* @param {string} featureKeyName
3963+
* @param {'enabled' | 'disabled'} [defaultState]
39593964
* @param {string} [featureName]
39603965
* @returns {boolean}
39613966
*/
3962-
getFeatureSettingEnabled(featureKeyName, featureName) {
3963-
const result = this.getFeatureSetting(featureKeyName, featureName);
3967+
getFeatureSettingEnabled(featureKeyName, defaultState, featureName) {
3968+
const result = this.getFeatureSetting(featureKeyName, featureName) || defaultState;
39643969
if (typeof result === "object") {
39653970
return result.state === "enabled";
39663971
}
@@ -4081,6 +4086,11 @@
40814086
* @type {boolean}
40824087
*/
40834088
__publicField(this, "listenForUrlChanges", false);
4089+
/**
4090+
* Set this to true if you wish to get update calls (legacy).
4091+
* @type {boolean}
4092+
*/
4093+
__publicField(this, "listenForUpdateChanges", false);
40844094
/** @type {ImportMeta} */
40854095
__privateAdd(this, _importConfig);
40864096
this.setArgs(this.args);
@@ -11044,6 +11054,9 @@ Only "elements" is supported.`);
1104411054
if (featuresToLoad.includes(featureName)) {
1104511055
const ContentFeature2 = ddg_platformFeatures_default["ddg_feature_" + featureName];
1104611056
const featureInstance2 = new ContentFeature2(featureName, importConfig, args);
11057+
if (!featureInstance2.getFeatureSettingEnabled("additionalCheck", "enabled")) {
11058+
continue;
11059+
}
1104711060
featureInstance2.callLoad();
1104811061
features.push({ featureName, featureInstance: featureInstance2 });
1104911062
}
@@ -11061,6 +11074,9 @@ Only "elements" is supported.`);
1106111074
const resolvedFeatures = await Promise.all(features);
1106211075
resolvedFeatures.forEach(({ featureInstance: featureInstance2, featureName }) => {
1106311076
if (!isFeatureBroken(args, featureName) || alwaysInitExtensionFeatures(args, featureName)) {
11077+
if (!featureInstance2.getFeatureSettingEnabled("additionalCheck", "enabled")) {
11078+
return;
11079+
}
1106411080
featureInstance2.callInit(args);
1106511081
if (featureInstance2.listenForUrlChanges || featureInstance2.urlChanged) {
1106611082
registerForURLChanges((navigationType) => {
@@ -11085,7 +11101,7 @@ Only "elements" is supported.`);
1108511101
async function updateFeaturesInner(args) {
1108611102
const resolvedFeatures = await Promise.all(features);
1108711103
resolvedFeatures.forEach(({ featureInstance: featureInstance2, featureName }) => {
11088-
if (!isFeatureBroken(initArgs, featureName) && featureInstance2.update) {
11104+
if (!isFeatureBroken(initArgs, featureName) && featureInstance2.listenForUpdateChanges) {
1108911105
featureInstance2.update(args);
1109011106
}
1109111107
});

0 commit comments

Comments
 (0)