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
path: root/src/js
diff options
context:
space:
mode:
authorflo-mic <florianmichel@hotmail.de>2021-02-23 23:47:31 +0300
committerflo-mic <florianmichel@hotmail.de>2021-02-23 23:47:31 +0300
commit4e22a874f616f31ef04b1e795b45669b4589480c (patch)
tree6cab0794cb639309e1ca36fa8c75b9a6bccd14df /src/js
parent17c79a284397c9556f8a44e48a9a92466f8145c5 (diff)
trigger autofill when page is loaded
Diffstat (limited to 'src/js')
-rw-r--r--src/js/App/Client.js2
-rw-r--r--src/js/Manager/AutofillManager.js53
-rw-r--r--src/js/Services/MessageService.js2
3 files changed, 47 insertions, 10 deletions
diff --git a/src/js/App/Client.js b/src/js/App/Client.js
index 61b987b..4057278 100644
--- a/src/js/App/Client.js
+++ b/src/js/App/Client.js
@@ -3,6 +3,7 @@ import ErrorManager from '@js/Manager/ErrorManager';
import MessageService from '@js/Services/MessageService';
import ConverterManager from '@js/Manager/ConverterManager';
import ClientControllerManager from '@js/Manager/ClientControllerManager';
+import AutofillManager from '@js/Manager/AutofillManager';
import DomMiner from '@js/Miner/DomMiner';
class Client {
@@ -17,6 +18,7 @@ class Client {
ClientControllerManager.init();
let miner = new DomMiner();
miner.init();
+ AutofillManager.initClient();
} catch(e) {
ErrorManager.logError(e);
}
diff --git a/src/js/Manager/AutofillManager.js b/src/js/Manager/AutofillManager.js
index 51d024d..16f122c 100644
--- a/src/js/Manager/AutofillManager.js
+++ b/src/js/Manager/AutofillManager.js
@@ -8,18 +8,54 @@ export default new class AutofillManager {
constructor() {
this._recommendationListener = (recommendations) => {
- this._sendAutofillPassword(recommendations);
- };
- this._sendPasswordToMessageService = (recommendations) => {
- this._sendPwdToMessageService(recommendations);
+ this.recommendations = recommendations;
+ this.currentURL =TabManager.getAll()[TabManager.currentTabId].url
};
+ this.recommendations = [];
+ this.currentURL = null;
}
/**
*
*/
- init() {
+ async init() {
RecommendationManager.listen.on(this._recommendationListener);
+ MessageService.listen(
+ 'autofill.page.ready',
+ (message, reply) => {
+ if(message.url = this.currentURL) {
+ this._sendAutofillPassword(this.recommendations);
+ }
+ }
+ );
+ }
+
+ /**
+ *
+ */
+ initClient() {
+ if (document.readyState === "complete"
+ || document.readyState === "loaded"
+ || document.readyState === "interactive") {
+ this._sendBrowserPageReadyMessage()
+ } else {
+ window.addEventListener("domcontentloaded", this._sendBrowserPageReadyMessage());
+ }
+ }
+
+ /**
+ *
+ */
+ _sendBrowserPageReadyMessage() {
+ MessageService.send(
+ {
+ type : 'autofill.page.ready',
+ payload : {
+ url: window.location.href
+ },
+ receiver: 'background'
+ }
+ );
}
/**
@@ -30,16 +66,15 @@ export default new class AutofillManager {
async _sendAutofillPassword(recommendations) {
if(recommendations.length === 0 || await SettingsService.getValue('paste.autofill') === false) return;
let password = recommendations[0];
- var self = this;
- setTimeout(function () {
+ setTimeout(() => {
let ids = TabManager.get('autofill.ids', []);
if(ids.indexOf(password.getId()) === -1) {
ids.push(password.getId());
TabManager.set('autofill.ids', ids);
}
- self._sendPasswordToMessageService(password);
- }, 2500);
+ this._sendPwdToMessageService(password);
+ }, 500);
}
/**
diff --git a/src/js/Services/MessageService.js b/src/js/Services/MessageService.js
index 79b18b1..461390e 100644
--- a/src/js/Services/MessageService.js
+++ b/src/js/Services/MessageService.js
@@ -292,7 +292,7 @@ class MessageService {
*/
_checkClientRestrictions(message) {
return message.getSender() !== 'client' ||
- (message.getType() !== 'password.mine' && message.getType() !== 'queue.items' && message.getType() !== 'debug.form.fields') ||
+ (message.getType() !== 'password.mine' && message.getType() !== 'queue.items' && message.getType() !== 'debug.form.fields' && message.getType() !== 'autofill.page.ready') ||
(message.getType() === 'queue.items' && message.getPayload().name !== 'error');
}