Mini Kabibi Habibi

Current Path : C:/Program Files/McAfee/WebAdvisor/MFW/packages/webadvisor/
Upload File :
Current File : C:/Program Files/McAfee/WebAdvisor/MFW/packages/webadvisor/wa-controller-checklist.js

/* 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++