Mini Kabibi Habibi
/* CheckList Controller */
(function (wa) {
let ui = wa.UI = wa.UI || {},
_settings = wa.Utils.Settings,
_external = wa.Utils.External,
_instrument = wa.Utils.Instrument,
_l10n = wa.Utils.Lang().checkList(),
_tmpl = wa.UI.CheckList.templates,
_core = wa.Core,
_window = _core.Window,
_checkList = _core.CheckList;
ui.CheckListController = function () {
let threatStateCss = "threat",
infoStateCss = "info",
greenStateCss = "green",
waitImage = "file:///[WA_FILES]/MFW/packages\\builtin\\white_timer.png",
alertImage = "file:///[WA_FILES]/MFW/packages\\webadvisor\\wa-checklist-risk.png",
ignore = _l10n("IGNORE"),
fixNow = _l10n("FIX_NOW"),
defaultImageCss = "wa-state-img",
alertImageCss = "wa-state-img-threat",
self = this;
let browserCode ="(unknown)";
this.update = function () {
_window.ready(async function () {
browserCode = await _instrument.getBrowserTypeCode();
self[await _checkList.getCommand()]();
});
};
function getProductLogoHtml () {
var lang = wa.Utils.Lang(wa.Utils.Lang.ResType.SHARED);
const productNameHtml = `<span class='product-name-bold'>${lang.get('WEBADVISOR')}</span>`;
return `<div class='logo'><img src='file:///[WA_FILES]/MFW/packages\\builtin\\mcafee-logo-2024.png' align='middle'>${productNameHtml}</div>`;
}
this.showChecklist = async function () {
let component = await _core.Component.getState();
if (!component) {
_window.close();
return;
}
if (_checkList.shouldSupressThreat(component)) {
_window.close();
return;
}
sendFWAVTelemetry = function (key, action) {
var dlg_name = "";
var hit_screen_id = "";
var screen_flow = "";
switch (key) {
case _core.Component.key.FW:
dlg_name = "FWWarning";
screen_flow = "firewall";
hit_screen_id = "475.14.3.1-browser_extension-security_check-firewall-default";
break;
case _core.Component.key.AV:
dlg_name = "AVWarning";
screen_flow = "antivirus";
hit_screen_id = "475.14.1.1-browser_extension-security_check-antivirus-default";
break;
case _core.Component.key.FWAV:
dlg_name = "FWAVWarning";
screen_flow = "antivirus_firewall";
hit_screen_id = "475.14.2.1-browser_extension-security_check-antivirus_firewall-default";
break;
default:
dlg_name = "Unknown";
break;
}
if (action === null) {
action = "Unknown";
}
//Telemetry 3.0 FW_AV_Warning event instrumentation
var analyticsEvent = {
_event_name: ((action == "Impression") ? "wa_fw_av_warning_impression" : "wa_fw_av_warning_interaction"),
hit_label_8: screen_flow,
hit_label_18: dlg_name,
hit_label_19: action,
hit_label_20: browserCode,
hit_screen: hit_screen_id
}
_instrument.sendAnalyticsEvent(analyticsEvent);
}
var settingKey = component.name[1] || component.name[0],
name = component.name[0],
key = _core.Component.key,
actions = component.actions,
checkList,
dialog;
switch (component.key) {
case key.FW:
case key.AV:
case key.FWAV:
dialog = new ui.WebAdvisorDialog({
dialogWidth: "473px",
dialogCustomStyle: "min-height:279px;",
header: {
html: _l10n(name + "_DIALOG_HEADER"),
css: threatStateCss
},
content: {
html: _l10n(name + "_DIALOG_CONTENT")
},
buttons: [{
text: ignore,
click: function () {
_core.Component.ignore(settingKey);
sendFWAVTelemetry(component.key, "AcceptRisk");
dialog.close(function () {
checkList.close(function () {
_window.close();
});
});
}
}, {
text: fixNow,
click: function () {
_core.Component.fix(actions, settingKey);
sendFWAVTelemetry(component.key, "FixClicked");
dialog.close(function () {
checkList.close(function () {
self.showFixing(name);
});
});
}
}]
});
checkList = new ui.WebAdvisorCheckList({
window_width: await _window.getWidth(),
message: {
text: _l10n("THREAT_OFF_MESSAGE"),
css: threatStateCss
},
state: {
template: _tmpl.defaultState({
text: _l10n("THREAT_OFF_STATE"),
image: alertImage,
imageCss: alertImageCss
}, actions, "OFF"),
css: threatStateCss
},
title: getProductLogoHtml(),
closeImage: "file:///[WA_FILES]/MFW/packages_web_view\\nps\\nps_close.png",
notSetBorder: true,
})
.closeClick(function (args, sender) {
sendFWAVTelemetry(component.key, "ClosedExplicit");
dialog.close(function () {
sender.close(function () {
_window.close();
});
});
})
.open(function () {
dialog.open();
});
sendFWAVTelemetry(component.key, "Impression");
break;
default:
_window.close();
return;
}
_external.setKey(name);
_window.show();
window.chrome.webview.postMessage("set_focus");
};
this.showFixing = async function (key) {
var checkList = new ui.WebAdvisorCheckList({
autoClose: true,
showTime: await _settings.get("*ChecklistShowTime"),
showTimeMouseout: await _settings.get("showTimeMouseout"),
window_width: await _window.getWidth(),
message: {
text: _l10n("FIX_MESSAGE_TEXT"),
css: infoStateCss
},
state: {
template: _tmpl.defaultState({
text: _l10n("FIX_STATE_TEXT"),
image: waitImage,
imageCss: defaultImageCss
}, key, "FIX"),
css: infoStateCss
},
title: getProductLogoHtml(),
closeImage: "file:///[WA_FILES]/MFW/packages_web_view\\nps\\nps_close.png",
notSetBorder: true,
})
.closeClick(function (args, sender) {
sender.close();
})
.closeTimeOutExpire(function (args, sender) {
sender.close();
})
.closeComplete(function () {
_window.close();
})
.open();
_window.show();
window.chrome.webview.postMessage("set_focus");
};
sendDownloadScanUITelemetry = function (action) {
var analyticsEvent = {
_event_name: (action === 'StartImpression' ? "wa_download_scan_ui_impression" : "wa_download_scan_ui_interaction"),
hit_label_18: "DownloadScanUI",
hit_label_19: action,
hit_label_20: browserCode,
hit_label_21: "NativeChecklist"
};
_instrument.sendAnalyticsEvent(analyticsEvent);
}
this.showDownloadScanning = async function () {
let key = "DS";
let checkList = null;
checkList = new ui.WebAdvisorCheckList({
showTime: await _settings.get("*DownloadScanningShowTime"),
window_width: await _window.getWidth(),
showTimeMouseout: await _settings.get("showTimeMouseout"),
autoClose: true,
message: {
text: _l10n("DL_SCANNING_MESSAGE"),
css: infoStateCss
},
state: {
template: _tmpl.defaultState({
text: _l10n("DL_SCANNING_STATE"),
image: waitImage,
imageCss: defaultImageCss
}, key, "SCAN"),
css: infoStateCss
}
});
checkList.closeClick(function (args, sender) {
sendDownloadScanUITelemetry("CloseClicked");
sender.close();
});
checkList.closeTimeOutExpire(function (args, sender) {
sender.close();
});
checkList.closeComplete(function () {
_window.close();
});
checkList.open();
sendDownloadScanUITelemetry("StartImpression");
_external.setKey(key);
_window.show();
window.chrome.webview.postMessage("set_focus");
};
this.showDownloadWarning = async function () {
var key = _core.DownloadWarning.key,
domain = await _core.DownloadWarning.getDomain(),
fileName = await _core.DownloadWarning.getFileName(),
checkList = new ui.WebAdvisorCheckList({
window_width: await _window.getWidth(),
message: {
text: _l10n("DW_MESSAGE"),
css: threatStateCss
},
state: {
template: _tmpl.defaultState({
text: _l10n("PP_STATE_TEXT"),
image: alertImage,
imageCss: alertImageCss
}, key, "DOWNLOAD"),
css: threatStateCss
}
}),
dialog = new ui.WebAdvisorDialog({
header: {
html: _l10n("DW_TITLE"),
css: threatStateCss
},
content: {
html: _l10n("DW_TEXT") +
"<ul id='wa-dialog-dw-content'>" +
"<li>{0}:<span id='filename' class='wa-dialog-dw-bold'>{1}</span></li>"
.format(_l10n("DW_FILENAME"), fileName) +
"<li>{0}:<span id='domain' class='wa-dialog-dw-bold'>{1}</span></li>"
.format(_l10n("DW_DOMAIN"), domain) +
"</ul>"
},
buttons: [{
text: _l10n("DW_BUTTON_ACCEPT"),
click: function () {
_core.DownloadWarning.allow();
dialog.close(function () {
checkList.close(function () {
_window.close();
});
});
}
}, {
text: _l10n("DW_BUTTON_BLOCK"),
click: function () {
dialog.close(function () {
checkList.close(function () {
_window.close();
});
});
}
}]
});
checkList.closeClick(function () {
dialog.close(function (args, sender) {
checkList.close(function () {
_window.close();
});
});
})
.open(function () {
dialog.open();
_core.DownloadWarning.uiDisplayed();
});
_external.setKey(key);
_window.show();
window.chrome.webview.postMessage("set_focus");
};
};
}(window.WebAdvisor = window.WebAdvisor || {}));
let controller = null;
try {
controller = new WebAdvisor.UI.CheckListController();
}
catch (error) {
chrome.webview.hostObjects.wa_external.log("new WebAdvisor.UI.CheckListController exception " + error.message);
}
controller.update();
//05EC3E9F12CB63CCBA6E4D601AC6FBC6865201381E374037654D5F2C50A45A72ECC24C2740589E1079B70B802DDB9EDD0A8E352D8BE0EBF772976E3777B79D0A++