mirror of
https://github.com/bitwarden/clients.git
synced 2026-07-10 21:03:56 +08:00
* Work on background service worker. * Work on shortcuts * Work on supporting service worker * Put new background behind version check * Fix build * Use new storage service * create commands from crypto service (#2995) * Work on service worker autofill * Got basic autofill working * Final touches * Work on tests * Revert some changes * Add modifications * Remove unused ciphers for now * Cleanup * Address PR feedback * Update lock file * Update noop service * Add chrome type * Handle "/" in branch names Updates web workflow to handle the `/` in branch names when it's a PR. * Remove any Co-authored-by: Jake Fink <jfink@bitwarden.com> Co-authored-by: Micaiah Martin <77340197+mimartin12@users.noreply.github.com>
45 lines
1.1 KiB
TypeScript
45 lines
1.1 KiB
TypeScript
import AutofillPageDetails from "../models/autofillPageDetails";
|
|
import { AutofillService } from "../services/abstractions/autofill.service";
|
|
|
|
export class AutoFillActiveTabCommand {
|
|
constructor(private autofillService: AutofillService) {}
|
|
|
|
async doAutoFillActiveTabCommand(tab: chrome.tabs.Tab) {
|
|
if (!tab.id) {
|
|
throw new Error("Tab does not have an id, cannot complete autofill.");
|
|
}
|
|
|
|
const details = await this.collectPageDetails(tab.id);
|
|
await this.autofillService.doAutoFillOnTab(
|
|
[
|
|
{
|
|
frameId: 0,
|
|
tab: tab,
|
|
details: details,
|
|
},
|
|
],
|
|
tab,
|
|
true
|
|
);
|
|
}
|
|
|
|
private async collectPageDetails(tabId: number): Promise<AutofillPageDetails> {
|
|
return new Promise((resolve, reject) => {
|
|
chrome.tabs.sendMessage(
|
|
tabId,
|
|
{
|
|
command: "collectPageDetailsImmediately",
|
|
},
|
|
(response: AutofillPageDetails) => {
|
|
if (chrome.runtime.lastError) {
|
|
reject(chrome.runtime.lastError);
|
|
return;
|
|
}
|
|
|
|
resolve(response);
|
|
}
|
|
);
|
|
});
|
|
}
|
|
}
|