Skip to content

Commit bea4d75

Browse files
mgurgelgithub-actions[bot]
authored andcommitted
Release build 7.6.0 [ci release]
1 parent 2e2baf7 commit bea4d75

File tree

12 files changed

+93
-10
lines changed

12 files changed

+93
-10
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Delete manually created release
2+
3+
on:
4+
release:
5+
types:
6+
- created
7+
8+
jobs:
9+
validate-release:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Check out the repository
13+
uses: actions/checkout@v3
14+
15+
- name: Delete Release
16+
env:
17+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
18+
run: |
19+
echo "Deleting release: ${{ github.event.release.tag_name }}"
20+
gh release delete ${{ github.event.release.tag_name }} --yes
21+
22+
- name: Delete the release and tag
23+
env:
24+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
25+
run: |
26+
echo "Deleting tag: ${{ github.event.release.tag_name }}"
27+
git tag -d ${{ github.event.release.tag_name }}
28+
git push origin --delete ${{ github.event.release.tag_name }}
29+
30+
- name: Why was this release deleted?
31+
run: |
32+
cat <<EOF
33+
Our release process commits assets to the 'releases' branch - and that has to occur before the
34+
git tag is created. Because of that fact, we need to prevent anyone from creating a release in the GitHub UI.
35+
36+
Instead, use the release workflow.
37+
EOF

.npmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
engine-strict=true
2+
node-options=--no-experimental-require-module

.nvmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
22.11
1+
22

CHANGELOG.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
- Copy review: Site may be malicious (#266)
2-
- Node 22.11 (#276)
1+
- Malicious website protection - iOS support (#252)
2+
- ci: add release protection (#283)
3+
- Disabling experimental require module on node (#277)

build/app/public/js/base.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14005,7 +14005,7 @@
1400514005
const isIsProtectedSet = typeof protections !== "undefined";
1400614006
const isTrackerBlockingDataSet = typeof trackerBlockingData === "object";
1400714007
const isLocaleSet = typeof locale === "string";
14008-
const isMaliciousSiteSet = isIOS() || maliciousSiteStatus && maliciousSiteStatus.kind !== void 0;
14008+
const isMaliciousSiteSet = maliciousSiteStatus && maliciousSiteStatus.kind !== void 0;
1400914009
if (!isLocaleSet || !isUpgradedHttpsSet || !isIsProtectedSet || !isTrackerBlockingDataSet || !isMaliciousSiteSet) {
1401014010
return;
1401114011
}
@@ -15015,7 +15015,7 @@
1501515015
initialScreen: screen,
1501615016
opener,
1501715017
supportsInvalidCertsImplicitly: platform2.name !== "browser" && platform2.name !== "windows",
15018-
supportsMaliciousSiteWarning: platform2.name === "macos",
15018+
supportsMaliciousSiteWarning: platform2.name === "macos" || platform2.name === "ios",
1501915019
includeToggleOnBreakageForm,
1502015020
breakageScreen,
1502115021
randomisedCategories,
@@ -15205,7 +15205,7 @@
1520515205
if (!this.tab)
1520615206
return;
1520715207
const nextState = (() => {
15208-
if (this.features.supportsMaliciousSiteWarning && this.tab.maliciousSiteStatus) {
15208+
if (this.features.supportsMaliciousSiteWarning && typeof this.tab.maliciousSiteStatus === "object") {
1520915209
const { kind } = this.tab.maliciousSiteStatus;
1521015210
if (kind === "phishing" || kind === "malware") {
1521115211
return kind;

integration-tests/ios.spec-int.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@ test.describe('temporary reporting flows', () => {
226226
await dash.mocks.calledForAlert('missingDescription');
227227
});
228228
});
229+
229230
test('opens to category selection from primary screen when breakageScreen param is present', async ({ page }) => {
230231
const dash = await DashboardPage.webkit(page, { breakageScreen: 'categorySelection', platform: 'ios' });
231232
await dash.reducedMotion();
@@ -271,6 +272,49 @@ test.describe('temporary reporting flows', () => {
271272
});
272273
});
273274

275+
test.describe('phishing & malware protection', () => {
276+
test('phishing warning', { tag: '@screenshots' }, async ({ page }) => {
277+
/** @type {DashboardPage} */
278+
const dash = await DashboardPage.webkit(page, { platform: 'ios' });
279+
await dash.addState([testDataStates.phishing]);
280+
await dash.screenshot('phishing-warning.png');
281+
await dash.hasPhishingIcon();
282+
await dash.hasPhishingHeadingText();
283+
await dash.hasPhishingWarningText();
284+
await dash.hasPhishingStatusText();
285+
await dash.connectionLinkDoesntShow();
286+
});
287+
288+
test('malware warning', { tag: '@screenshots' }, async ({ page }) => {
289+
/** @type {DashboardPage} */
290+
const dash = await DashboardPage.webkit(page, { platform: 'ios' });
291+
await dash.addState([testDataStates.malware]);
292+
await dash.page.pause();
293+
await dash.screenshot('malware-warning.png');
294+
await dash.hasMalwareIcon();
295+
await dash.hasMalwareHeadingText();
296+
await dash.hasMalwareWarningText();
297+
await dash.hasMalwareStatusText();
298+
await dash.connectionLinkDoesntShow();
299+
});
300+
301+
test('shows report as safe link', async ({ page }) => {
302+
/** @type {DashboardPage} */
303+
const dash = await DashboardPage.webkit(page, { platform: 'ios' });
304+
await dash.addState([testDataStates.malware]);
305+
await dash.clickReportAsSafeLink();
306+
await dash.mocks.calledForReportAsSafeLink('https://privacy-test-pages.site/security/badware/malware.html');
307+
});
308+
309+
test('shows help page link', async ({ page }) => {
310+
/** @type {DashboardPage} */
311+
const dash = await DashboardPage.webkit(page, { platform: 'ios' });
312+
await dash.addState([testDataStates.malware]);
313+
await dash.clickHelpPageLink();
314+
await dash.mocks.calledForHelpPagesLink();
315+
});
316+
});
317+
274318
test.describe('screenshots', { tag: '@screenshots' }, () => {
275319
const states = [
276320
{ name: '01', state: testDataStates.protectionsOn },
Loading
Loading

shared/js/browser/macos-communication.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ const resolveInitialRender = function () {
8989
const isIsProtectedSet = typeof protections !== 'undefined';
9090
const isTrackerBlockingDataSet = typeof trackerBlockingData === 'object';
9191
const isLocaleSet = typeof locale === 'string';
92-
const isMaliciousSiteSet = isIOS() || (maliciousSiteStatus && maliciousSiteStatus.kind !== undefined);
92+
const isMaliciousSiteSet = maliciousSiteStatus && maliciousSiteStatus.kind !== undefined;
9393
if (!isLocaleSet || !isUpgradedHttpsSet || !isIsProtectedSet || !isTrackerBlockingDataSet || !isMaliciousSiteSet) {
9494
return;
9595
}

shared/js/browser/utils/communication-mocks.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ export async function mockDataProvider(params) {
5050
window.onChangeLocale?.(state.localeSettings);
5151
window.onChangeRequestData(state.url, { requests: state.requests || [] });
5252

53-
if (platform?.name === 'macos') {
53+
if (platform?.name === 'macos' || platform?.name === 'ios') {
5454
window.onChangeMaliciousSiteStatus?.(state.maliciousSiteStatus);
5555
}
5656
}

0 commit comments

Comments
 (0)