Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/marius-wieschollek/passwords-webextension.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius David Wieschollek <passwords.public@mdns.eu>2021-05-08 15:39:40 +0300
committerMarius David Wieschollek <passwords.public@mdns.eu>2021-05-08 15:39:40 +0300
commit8cd50f24cfb299bff65d6f283b7120bfc8e863c0 (patch)
tree542710b5270b254d3797624b8ab5462fccd63ccb
parent4349a089137f6331e5c6caccf8003a56611ae674 (diff)
[#172] Fix password mining errors
Signed-off-by: Marius David Wieschollek <passwords.public@mdns.eu>
-rw-r--r--src/js/Manager/RecommendationManager.js15
-rw-r--r--src/js/Services/FormService.js1
2 files changed, 10 insertions, 6 deletions
diff --git a/src/js/Manager/RecommendationManager.js b/src/js/Manager/RecommendationManager.js
index 0d239bc..d344dcb 100644
--- a/src/js/Manager/RecommendationManager.js
+++ b/src/js/Manager/RecommendationManager.js
@@ -13,6 +13,7 @@ class RecommendationManager {
constructor() {
this._change = new EventQueue();
+ this._options = { initialized: false, mode: "host", maxRows: 8 }
this._tabEvent = (tab) => {
if(!tab.hasOwnProperty('recommended') || tab.lastUrl !== tab.url) {
@@ -32,21 +33,22 @@ class RecommendationManager {
}
init() {
+ this.initRecommendationOptions();
TabManager.tabChanged.on(this._tabEvent);
TabManager.urlChanged.on(this._tabEvent);
SearchIndex.listen.on(this._searchEvent);
- this.initRecommendationOptions();
}
initRecommendationOptions() {
- this.options = { mode: "host", maxRows: 8 }
SettingsService.get('search.recommendation.mode')
.then((value) => {
- this.options.mode = value;
+ this._options.initialized = true;
+ this._options.mode = value;
});
SettingsService.get('search.recommendation.maxRows')
.then((value) => {
- this.options.maxRows = value;
+ this._options.initialized = true;
+ this._options.maxRows = value;
});
}
@@ -74,6 +76,7 @@ class RecommendationManager {
* @return {Password[]}
*/
getRecommendationsByUrl(url, incognito = false) {
+ if(!this._options.initialized) return [];
url = Url(url);
if(url.host.length === 0) return [];
@@ -82,7 +85,7 @@ class RecommendationManager {
.where(this.getFilterQuery(query, url))
.type('password')
.score(0.3)
- .limit(this.options.maxRows.getValue())
+ .limit(this._options.maxRows.getValue())
.sortBy('favorite')
.sortBy('uses')
.sortBy('shared')
@@ -99,7 +102,7 @@ class RecommendationManager {
* @param {URL} url
*/
getFilterQuery(query, url) {
- let mode = this.options.mode.getValue();
+ let mode = this._options.mode.getValue();
if(mode === 'domain') {
return query.field('host').contains(this.getSearchDomainFromHost(url.host));
} else if(mode === 'host') {
diff --git a/src/js/Services/FormService.js b/src/js/Services/FormService.js
index aa26d44..4b0325e 100644
--- a/src/js/Services/FormService.js
+++ b/src/js/Services/FormService.js
@@ -1,6 +1,7 @@
export default class FormService {
getPasswordFields(rootNode = document) {
+ if(!rootNode || rootNode.querySelectorAll) return [];
let fields = rootNode.querySelectorAll('input[type="password"]'),
excludes = ['fake', 'hidden'],
passwordFields = [];