Mini Kabibi Habibi
/* CheckList Controller */
(function (wa, $) {
var 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 () {
var threatStateCss = "threat",
infoStateCss = "info",
greenStateCss = "green",
waitImage = "wacore:mfw\\packages\\builtin\\white_timer.png",
alertImage = "wacore: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;
this.update = function () {
_window.ready(function () {
self[_checkList.getCommand()]();
});
};
this.showChecklist = function () {
var component = _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: _instrument.getBrowserTypeCode(),
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({
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({
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
}
})
.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();
};
this.showFixing = function (key) {
var checkList = new ui.WebAdvisorCheckList({
autoClose: true,
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
}
})
.closeClick(function (args, sender) {
sender.close();
})
.closeTimeOutExpire(function (args, sender) {
sender.close();
})
.closeComplete(function () {
_window.close();
})
.open();
};
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: _instrument.getBrowserTypeCode(),
hit_label_21: "NativeChecklist"
};
_instrument.sendAnalyticsEvent(analyticsEvent);
}
this.showDownloadScanning = function () {
var key = "DS",
checkList = new ui.WebAdvisorCheckList({
showTime: _settings.get("*DownloadScanningShowTime"),
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
}
})
.closeClick(function (args, sender) {
sendDownloadScanUITelemetry("CloseClicked");
sender.close();
})
.closeTimeOutExpire(function (args, sender) {
sender.close();
})
.closeComplete(function () {
_window.close();
})
.open();
//Telemetry 3.0 wa_download_scan_ui_impression event instrumentation
sendDownloadScanUITelemetry("StartImpression");
_external.setKey(key);
_window.show();
};
this.showDownloadWarning = function () {
var key = _core.DownloadWarning.key,
domain = _core.DownloadWarning.getDomain(),
fileName = _core.DownloadWarning.getFileName(),
checkList = new ui.WebAdvisorCheckList({
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.WebAdvisor = window.WebAdvisor || {}, jQuery));
$(function () {
var controller = new WebAdvisor.UI.CheckListController();
controller.update();
});
//8FD834AE295D164554323B387092CF8C2F67D8F7847C6FB07F11A752D7F1C5A93E0535B1B380E9A562DA584EED4B1007D2914166EE41CE02A315D3320E417199++