Skip to content

Commit 0e14832

Browse files
committed
Fix download via popup on Edge
Fixes: #208 Signed-off-by: Simon Bennetts <psiinon@gmail.com>
1 parent 1dfa82f commit 0e14832

File tree

6 files changed

+22
-18
lines changed

6 files changed

+22
-18
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
88
### Fixed
99
- Download on script completion on Chrome.
1010
- Download file date string.
11+
- Download via popup on Edge.
12+
- Close notification dialog when script downloaded directly.
1113

1214
## 0.1.2 - 2025-06-17
1315

CHANGELOG.rec.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
88
### Fixed
99
- Download on script completion on Chrome.
1010
- Download file date string.
11+
- Download via popup on Edge.
12+
- Close notification dialog when script downloaded directly.
1113

1214
## 0.1.2 - 2025-06-17
1315

source/Background/index.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import {
3030
REPORT_OBJECT,
3131
RESET_ZEST_SCRIPT,
3232
SESSION_STORAGE,
33-
SET_SAVE_SCRIPT_ENABLE,
3433
STOP_RECORDING,
3534
ZEST_SCRIPT,
3635
} from '../utils/constants';
@@ -249,11 +248,6 @@ async function handleMessage(
249248
}
250249
break;
251250
}
252-
case SET_SAVE_SCRIPT_ENABLE:
253-
Browser.storage.sync.set({
254-
zapenablesavescript: zestScript.getZestStatementCount() > 0,
255-
});
256-
break;
257251

258252
default:
259253
// Handle unknown request type

source/Popup/index.tsx

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import {
2525
GET_ZEST_SCRIPT,
2626
IS_FULL_EXTENSION,
2727
RESET_ZEST_SCRIPT,
28-
SET_SAVE_SCRIPT_ENABLE,
2928
STOP_RECORDING,
3029
UPDATE_TITLE,
3130
ZAP_START_RECORDING,
@@ -90,14 +89,12 @@ function startedAnimation(): void {
9089

9190
async function restoreState(): Promise<void> {
9291
console.log('Restore state');
93-
await Browser.runtime.sendMessage({type: SET_SAVE_SCRIPT_ENABLE});
9492
optionsIcon.title = OPTIONS;
9593
downloadIcon.title = DOWNLOAD;
9694
Browser.storage.sync
9795
.get({
9896
zaprecordingactive: false,
9997
zapscriptname: '',
100-
zapenablesavescript: false,
10198
})
10299
.then((items) => {
103100
if (items.zaprecordingactive) {
@@ -111,11 +108,6 @@ async function restoreState(): Promise<void> {
111108
} else {
112109
done?.classList.add('invisible');
113110
}
114-
if (!items.zapenablesavescript) {
115-
saveScriptButton.classList.add('disabled');
116-
} else {
117-
saveScriptButton.classList.remove('disabled');
118-
}
119111
});
120112
}
121113

@@ -149,7 +141,9 @@ function startRecording(): void {
149141
}
150142

151143
function toggleRecording(e: Event): void {
144+
console.log('ZAP toggleRecording');
152145
e.preventDefault();
146+
saveScriptButton.classList.remove('disabled');
153147
Browser.storage.sync.get({zaprecordingactive: false}).then((items) => {
154148
if (items.zaprecordingactive) {
155149
stopRecording();
@@ -189,7 +183,14 @@ function openHelpPage(): void {
189183
closePopup();
190184
}
191185

192-
function downloadZestScript(zestScriptJSON: string, title: string): void {
186+
function downloadZestScript(
187+
zestScriptJSON: string,
188+
title: string,
189+
statementCount: number
190+
): void {
191+
if (statementCount === 0) {
192+
return;
193+
}
193194
if (title === '') {
194195
scriptNameInput?.focus();
195196
return;
@@ -211,11 +212,12 @@ async function handleSaveScript(): Promise<void> {
211212
zaprecordingactive: false,
212213
});
213214
if (storageItems.zaprecordingactive) {
215+
sendMessageToContentScript(ZAP_STOP_RECORDING);
214216
await Browser.runtime.sendMessage({type: STOP_RECORDING});
215217
}
216218
Browser.runtime.sendMessage({type: GET_ZEST_SCRIPT}).then((items) => {
217219
const msg = items as ZestScriptMessage;
218-
downloadZestScript(msg.script, msg.title);
220+
downloadZestScript(msg.script, msg.title, msg.statementCount);
219221
});
220222
}
221223

source/types/zestScript/ZestScript.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import Browser from 'webextension-polyfill';
2222
interface ZestScriptMessage {
2323
script: string;
2424
title: string;
25+
statementCount: number;
2526
}
2627

2728
class ZestScript {
@@ -93,7 +94,11 @@ class ZestScript {
9394
return new Promise((resolve) => {
9495
Browser.storage.sync.get({zapscriptname: this.title}).then((items) => {
9596
this.title = items.zapscriptname as string;
96-
resolve({script: this.toJSON(), title: this.title});
97+
resolve({
98+
script: this.toJSON(),
99+
title: this.title,
100+
statementCount: this.getZestStatementCount(),
101+
});
97102
});
98103
});
99104
}

source/utils/constants.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ export const DEFAULT_WINDOW_HANDLE = 'windowHandle1';
3838

3939
export const ZAP_STOP_RECORDING = 'zapStopRecording';
4040
export const ZAP_START_RECORDING = 'zapStartRecording';
41-
export const SET_SAVE_SCRIPT_ENABLE = 'setSaveScriptEnable';
4241
export const ZEST_SCRIPT = 'zestScript';
4342

4443
export const STOP_RECORDING = 'stopRecording';

0 commit comments

Comments
 (0)