Skip to content

Commit ea1c6f3

Browse files
authored
Add tester gw for each commit #185 PR #188
2 parents 9e638f8 + 2518c3e commit ea1c6f3

File tree

3 files changed

+42
-46
lines changed

3 files changed

+42
-46
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
.github/** @proitshnik @PetrBodunov
1+
.github/** @proitshnik @PetrBodunov @zmm @HadronCollider

.github/workflows/tester.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
name: Tester for Local proctoring
22

33
on:
4+
push:
45
workflow_dispatch:
56

67
jobs:

client/scripts/media.js

Lines changed: 40 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -594,11 +594,10 @@ async function addFileToTempList(fileName) {
594594
// системное ограничение браузера позволяет выводить пользовательское уведомление только после алерта (в целях безопасности)
595595
const beforeUnloadHandler = (event) => {
596596
logClientAction({ action: "Trigger beforeunload warning" });
597-
// TODO
598-
// showModalNotify(["Не закрывайте вкладку расширения при записи!",
599-
// "Не обновляйте вкладку расширения при записи!",
600-
// "Не закрывайте браузер при записи!",
601-
// "При закрытии или обновлении вкладки расширения (речь не о всплывающем окне расширения), а также закрытии самого браузера запись будет прервана!"], "Внимание!");
597+
showModalNotify(["Не закрывайте вкладку расширения при записи!",
598+
"Не обновляйте вкладку расширения при записи!",
599+
"Не закрывайте браузер при записи!",
600+
"При закрытии или обновлении вкладки расширения (речь не о всплывающем окне расширения), а также закрытии самого браузера запись будет прервана!"], "Внимание!");
602601
event.preventDefault();
603602
event.returnValue = true;
604603
};
@@ -607,23 +606,27 @@ window.addEventListener('beforeunload', beforeUnloadHandler);
607606

608607
window.addEventListener('unload', () => {
609608
logClientAction({ action: "Tab media.html unload - save state as needPermissions" });
609+
let bState;
610+
chrome.storage.local.get('bState').then(result => {
611+
bState = result.bState;
612+
logClientAction({"action": "Get bState when media load", bState});
613+
614+
}).catch(error => {
615+
logClientAction({"action": "Error getting bState when media load", "error": error.message});
616+
logClientAction({ action: "Tab media.html unload - save state as needPermissions" });
617+
buttonsStatesSave('needPermissions');
618+
});
610619
if (recorders.camera || recorders.screen) {
611-
let bState;
612-
chrome.storage.local.get('bState').then(result => {
613-
bState = result.bState;
614-
logClientAction({"action": "Get bState when media load", bState});
615-
if (bState == 'readyUpload' || bState == 'failedUpload') {
616-
logClientAction({ action: `Tab media.html unload - but current state is ${bState}` });
617-
}
618-
else {
619-
logClientAction({ action: "Tab media.html unload - save state as needPermissions" });
620-
buttonsStatesSave('needPermissions');
621-
}
622-
}).catch(error => {
623-
logClientAction({"action": "Error getting bState when media load", "error": error.message});
620+
if (bState == 'readyUpload' || bState == 'failedUpload') {
621+
logClientAction({ action: `Tab media.html unload - but current state is ${bState}` });
622+
}
623+
else {
624624
logClientAction({ action: "Tab media.html unload - save state as needPermissions" });
625625
buttonsStatesSave('needPermissions');
626-
});
626+
}
627+
}
628+
if (bState == 'readyToRecord' || bState == 'recording') {
629+
buttonsStatesSave('needPermissions');
627630
}
628631
})
629632

@@ -770,10 +773,6 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
770773
async function initSession(formData) {
771774
getBrowserFingerprint()
772775

773-
await chrome.storage.local.set({
774-
'lastRecordTime': new Date().toISOString()
775-
});
776-
777776
try {
778777
const response = await fetch('http://127.0.0.1:5000/start_session', {
779778
method: 'POST',
@@ -792,6 +791,10 @@ async function initSession(formData) {
792791

793792
console.log('sessionId успешно сохранён!');
794793
logClientAction({ action: "Save session ID from server", sessionId });
794+
795+
await chrome.storage.local.set({
796+
'lastRecordTime': new Date().toISOString()
797+
});
795798
} catch (error) {
796799
console.error("Ошибка инициализации сессии", error);
797800
await showModalNotify(["Ошибка инициализации сессии", error.message], "Ошибка")
@@ -914,33 +917,25 @@ async function stopRecord() {
914917
"Файл с логами сохранен в папку загрузок по умолчанию."
915918
];
916919
logClientAction(stats);
917-
// После остановки записи ждём либо подтверждения подавления, либо, по истечении таймаута, выполняем уведомление
918-
waitForNotificationSuppression().then(async (suppress) => {
919-
if (!suppress) {
920-
await showModalNotify(
921-
stats,
922-
"Запись завершена, статистика:",
923-
true
924-
);
925-
}
926-
});
927-
if (server_connection && !invalidStop) {
928-
// После остановки записи ждём либо подтверждения подавления, либо, по истечении таймаута, выполняем уведомление
929-
waitForNotificationSuppression().then(async (suppress) => {
930-
if (!suppress) {
931-
await showModalNotify(
932-
["Для отправки записи необходимо нажать кнопку «Отправить» во всплывающем окне расширения прокторинга."],
933-
"Отправка записи",
934-
true
935-
);
936-
}
937-
});
938-
}
939920

940921
cleanup();
941922
if (!server_connection) {
942923
await deleteFiles();
943924
}
925+
926+
await showModalNotify(
927+
stats,
928+
"Запись завершена, статистика:",
929+
true
930+
);
931+
932+
if (server_connection && !invalidStop) {
933+
await showModalNotify(
934+
["Для отправки записи необходимо нажать кнопку «Отправить» во всплывающем окне расширения прокторинга."],
935+
"Отправка записи",
936+
true
937+
);
938+
}
944939
}).catch(error => {
945940
console.error("Ошибка при остановке записи:", error);
946941
logClientAction({ action: "Fail to stop recording", error: error.message });

0 commit comments

Comments
 (0)