Mini Kabibi Habibi
/* Utilities */
var _langResources_ = {
checklist: (typeof _lrCheckList_ !== "undefined") && _lrCheckList_,
shared: (typeof _lrShared_ !== "undefined") && _lrShared_,
uninstall: (typeof _lrUninstall_ !== "undefined") && _lrUninstall_,
sstoast: (typeof _lrSecureSearchToast_ !== "undefined") && _lrSecureSearchToast_,
install: (typeof _lrInstall_ !== "undefined") && _lrInstall_,
webboost: (typeof _lrWebBoost_ !== "undefined") && _lrWebBoost_,
waiff: (typeof _lrExtensionInstall_ !== "undefined" && _lrExtensionInstall_),
overlay: (typeof _lrOverlay_ !== "undefined" && _lrOverlay_),
ssToastVariants: (typeof _lrSSToastVariants_ !== "undefined" && _lrSSToastVariants_)
};
(function (wa, lr) {
var util = wa.Utils = wa.Utils || {};
util.Lang = function(type) {
var getLangResource = function(type) {
switch (type) {
case 1:
return lr.checklist;
case 3:
return lr.shared;
case 4:
return lr.uninstall;
case 5:
return lr.sstoast;
case 6:
return lr.install;
case 7:
return lr.webboost;
case 8:
return lr.waiff;
case 9:
return lr.ut;
case 10:
return lr.overlay;
case 12:
return lr.ssToastVariants;
}
},
defaultLangRes = getLangResource(type),
getLang = function (type, key) {
if (type) {
return getLangResource(type)[key];
}
return defaultLangRes[key];
},
loadResource = function (key) {
var cache = util.Lang.cache;
if (key in cache) {
return cache[key];
} else {
if (window[key] || typeof window[key] !== "undefined") {
return cache[key] = window[key];
}
}
},
getResource = function (key) {
var resource = loadResource(key);
return function (key) {
return resource[key];
}
};
return {
get: function (key, type) {
return getLang(type, key);
},
checkList: function () {
return getResource("_lrCheckList_");
},
shared: function () {
return getResource("_lrShared_");
}
};
};
util.Lang.cache = {};
util.Lang.ResType = {
CHECKLIST: 1,
SHARED: 3,
UNINSTALL: 4,
SSTOAST: 5,
INSTALL: 6,
WEBBOOST: 7,
WAIFF: 8,
UT: 9,
OVERLAY: 10,
SS_TOAST_VARIANTS: 12
};
util.Settings = function () {
var defaultSettings = {
ignoreDuration: "14",
startIgnoreDateFW: "",
startIgnoreDateAV: "",
fixGracePeriodDuration: "24",
fixGracePeriodStartDateFW: "",
fixGracePeriodStartDateAV: "",
showTimeMouseout: 2000,
expiryDays: 60,
version: "",
"*Icons": true,
"*WhiteList": "",
"*ChecklistShowTime": 5000,
"*DownloadScanningShowTime": 4000,
"*DownloadScanningCompleteShowTime": 10000,
"*ChecklistShowSafeState": false,
"*CounterDownloadsScanned": 0,
"*CounterDownloadsBlocked": 0,
"*CounterPagesScanned": 0,
"*CounterPagesBlocked": 0,
"*CounterCryptoJackingBlocked": 0,
"*OnlyShowAnnotationsOnSecureSearch": true,
"*Affid": "0",
"*Premium": false,
"*McAfeeNoThreatStartupTimer": "300000", // 5 * 60 * 1000 = 5 minutes
"*Suite": false,
"*IsUpdateFromSAToWA": false,
"*IsDefaultAnnotationOptionsSet": false,
"*ShowSearchSettings": true,
"*FeatureDisableNPSSurvey": false,
"NPSSurveyShown": false,
"*SiteAdvisorURL": "https://www.siteadvisor.com",
"HowItWorksUrl": "",
"CryptojackingDisabled": true,
"*Locale": "en_us",
"chrome_search_compliance_disabled": true,
"SECURE_SEARCH_PROVIDER_NAME_ID": "SEARCH_ENGINE_YAHOO",
"ff_extension_toast_count": 0,
"wss_trial_expiry_offer": "",
"search_state_ed": 0
},
// SYSTEM SCOPE = 1, USER SCOPE = 0
defaultScope = "1",
getVersion = function () {
return window.external.GetVersion();
},
getSetting = function (key, scope) {
return getSettingScoped(scope || defaultScope, key);
},
getSettingScoped = function (scope, key) {
return window.external.GetSetting(defaultSettings[key], scope, key);
},
getSettingScopedWithDefault = function (defaultKeyVal, scope, key) {
return window.external.GetSetting(defaultKeyVal, scope, key);
}
setSetting = function(key, item, scope) {
setSettingScoped(scope || defaultScope, key, item);
},
setSettingScoped = function (scope, key, item) {
window.external.SetSetting(scope, key, item);
},
settingExists = function (key, scope) {
return window.external.DoesSettingExist(key, scope);
};
notifySettingChanged = function () {
window.external.NotifySettingChange();
};
return {
get: getSetting,
getSettingScopedWithDefault: getSettingScopedWithDefault,
set: setSetting,
exists: settingExists,
notify: notifySettingChanged,
increment_setting: function (key, scope) {
var value = window.external.GetSetting(0, scope, key);
window.external.SetSetting(scope, key, value + 1);
},
getToday: function() {
return new Date();
},
getVersion: function () {
return getVersion();
}
};
}();
util.Instrument = function () {
var external = window.external,
// This is still needed for the 'adhoc' telemetry performed by the installer
// and the uninstaller.
logEvent = function (ec, ea, el) {
if (typeof el === "undefined") {
el = "default";
}
external.ReportUIEvent(ec, ea, el);
};
_sendAnalyticsEvent = function (event_data) {
var analyticsEvent = JSON.stringify(event_data)
external.SendAnalyticsEvent(analyticsEvent);
};
_getBrowserTypeCode = function() {
return external.GetBrowserTypeCode();
};
_getSecureSearchProvider = function () {
var setting_name = "telemetry_provider_name_" + external.GetBrowserTypeCode().toLowerCase();
return window.external.GetSetting("Yahoo", "2", setting_name);
};
_sendSecureSearchToastEvent = function (action_type, browser, provider, toast_type, meta_data, toggle_count) {
if (toggle_count == undefined) {
toggle_count = "-1";
}
if (meta_data == undefined) {
meta_data = "default";
}
//Telemetry 3
var analyticsEvent = {
_event_name: "wa_secure_search_toast_impression",
action_type: action_type,
browser: browser,
provider: provider,
toast_type: toast_type,
meta_data: meta_data
};
if (action_type != "Impression") {
analyticsEvent._event_name = "wa_secure_search_toast_interaction";
analyticsEvent.toggle_count = toggle_count;
if(action_type == "Accepted"){
external.SetSetting(
"0",
"ss_accept_timestamp_"+browser.toLowerCase(),
Math.floor(Date.now() / 1000)
);
}
}
_sendAnalyticsEvent(analyticsEvent);
};
_getSecureSearchToastMetadata = function (showCloseBtn, browser) {
var metadata = "close_btn=" + Number(showCloseBtn);
//Used for ss toast telemetry in c++ for Alt+F4 case.
external.SetSetting("1", "ss_toast_telemetry_metadata_" + browser.toLowerCase(), metadata);
return metadata;
};
return {
log: logEvent,
sendAnalyticsEvent: _sendAnalyticsEvent,
getBrowserTypeCode: _getBrowserTypeCode,
getSecureSearchProvider: _getSecureSearchProvider,
sendSecureSearchToastEvent: _sendSecureSearchToastEvent,
getSecureSearchToastMetadata: _getSecureSearchToastMetadata
};
}();
util.External = function () {
var external = window.external,
close = function () {
external.Close();
},
getArgument = function (key) {
return external.GetArgument(key)
},
setKey = function (key) {
return external.SetKey(key)
},
actionEvent = function (key, waitTimeInMs) {
external.ActionEvent(key, waitTimeInMs);
},
isBrowserRunning = function () {
return external.CheckIsABrowserRunning();
},
isInitialized = function () {
return external.IsInitialized();
},
getTickCount = function () {
return external.GetTickCount();
},
isUninstallComplete = function () {
return external.CheckIsUninstallComplete();
},
isUpdaterRunning = function () {
return external.CheckIsUpdaterRunning();
},
show = function () {
external.Show();
},
setDraggableOffset = function (uArgNum, avarArgs) {
external.SetDraggableOffset(uArgNum, avarArgs);
},
minimize = function () {
external.minimize();
},
get_parent_window_name = function () {
return external.get_parent_window_name();
},
shutDownBrowsers = function () {
external.ShutdownAllBrowsers();
},
startUninstall = function () {
external.Uninstall();
},
getWindowWidth = function () {
return external.GetWindowWidth();
},
getWindowHeight = function () {
return external.GetWindowHeight();
},
setWindowHeight = function (value) {
external.SetWindowHeight(value);
},
setWindowWidth = function (value) {
external.SetWindowWidth(value);
},
queryRegistryKeyExists = function (keyParent, keyName, regSam) {
return external.QueryRegistryKeyExists(keyParent, keyName, regSam);
},
queryRegistryStringValue = function (keyParent, keyName, keyValue, regSam) {
return external.QueryRegistryStringValue(keyParent, keyName, keyValue, regSam);
},
getResourceString = function (id) {
return external.GetResourceString(id);
},
getBrowserType = function () {
return external.GetBrowserType();
};
setUIDisplayedEvent = function () {
return external.SetUIDisplayedEvent();
};
encrypt = function (input) {
return external.Encrypt(input);
};
browserNavigate = function (browserType, url) {
return external.BrowserNavigate(browserType, url);
};
trigger_mfw_event = function (event_name, payload) {
return external.trigger_mfw_event(event_name, payload);
};
getInstallDir = function () {
return external.GetInstallDir();
};
trigger_extension_generic_message = function (event_name, data_name, data_value, data_type) {
return external.extension_generic_message_handler(event_name, data_name, data_value, data_type);
};
return {
close: close,
getArgument: getArgument,
actionEvent: actionEvent,
isBrowserRunning: isBrowserRunning,
isInitialized: isInitialized,
getTickCount: getTickCount,
isUninstallComplete: isUninstallComplete,
isUpdaterRunning: isUpdaterRunning,
show: show,
setDraggableOffset: setDraggableOffset,
minimize: minimize,
get_parent_window_name: get_parent_window_name,
shutDownBrowsers: shutDownBrowsers,
startUninstall: startUninstall,
getWindowWidth: getWindowWidth,
getWindowHeight: getWindowHeight,
setKey: setKey,
setWindowHeight: setWindowHeight,
setWindowWidth: setWindowWidth,
queryRegistryKeyExists: queryRegistryKeyExists,
queryRegistryStringValue: queryRegistryStringValue,
getResourceString: getResourceString,
getBrowserType: getBrowserType,
setUIDisplayedEvent: setUIDisplayedEvent,
encrypt: encrypt,
browserNavigate: browserNavigate,
trigger_mfw_event: trigger_mfw_event,
getInstallDir: getInstallDir
};
}();
util.Misc = function () {
var _getQualifiedToastType = function (toast_type, cohort) {
if (cohort === 4) {
return toast_type + "_stand_alone";
} else {
return toast_type + "_with_wps";
}
};
return {
getQualifiedToastType: _getQualifiedToastType
};
}();
String.prototype.parseBasicDate = function () {
var year = this.substring(0, 4);
var month = this.substring(4, 6);
var day = this.substring(6, 8);
return new Date(year + "/" + month + "/" + day);
};
String.prototype.format = function () {
var format = this;
for (var i = 0; i < arguments.length; i++) {
format = format.replace("{" + i + "}", arguments[i]);
}
return format;
};
Date.prototype.addDays = function (days) {
var dat = new Date(this.valueOf());
dat.setDate(dat.getDate() + days);
return dat;
};
Date.prototype.addHours = function (hours) {
var dat = new Date(this.valueOf());
dat.setHours(dat.getHours() + hours);
return dat;
};
Date.prototype.getBasicDateString = function () {
var year = (this.getFullYear()).toString();
var month = ('0' + (this.getMonth() + 1)).slice(-2);
var day = ('0' + (this.getDate())).slice(-2);
return year + month + day;
};
}(window.WebAdvisor = window.WebAdvisor || {}, _langResources_));
//1734A034BA1344508B0B5455839A98E23F7A35F7B8C6347E80068445DED2D18F4E266735C422D851833B1B01879B09D5D3A827F1B2A09D49130520A852813982++