@@ -37,6 +37,27 @@ chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
//----------------------------------- Function definitions ----------------------------------//
|
//----------------------------------- Function definitions ----------------------------------//
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Copy text to clipboard
|
||||||
|
*
|
||||||
|
* @since 3.0.0
|
||||||
|
*
|
||||||
|
* @param string text Text to copy
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function copyToClipboard(text) {
|
||||||
|
document.addEventListener(
|
||||||
|
"copy",
|
||||||
|
function(e) {
|
||||||
|
e.clipboardData.setData("text/plain", text);
|
||||||
|
e.preventDefault();
|
||||||
|
},
|
||||||
|
{ once: true }
|
||||||
|
);
|
||||||
|
document.execCommand("copy");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Local settings from the extension
|
* Get Local settings from the extension
|
||||||
*
|
*
|
||||||
@@ -162,6 +183,29 @@ async function handleMessage(settings, message, sendResponse) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case "copyPassword":
|
||||||
|
try {
|
||||||
|
copyToClipboard(message.login.fields.secret);
|
||||||
|
sendResponse({ status: "ok" });
|
||||||
|
} catch (e) {
|
||||||
|
sendResponse({
|
||||||
|
status: "error",
|
||||||
|
message: "Unable to copy password"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "copyUsername":
|
||||||
|
try {
|
||||||
|
copyToClipboard(message.login.fields.login);
|
||||||
|
sendResponse({ status: "ok" });
|
||||||
|
} catch (e) {
|
||||||
|
sendResponse({
|
||||||
|
status: "error",
|
||||||
|
message: "Unable to copy username"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case "launch":
|
case "launch":
|
||||||
try {
|
try {
|
||||||
var tab = (await chrome.tabs.query({ active: true, currentWindow: true }))[0];
|
var tab = (await chrome.tabs.query({ active: true, currentWindow: true }))[0];
|
||||||
|
@@ -88,6 +88,13 @@ function view(ctl, params) {
|
|||||||
case "Enter":
|
case "Enter":
|
||||||
result.doAction("fill");
|
result.doAction("fill");
|
||||||
break;
|
break;
|
||||||
|
case "KeyC":
|
||||||
|
if (e.ctrlKey) {
|
||||||
|
result.doAction(
|
||||||
|
e.shiftKey ? "copyUsername" : "copyPassword"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case "KeyG":
|
case "KeyG":
|
||||||
result.doAction("launch");
|
result.doAction("launch");
|
||||||
break;
|
break;
|
||||||
|
@@ -90,6 +90,14 @@ function view(ctl, params) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case "KeyC":
|
||||||
|
if (e.ctrlKey && e.target.selectionStart == e.target.selectionEnd) {
|
||||||
|
e.preventDefault();
|
||||||
|
self.popup.results[0].doAction(
|
||||||
|
e.shiftKey ? "copyUsername" : "copyPassword"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
Reference in New Issue
Block a user