Anyone using Kaspersky Password Manager?
-
I am a Kaspersky Total Security customer, also using their Password Manager. There is an Chrome Extension that party works with Vivaldi. It general it works pretty well.
The main issue I got is that you can set a default browser in the setting for Kaspersky Password Manager. Vivaldi is sadly not a supported browser, only IE, Chrome and Firefox. Therefore opening a website from KPM it will open one of the other browsers. It looks to be a quick fix to add Vivaldi, well some testing will be required.
Emailing Kaspersky Support they got no plans adding Vivaldi as a supported browser. My question is? Am I the only one using this combination?
-
It worked like a charm for me until today after installing the last version of KPM (9.0.1.447). The previous version just considered Vivaldi as a second instance of Chrome.
But now, the extension is still there but is grayed out and, when I click on it (see image below), I'm invited to put my KPM password and... it doesn't work. My password (which is the correct one) isn't recognized.
It's strange because I tried to use it in Google Chrome and it works fine.
So, it seems to be incompatible with Vivaldi now.
Does anyone have the same issue? Any suggestion?Thanks in advance for your reactions.
-
@ornorm Couldn't find the extension. It's neither available on the chrome web store nor on the kaspersky site. They have info about installing the extension but no direct link. Hard to look into it without the code.
-
@luetage Thank you for your quick answer.
You can find it here Kaspersky Password Manager -
@ornorm Oh yeah, I'll look into it. I think the extension could potentially be tricked into thinking Vivaldi is Chrome.
-
@luetage Yes, it was the case before and, by doing so, KPM allowed me to open any site by using Vivaldi as default browser which isn't the case anymore. Now, it opens the sites into Google Chrome directly.
-
@ornorm The user agent is being checked in
background.js
. This can be disabled and just made to return Chrome. But I can't test/do it since the extension only works with kaspersky installed and I'm on macOS. -
@gwen-dragon Thank you Gwen-Dragon, I've just created a bug report as you suggested (VB-40630)
-
@luetage Thank you for your kind assistance. I've created a bug report. Let's see what can be found there.
-
@gwen-dragon For sure! Patience will be my friend until then
-
@ornorm I am or was. It was working fine until KPM (9.0.1.447) update of the Kaspersky Password Manager.
Their support asked me to reinstall the extension. Same fault.
https://chrome.google.com/webstore/detail/kaspersky-password-manage/dhnkblpjbkfklfloegejegedcafpliaa
-
@mogle Thank you for your comment mogle. As usual, the support of Kaspersky can give different solutions to an issue.
For me, their answer was quite different and not very helpful. They just told me Vivaldi wasn't supported for KPM... that's it!
While, for me, there is a clear regression because, as you said, it was working fine until the last version which means there is certainly a regression in their client's user experience. It doesn't seem to be their conception of user experience, what I regret.
So, for the moment, I've chosen to continue using Vivaldi even if I can't use KPM anymore. -
Why don't you do it yourself? As said, the extension checks for user-agent in background.js and determines the browser, you can just set it to chrome. I would do it, but I'm not on Windows and therefore can't test what I'm doing.
-
@luetage How would I go about doing this? I have tried User-Agent Switcher and the KPM extension still doesn't work. Is there something I should specifically be doing to change the background.js on windows?
Thanks for any help you can give on this.
-
@oconnetg You can't trick an extension with an extension. It will still check your real user agent. What you have to do is edit background.js, but this will be hard to do, if you don't know any javascript.
-
@luetage Fair enough. Unfortunately I am not proficient in coding Java Script. I can copy the script of the background.js if anyone thought that would be helpful to look at and edit.
-
@oconnetg
Here is the code I found in the background.js filevar nativeMessagingSettings={id:"com.nm.kpm"};class BackgroundSpecific{constructor(){this.browser="undefined"!=typeof browser?browser:chrome}getActiveTabInfo(e){this.browser.tabs.query({currentWindow:!0,active:!0},function(t){t&&t.length>0&&(t=t[0],e(t.url,t.id))})}addTabOpenEventListener(e){const t=this.browser;t.tabs.onUpdated.addListener(function(t,n,a){e(a,t)}),t.tabs.onActivated.addListener(function(n){t.tabs.get(n.tabId,function(t){e(t,n.tabId)})})}addPageClosedEventListener(e){this.browser.tabs.onRemoved.addListener(e)}addPageErrorOccurredEventListener(e,t){this.browser.webRequest.onErrorOccurred.addListener(e,t)}dispatchMessage(e,t,n){this.browser.runtime.sendMessage({type:"background-message",name:e,message:t},n)}setUpEventListeners(e,t){this.browser.runtime.onMessage.addListener(t)}dispatchToTab(e,t,n){this.browser.tabs.sendMessage(e,{event:"message",name:t,message:n})}dispatchToActiveTab(e,t){const n=this;t&&t.tabId?n.dispatchToTab(t.tabId,e,t):n.browser.tabs.query({active:!0,currentWindow:!0},function(a){a[0]&&n.dispatchToTab(a[0].id,e,t)})}setToolbarButtonIcon(e){this.browser.browserAction.setIcon({path:e})}}class BackgroundHelper{constructor(){this.plugin=null,this.tabsUrl={},this.backgroundSpecific=new BackgroundSpecific,this.isSupportedBrowserVersion=function(){const e=navigator.userAgent.indexOf("Firefox");return-1===e||parseFloat(navigator.userAgent.substring(e+8))>=50}(),this.browserInfo=function(){const e=[["Safari",/Version\/([0-9\._]+).*Safari/],["Yandex",/YaBrowser\/([0-9\._]+)/],["FireFox",/Firefox\/([0-9\.]+)(?:\s|$)/],["Chrome",/Chrome\/([0-9\.]+)(:?\s|$)/],["Edge",/Edge\/([0-9\._]+)/]];let t,n=e.length;for(;n--;)if((t=e[n])[1].test(navigator.userAgent)){let e=t[1].exec(navigator.userAgent),n=e&&e[1].split(/[._]/).slice(0,3);return n&&n.length<3&&Array.prototype.push.apply(n,1===n.length?[0,0]:[0]),{name:t[0],version:n.join(".")}}return{name:"unknown",version:"unknown"}}(),this.browsers={CHROME:"Chrome",EDGE:"Edge",UNKNOWN:"unknown"},this._connectNM()}_getIcon(e){return{19:`icons/${e}19.png`,20:`icons/${e}20.png`,38:`icons/${e}38.png`,40:`icons/${e}40.png`}}_connectNM(){const e=this;try{e.plugin=new KasperskyNativeMessagingClient(nativeMessagingSettings.id,()=>{console.error("KasperskyNativeMessagingClient OnDisconnect"),!1!==BackgroundObject.isConnected&&(BackgroundObject.isBackendSupported=!1,BackgroundObject.updateToolbarButtonIcon(),e._connectNM(),BackgroundObject.isConnected=!1,setTimeout(pageLoaded,1e3))}),e.plugin.registerMethod("eval",function(t){const n=t[1];if("0-topFrame"===t[0])n.length<150&&(n.includes('"kpm_vaultStatusChanged"')?BackgroundObject.updateVaultStatus():n.includes('"kpm_addressChanged"')?BackgroundObject.updateEntity("getAddresses"):n.includes('"kpm_bankCardChanged"')?BackgroundObject.updateEntity("getBankCards"):n.includes('"kpm_webAccountChanged"')?BackgroundObject.updateEntity("getWebAccounts"):n.includes('"kpm_recentWebAccountChanged"')&&BackgroundObject.updateEntity("getRecentWebAccounts"));else if(n.length>150||!n.includes('"kpm_webAccountChanged"')||!n.includes('"kpm_recentWebAccountChanged"')){const a=t[0].split("-");e.dispatchToTab(parseInt(a[0]),"kpm_evalScript",{frameId:a[1],script:n})}})}catch(e){console.log("Error creating KasperskyNativeMessagingClient: "+e)}}addTabOpenEventListener(e){let t=this;t.backgroundSpecific.addTabOpenEventListener(function(n,a){n&&n.url&&(t.tabsUrl[a]=n.url,e())})}addPageClosedEventListener(e){let t=this;t.backgroundSpecific.addPageClosedEventListener(function(n){t.tabsUrl[n]&&(e(n),t.callNativeMessaging(n,{name:"kpm_pageClosed",frameId:"topFrame"}),delete t.tabsUrl[n])})}addPageErrorOccurredEventListener(e){this.backgroundSpecific.addPageErrorOccurredEventListener(function(t){"net::ERR_NAME_NOT_RESOLVED"!==t.error&&"net::ERR_NAME_RESOLUTION_FAILED"!==t.error&&"net::ERR_INTERNET_DISCONNECTED"!==t.error||e(t.url,t.tabId)},{urls:["http://*/*","https://*/*"]})}dispatchToPopover(e,t,n){this.backgroundSpecific.dispatchMessage(e,t,n)}setUpEventListeners(e,t){this.backgroundSpecific.setUpEventListeners(e,t)}dispatchToTab(e,t,n){this.backgroundSpecific.dispatchToTab(e,t,n)}dispatchToActiveTab(e,t){this.backgroundSpecific.dispatchToActiveTab(e,t)}callNativeMessaging(e,t,n){if(!1===BackgroundObject.isConnected)return;let a=[e+"-"+t.frameId];t.message&&(a=a.concat(t.message));try{this.plugin.call(t.name,a,e=>{1===e.length&&n(e[0])},()=>{console.error(`Call ${t.name} failed!!!, args: ${a}`)})}catch(e){BackgroundObject.isConnected=!1,console.error(e)}}setUnlockedToolbarButtonIcon(){this.backgroundSpecific.setToolbarButtonIcon(this._getIcon("kpm_unlocked_toolbar_icon"))}setLockedToolbarButtonIcon(){this.backgroundSpecific.setToolbarButtonIcon(this._getIcon("kpm_locked_toolbar_icon"))}setUninstalledToolbarButtonIcon(){this.backgroundSpecific.setToolbarButtonIcon(this._getIcon("kpm_warning_toolbar_icon"))}getBrowserInfo(){return this.browserInfo.name===this.browsers.UNKNOWN?this.browsers.UNKNOWN:`${this.browserInfo.name} ${this.browserInfo.version}`}verifyCurrentUrl(e){let t=this;t.backgroundSpecific.getActiveTabInfo(function(n,a){return e(t.checkIsUrlAvailable(n,a))})}getCurrentTabInfo(e){this.backgroundSpecific.getActiveTabInfo(e)}checkIsUrlAvailable(e,t){let n;return!(t&&(n=BackgroundObject.unavailableUrls[t])&&n[e])&&((this.browserInfo.name!==this.browsers.CHROME||!e.startsWith("https://chrome.google.com/webstore"))&&((this.browserInfo.name!==this.browsers.EDGE||!e.startsWith("https://www.msn.com/spartan/"))&&!/^(chrome|about|file):/i.test(e)))}}function KasperskyNativeMessagingClient(e,t){let n=this;n.browser="undefined"!=typeof browser?browser:chrome,n.MSG_CALL=1,n.MSG_CALL_RESULT=2,n.MSG_CALL_ERROR=3,n.m_methods={},n.m_calls={},n.m_uniqueCommandId=0,n.m_isConnected=!0,n.m_nativeHost=n.browser.runtime.connectNative(e),n.m_nativeHost.onMessage.addListener(function(e){if("string"==typeof e){if(""===e)return;e=JSON.parse(e)}let t=parseInt(e[1]);switch(parseInt(e[0])){case n.MSG_CALL:n.processCommandCall(t,e[2],e.slice(3));break;case n.MSG_CALL_RESULT:n.processCommandCallResult(t,e.slice(2));break;case n.MSG_CALL_ERROR:n.processCommandCallError(t,parseInt(e[2]));break;default:n.printException("Unknown message type")}}),n.m_nativeHost.onDisconnect.addListener(function(){try{n.m_isConnected=!1,t(),n.callbackAllPendingOperations(-1)}catch(e){n.printException(e)}}),n.registerMethod=function(e,t){n.m_methods[e]||(n.m_methods[e]=t)},n.call=function(e,t,a,o){if(n.m_isConnected){let r=n.createCommandCall(e,t);n.m_calls[r.id]={callbackResult:a,callbackError:o},n.m_nativeHost.postMessage(r.payload)}else BackgroundObject.isConnected=!1,console.error("NM Sending message failed because of disconnecting")},n.createCommandCall=function(e,t){let a=n.createUniqueCommandId();return{id:a,payload:[n.MSG_CALL,a,e].concat(t)}},n.createCommandCallResult=function(e,t){return{id:e,payload:[n.MSG_CALL_RESULT,e].concat(t)}},n.createCommandCallError=function(e,t){return{id:e,payload:[n.MSG_CALL_ERROR,e,t]}},n.createUniqueCommandId=function(){return n.m_uniqueCommandId++},n.processCommandCall=function(e,t,a){try{n.m_methods[t](a,function(t){let a=n.createCommandCallResult(e,t);n.m_nativeHost.postMessage(a.payload)})}catch(t){n.printException(t);let a=n.createCommandCallError(e,-1);n.m_nativeHost.postMessage(a.payload)}},n.close=function(){n.m_nativeHost.disconnect()},n.processCommandCallResult=function(e,t){try{n.m_calls[e]&&n.m_calls[e].callbackResult?(n.m_calls[e].callbackResult(t),delete n.m_calls[e]):n.printException("Not found resultCallback for callId: "+e)}catch(e){n.printException(e)}},n.processCommandCallError=function(e,t){try{n.m_calls[e]&&n.m_calls[e].callbackError?(n.m_calls[e].callbackError(t),delete n.m_calls[e]):n.printException("Not found errorCallback for callId: "+e)}catch(e){n.printException(e)}},n.printException=function(e){let t="NM exception: "+e;e.stack&&(t=t+"\nstack:"+e.stack),console.error(t)},n.callbackAllPendingOperations=function(e){Object.keys(n.m_calls).forEach(t=>n.m_calls[t].callbackError(e)),n.m_calls={}}}var BackgroundObject={autoSignInStatus:{},unavailableUrls:{},isConnected:null,isVaultLocked:!0,isBackendSupported:!0,minSupportedBackendVersion:4,callbackNames:null,popoverData:{},isDataUpdating:!1,getHostNameByUrl:function(e){return e.match(/^https?\:\/\/([^\/:?#]+)(?:[\/:?#]|$)/i)[1]},getSignInStatus:function(e,t,n){let a=this[e][t];if(a){if(a[n=BackgroundObject.getHostNameByUrl(n)])return!0;{let e=Object.keys(a),t=e[0];if(e.forEach(function(e){"www."===e.substr(0,4)&&(e=e.slice(4,e.length)),t.length>e.length&&(t=e)}),t="."+t,-1!==n.indexOf(t))return!0}}return!1},updateSignInStatus:function(e,t,n,a){this[e][t]||(this[e][t]={}),this[e][t][BackgroundObject.getHostNameByUrl(n)]=a},clearDataForKey:function(e){delete BackgroundObject.autoSignInStatus[e],delete BackgroundObject.unavailableUrls[e]},updateToolbarButtonIcon:function(){BackgroundObject.isBackendSupported?BackgroundObject.isVaultLocked?backgroundHelper.setLockedToolbarButtonIcon():backgroundHelper.setUnlockedToolbarButtonIcon():backgroundHelper.setUninstalledToolbarButtonIcon()},updatePopoverData:function(e){BackgroundObject.isVaultLocked||Promise.all(entityCallbackNames.map(getEntity)).then(t=>{BackgroundObject.popoverData=Object.assign({},...t),e&&e()},e=>console.error("KPM error getting entities"))},updateEntity:function(e){BackgroundObject.isVaultLocked||getEntity(e).then(e=>{Object.assign(BackgroundObject.popoverData,e),BackgroundObject.notifyPopoverAboutNewData()},t=>console.error(`KPM error getting ${e} entity`))},callPlugin:function(e,t,n,a=0){backgroundHelper.callNativeMessaging(a,{name:e,message:t,frameId:"topFrame"},n)},updateVaultStatus:function(e){BackgroundObject.callPlugin("kpm_isVaultLocked",null,function(t){BackgroundObject.isVaultLocked=t,BackgroundObject.updateToolbarButtonIcon(),BackgroundObject.callbackNames||pageLoaded(),BackgroundObject.isVaultLocked?backgroundHelper.dispatchToPopover("kpm_lockPlugin"):!e&&BackgroundObject.callbackNames&&BackgroundObject.updatePopoverData(BackgroundObject.notifyPopoverAboutNewData)})},notifyPopoverAboutNewData:function(){backgroundHelper.dispatchToPopover("kpm_popoverData")},stopDataUpdating:function(){BackgroundObject.isDataUpdating=!0,setTimeout(()=>{BackgroundObject.isDataUpdating=!1},1e4)}},backgroundHelper=new BackgroundHelper;const entityCallbackNames=["getWebAccounts","getRecentWebAccounts","getBankCards","getAddresses"];function getEntity(e){return new Promise(t=>{BackgroundObject.callPlugin(BackgroundObject.callbackNames[e],["background.page"],e=>{t(JSON.parse(e))})})}function pageLoaded(){BackgroundObject.callPlugin("kpm_pageLoaded",["background.page"],function(e){e=JSON.parse(e),BackgroundObject.isVaultLocked=e.isVaultLocked,BackgroundObject.callbackNames=e.callbackNames,BackgroundObject.isBackendSupported=e.backendVersion>=BackgroundObject.minSupportedBackendVersion,BackgroundObject.isConnected=!0,BackgroundObject.updateToolbarButtonIcon(),BackgroundObject.updatePopoverData(BackgroundObject.notifyPopoverAboutNewData)})}backgroundHelper.isSupportedBrowserVersion?(backgroundHelper.browserInfo.name!==backgroundHelper.browsers.EDGE?pageLoaded():setTimeout(pageLoaded,1e3),backgroundHelper.setUpEventListeners(null,function(e,t,n){switch(e.name){case"kpm_chrome_native_message":e.message&&t.tab&&backgroundHelper.callNativeMessaging(t.tab.id,e.message,n);break;case"kpm_autoSignIn":BackgroundObject.updateSignInStatus("autoSignInStatus",t.tab.id,t.url,e.message.wasAutoSignIn);break;case"kpm_getSiteMarkup":backgroundHelper.dispatchToTab(t.tab.id,e.name);break;case"kpm_autoSignInStatus":let a=!1;t&&(a=BackgroundObject.getSignInStatus("autoSignInStatus",t.tab.id,t.url)),n?n(a):backgroundHelper.dispatchToActiveTab("kpm_autoSignInStatus_response",a,t)}return!0},null),backgroundHelper.addTabOpenEventListener(BackgroundObject.updateToolbarButtonIcon),backgroundHelper.addPageClosedEventListener(BackgroundObject.clearDataForKey),backgroundHelper.addPageErrorOccurredEventListener(function(e,t){BackgroundObject.unavailableUrls[t]||(BackgroundObject.unavailableUrls[t]={}),BackgroundObject.unavailableUrls[t][e]=!0,backgroundHelper.dispatchToPopover("kpm_pageErrorOccurred")})):backgroundHelper.setUninstalledToolbarButtonIcon();
-
Hello,
just to let you know that it seems that all Chromium based browser are affected by the issue caused by the last KPM version. Voilà, just to share with you this "fresh" information that might interest some of you (or not...)
Related Kaspersky Forum topicHave a nice day.
-
This post is deleted! -
Small update on the topic :
@Ornorm said in Poll for Kaspersky users: Need of Kaspersky Password Manager extension in Vivaldi:It wasn't the case before but now, it seems not only Chromium based browsers are affected by the bug but even Chrome itself.
All recent comments on the extension page (in different languages) relate the same issue... (example below)