diff options
author | Marius David Wieschollek <passwords.public@mdns.eu> | 2021-05-08 15:39:40 +0300 |
---|---|---|
committer | Marius David Wieschollek <passwords.public@mdns.eu> | 2021-05-08 15:39:40 +0300 |
commit | 8cd50f24cfb299bff65d6f283b7120bfc8e863c0 (patch) | |
tree | 542710b5270b254d3797624b8ab5462fccd63ccb | |
parent | 4349a089137f6331e5c6caccf8003a56611ae674 (diff) |
[#172] Fix password mining errors
Signed-off-by: Marius David Wieschollek <passwords.public@mdns.eu>
-rw-r--r-- | src/js/Manager/RecommendationManager.js | 15 | ||||
-rw-r--r-- | src/js/Services/FormService.js | 1 |
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 = []; |