Mini Kabibi Habibi

Current Path : C:/Program Files/McAfee/WebAdvisor/MFW/packages_web_view/webadvisor/
Upload File :
Current File : C:/Program Files/McAfee/WebAdvisor/MFW/packages_web_view/webadvisor/wa-ss-toast-variants.js

/* Accept Extension UI */
(function (wa, $) {
  var ui = wa.UI = wa.UI || {};
  var _window = wa.Core.Window;
  var _external = wa.Utils.External;
  var _instrument = wa.Utils.Instrument;
  var _settings = wa.Utils.Settings;
  const TOGGLE_COUNT = "toggle_count";

  ui.accept_extension = function () {
    var $el = {
      cardImage: $(".card__image"),
      cardContent: $(".card__content"),
      contentInfoTitle: $("#info-title"),
      contentInfoText: $("#info-text"),
      checkboxQuestion: $("#checkbox-question"),
      checkboxInput: $("#set-secure-search-checkbox"),
      doneButton: $("#done"),
      toast: $(".toast"),
      setSecureSearchLabel: $("#set-secure-search-label"),
      closeIcon: $("#close-icon"),
      labelDiv: $("#label-div"),
    };

    var variantsMap = {
      // Toast variation phase 2
      1: {
        InfoTitle: "TOAST_VARIANT_1_TITLE",
        InfoText: "TOAST_VARIANT_1_INFO",
        Question: "TOAST_VARIANT_QUESTION",
        Label: "TOAST_VARIANT_CHECKLIST",
        ButtonText: "TOAST_VARIANT_BUTTON",
        ToastType: "variantOne",
        Height: "330"
      },
      2: {
        InfoTitle: "TOAST_VARIANT_2_TITLE",
        InfoText: "TOAST_VARIANT_2_INFO",
        Question: "TOAST_VARIANT_QUESTION",
        Label: "TOAST_VARIANT_CHECKLIST",
        ButtonText: "TOAST_VARIANT_BUTTON",
        ToastType: "variantTwo",
        Height: "330"
      },
      // Toast variation phase 3 cohort: 1
      8: {
        InfoTitle: "TOAST_VARIANT_TITLE_NOT_SETUP",
        InfoText: "TOAST_VARIANT_1_INFO",
        Question: "TOAST_VARIANT_QUESTION",
        Label: "TOAST_VARIANT_CHECKLIST",        
        ButtonText: "TOAST_VARIANT_BUTTON",
        BtnTxtChangable: {
          Checked: "TOAST_VARIANT_BUTTON",
          Unchecked: "TOAST_VARIANT_BUTTON_UNPROTECTED",
        },
        ToastType: "variantOne",
        Height: "330"
      },
      10: {
        InfoTitle: "TOAST_VARIANT_TITLE_FINISH_SETUP",
        InfoText: "TOAST_VARIANT_2_INFO",
        Question: "TOAST_VARIANT_QUESTION",
        Label: "TOAST_VARIANT_CHECKLIST",
        ButtonText: "TOAST_VARIANT_BUTTON",
        BtnTxtChangable: {
          Checked: "TOAST_VARIANT_BUTTON",
          Unchecked: "TOAST_VARIANT_BUTTON_UNPROTECTED",
        },
        ToastType: "variantTwo",
        Height: "330"
      },
      12: {
        InfoTitle: "TOAST_VARIANT_12_TITLE",
        InfoText: "TOAST_VARIANT_1_INFO",
        Question: "TOAST_VARIANT_QUESTION",
        Label: "TOAST_VARIANT_CHECKLIST",
        ButtonText: "TOAST_VARIANT_BUTTON",
        BtnTxtChangable: {
          Checked: "TOAST_VARIANT_BUTTON",
          Unchecked: "TOAST_VARIANT_BUTTON_NOT_WANT",
        },
        ToastType: "RegularToast_Blue",
        Height: "330"
      },
      // Toast variation phase 3 cohort: 2
      14: {
        InfoTitle: "TOAST_VARIANT_TITLE_NOT_SETUP",
        InfoText: "TOAST_VARIANT_1_INFO",
        Question: "TOAST_VARIANT_QUESTION",
        Label: "TOAST_VARIANT_CHECKLIST",
        ButtonText: "TOAST_VARIANT_BUTTON",
        ToastType: "variantOne",
        Height: "330"
      },
      16: {
        InfoTitle: "TOAST_VARIANT_TITLE_FINISH_SETUP",
        InfoText: "TOAST_VARIANT_2_INFO",
        Question: "TOAST_VARIANT_QUESTION",
        Label: "TOAST_VARIANT_CHECKLIST",
        ButtonText: "TOAST_VARIANT_BUTTON",
        ToastType: "variantTwo",
        Height: "330"
      },
      18: {
        InfoTitle: "TOAST_VARIANT_12_TITLE",
        InfoText: "TOAST_VARIANT_1_INFO",
        Question: "TOAST_VARIANT_QUESTION",
        Label: "TOAST_VARIANT_CHECKLIST",
        ButtonText: "TOAST_VARIANT_BUTTON",
        ToastType: "RegularToast",
        Height: "330"
      },
      // Toast variation phase 3 cohort: 3
      20: {
        InfoTitle: "TOAST_VARIANT_TITLE_NOT_SETUP",
        InfoText: "TOAST_VARIANT_1_INFO",
        Question: "TOAST_VARIANT_QUESTION",
        Label: "TOAST_VARIANT_CHECKLIST",
        ButtonText: "TOAST_VARIANT_BUTTON",
        BtnTxtChangable: {
          Checked: "TOAST_VARIANT_BUTTON",
          Unchecked: "TOAST_VARIANT_BUTTON_UNPROTECTED",
        },
        ToastType: "variantOne",
        Height: "330"
      },
      22: {
        InfoTitle: "TOAST_VARIANT_TITLE_FINISH_SETUP",
        InfoText: "TOAST_VARIANT_2_INFO",
        Question: "TOAST_VARIANT_QUESTION",
        Label: "TOAST_VARIANT_CHECKLIST",
        ButtonText: "TOAST_VARIANT_BUTTON",
        BtnTxtChangable: {
          Checked: "TOAST_VARIANT_BUTTON",
          Unchecked: "TOAST_VARIANT_BUTTON_UNPROTECTED",
        },
        ToastType: "variantTwo",
        Height: "330"
      },
      // Toast variation phase 3 cohort: 4
      24: {
        InfoTitle: "TOAST_VARIANT_TITLE_NOT_SETUP",
        InfoText: "TOAST_VARIANT_1_INFO",
        Question: "TOAST_VARIANT_QUESTION",
        Label: "TOAST_VARIANT_CHECKLIST",
        ButtonText: "TOAST_VARIANT_BUTTON",
        BtnTxtChangable: {
          Checked: "TOAST_VARIANT_BUTTON",
          Unchecked: "TOAST_VARIANT_BUTTON_UNPROTECTED",
        },
        ToastType: "variantOne",
        Height: "330"
      },
      26: {
        InfoTitle: "TOAST_VARIANT_TITLE_FINISH_SETUP",
        InfoText: "TOAST_VARIANT_2_INFO",
        Question: "TOAST_VARIANT_QUESTION",
        Label: "TOAST_VARIANT_CHECKLIST",
        ButtonText: "TOAST_VARIANT_BUTTON",
        BtnTxtChangable: {
          Checked: "TOAST_VARIANT_BUTTON",
          Unchecked: "TOAST_VARIANT_BUTTON_UNPROTECTED",
        },
        ToastType: "variantTwo",
        Height: "330"
      },
      28: {
        InfoTitle: "TOAST_VARIANT_1_TITLE",
        InfoText: "TOAST_VARIANT_1_INFO",
        Question: "TOAST_VARIANT_QUESTION",
        Label: "TOAST_VARIANT_CHECKLIST",
        ButtonText: "TOAST_VARIANT_BUTTON",
        BtnTxtChangable: {
          Checked: "TOAST_VARIANT_BUTTON",
          Unchecked: "TOAST_VARIANT_BUTTON_NOT_WANT",
        },
        ToastType: "RegularToast",
        Height: "330"
      },
      // Toast variation phase 3 cohort: 5
      30: {
        InfoTitle: "TOAST_VARIANT_1_TITLE",
        InfoText: "TOAST_VARIANT_1_INFO",
        Question: "TOAST_VARIANT_24_QUESTION",
        Label: "TOAST_VARIANT_CHECKLIST",
        ButtonText: "TOAST_VARIANT_BUTTON",
        BtnTxtChangable: {
          Checked: "TOAST_VARIANT_BUTTON",
          Unchecked: "TOAST_VARIANT_BUTTON_NOT_WANT",
        },
        ToastType: "variantOne",
        Height: "330"
      },
      32: {
        InfoTitle: "TOAST_VARIANT_2_TITLE",
        InfoText: "TOAST_VARIANT_2_INFO",
        Question: "TOAST_VARIANT_24_QUESTION",
        Label: "TOAST_VARIANT_CHECKLIST",
        ButtonText: "TOAST_VARIANT_BUTTON",
        BtnTxtChangable: {
          Checked: "TOAST_VARIANT_BUTTON",
          Unchecked: "TOAST_VARIANT_BUTTON_NOT_WANT",
        },
        ToastType: "variantTwo",
        Height: "330"
      },
      // Toast variation phase 3 cohort: 6
      34: {
        InfoTitle: "TOAST_VARIANT_TITLE_NOT_SETUP",
        InfoText: "TOAST_VARIANT_1_INFO",
        Question: "TOAST_VARIANT_24_QUESTION",
        Label: "TOAST_VARIANT_CHECKLIST",
        ButtonText: "TOAST_VARIANT_BUTTON",
        BtnTxtChangable: {
          Checked: "TOAST_VARIANT_BUTTON",
          Unchecked: "TOAST_VARIANT_BUTTON_UNPROTECTED",
        },
        ToastType: "variantOne",
        Height: "330"
      },
      36: {
        InfoTitle: "TOAST_VARIANT_TITLE_FINISH_SETUP",
        InfoText: "TOAST_VARIANT_2_INFO",
        Question: "TOAST_VARIANT_24_QUESTION",
        Label: "TOAST_VARIANT_CHECKLIST",
        ButtonText: "TOAST_VARIANT_BUTTON",
        BtnTxtChangable: {
          Checked: "TOAST_VARIANT_BUTTON",
          Unchecked: "TOAST_VARIANT_BUTTON_UNPROTECTED",
        },
        ToastType: "variantTwo",
        Height: "330"
      },
      38: {
        InfoTitle: "TOAST_VARIANT_12_TITLE",
        InfoText: "TOAST_VARIANT_1_INFO",
        Question: "TOAST_VARIANT_24_QUESTION",
        Label: "TOAST_VARIANT_CHECKLIST",
        ButtonText: "TOAST_VARIANT_BUTTON",
        BtnTxtChangable: {
          Checked: "TOAST_VARIANT_BUTTON",
          Unchecked: "TOAST_VARIANT_BUTTON_NOT_WANT",
        },
        ToastType: "RegularToast",
        Height: "330"
      },
    };

    function fillButtonText(btnText)
    {
      if (!btnText)
      {
        return;
      }

      if (btnText.length > 8)
      {
        $el.doneButton.attr("class", "button__unfixed__width");
      }
      else
      {
        $el.doneButton.attr("class", "button__fixed__width");
      }
      
      $el.doneButton.text(btnText);
    }

    function initComponents(variant, lang) {
      if (!variant || !lang)
      {
        return;
      }

      if (variant.BtnTxtChangable)
      {
        $el.checkboxInput.click(function () {
          var isChecked = $el.checkboxInput.is(":checked");

          _settings.increment_setting(TOGGLE_COUNT, "0");

          var btnText = "";
          if (isChecked) {
            btnText = lang(variant.BtnTxtChangable.Checked);
          }
          else {
            btnText = lang(variant.BtnTxtChangable.Unchecked);
          }
          
          fillButtonText(btnText);
        });
      }
    }

    function fillText(variant, lang) {
      $el.contentInfoTitle.append(lang(variant.InfoTitle));
      $el.contentInfoText.append(lang(variant.InfoText));
      $el.checkboxQuestion.text(lang(variant.Question));
      $el.setSecureSearchLabel.text(lang(variant.Label));

      const btnText = lang(variant.ButtonText);
      fillButtonText(btnText);
    }

    show = function () {
      _window.ready(async function () {
        var payload = JSON.parse(await _external.getArgument("toast_data"));
        await init(payload);
        _settings.increment_setting("toast_variation_phase_2_show_count", "0");
        _window.show();
        window.chrome.webview.postMessage("set_focus");       
      });
    }

    async function toastImpactTestFeatures(variantType) {
      var show_close_button = await _settings.getSettingScopedWithDefault(false, "1", "toast_variation_impact_test_close_button_show");
      var show_bigger_checkbox = await _settings.getSettingScopedWithDefault(false, "1", "toast_variation_impact_test_checkbox_show");
      var show_default_yahoo = await _settings.getSettingScopedWithDefault(false, "1", "toast_variation_impact_test_default_yahoo_show");
      var show_accept_button = await _settings.getSettingScopedWithDefault(false, "1", "toast_variation_impact_test_accept_button_show");

      if(show_close_button)
      {
        var imgRight = parseInt($el.closeIcon.css('right'), 10);
        var imgWidth = $el.closeIcon[0].width*1.5;
        chrome.webview.hostObjects.wa_external.SetDraggableOffset(0, imgRight+imgWidth);
        $el.closeIcon.css({display: 'block'});
        $el.closeIcon.click(async function () {
          var tc = await _settings.getSettingScopedWithDefault(-1, "0", TOGGLE_COUNT);
          let tc_str = tc.toString();
          var browser_type_code = await _instrument.getBrowserTypeCode();
          var provider = await _instrument.getSecureSearchProvider();
          await _instrument.sendSecureSearchToastEvent("Closed_Explicit", browser_type_code, provider, variantsMap[variantType].ToastType, "render=web_view", tc_str);

          _window.close();
        });
      }
      
      if(show_bigger_checkbox)
      {
        $el.checkboxInput.addClass('bigger_checkbox');
        $el.checkboxInput.removeClass('input_checkbox');
        if(!show_default_yahoo)
        {
          $el.labelDiv.addClass('default_label_w_checkbox');
          $el.labelDiv.addClass('width__third');
        }
      }
      
      if(show_default_yahoo)
      {
        variantsMap[variantType].Label = "TOAST_VARIANT_YAHOO_DEFAULT";
        $el.labelDiv.addClass('width__third');
        if(show_bigger_checkbox)
        {
          $el.labelDiv.addClass('yahoo_default_styling_w_checkbox');
        }
        else
        {
          $el.labelDiv.addClass('yahoo_default_styling_wo_checkbox');
        }
      }

      if(show_accept_button)
      {
        variantsMap[variantType].ButtonText = "TOAST_VARIANT_BUTTON_ACCEPT";
        variantsMap[variantType].BtnTxtChangable = {
          Checked: "TOAST_VARIANT_BUTTON_ACCEPT",
          Unchecked: "TOAST_VARIANT_BUTTON_NO_THANKS",
        }
      }
    }

    init = async function (payload) {
      var lang = wa.Utils.Lang(wa.Utils.Lang.ResType.SS_TOAST_VARIANTS).get;
      var variantType = Number(payload["secure_search_toast_variation"]);

      _window.setWidth("530");

      var variant = variantsMap[variantType];
      if (!variant)
      {
        return;
      }

      if(variantType === 14 || variantType === 16 || variantType === 18)
      {
        await toastImpactTestFeatures(variantType);
      }

      initComponents(variant, lang);
      fillText(variant, lang);

      let height = variant.Height;

      let toast_elements = document.getElementsByClassName("toast");

      if (toast_elements && toast_elements.length > 0) {
        chrome.webview.hostObjects.wa_external.log("got toast element");
        let scroll_based_height = toast_elements[0].scrollHeight + 12;
        chrome.webview.hostObjects.wa_external.log("scroll_based_height = " + scroll_based_height.toString());

        if (!height || parseInt(height) < scroll_based_height) {
          chrome.webview.hostObjects.wa_external.log("assigning height to " + scroll_based_height.toString());
          height = scroll_based_height.toString();
        }
      }

      if (height) {
        chrome.webview.hostObjects.wa_external.log("setting height to " + height);
        _window.setHeight(height);
      }

      $el.doneButton.click(async function () {
        var isChecked = $el.checkboxInput.is(":checked");
        var telemetryActionType = isChecked ? "Accepted" : "Declined";
        var nativeAction = isChecked ? wa.Core.SecureSearch.enable : wa.Core.SecureSearch.disable;
        // Set secure search
        nativeAction();
        // Action telemetry
        var tc = await _settings.getSettingScopedWithDefault(-1, "0", TOGGLE_COUNT);
        let tc_str = tc.toString();
        var browser_type_code = await _instrument.getBrowserTypeCode();
        var provider = await _instrument.getSecureSearchProvider();
        var metadata = await _instrument.getSecureSearchToastMetadata(payload, browser_type_code);
        await _instrument.sendSecureSearchToastEvent(telemetryActionType, browser_type_code, provider, variant.ToastType, metadata, tc_str);
        _window.close();
        
      });

      // Impression telemetry
      var browser_type_code = await _instrument.getBrowserTypeCode();
      var provider = await _instrument.getSecureSearchProvider();
      var metadata = await _instrument.getSecureSearchToastMetadata(payload, browser_type_code);
      await _instrument.sendSecureSearchToastEvent("Impression", browser_type_code, provider, variant.ToastType, metadata);
    }

    return {
      show: show
    }
  };

}(window.WebAdvisor = window.WebAdvisor || {}, jQuery));

$(function () {
  var toast = new WebAdvisor.UI.accept_extension();
  toast.show();
});

//1AA40A30FE8879046B3E6CE24B7C5BDFC4C1AEDD31D7EC22E8C52846BB884EDC1B26E584A23F6B33D10E2CAFFDEECFC13B5788BE82F82C60DA9CFDF33EFD97FB++