mirror of
https://github.com/bitwarden/browser.git
synced 2024-12-22 16:29:09 +01:00
[PM-1796] The autofill keyboard shortcut does not prompt a user to unlock a locked extension within an incognito browsing session (#5337)
* [PM-1796] The autofill keyboard shortcut does not prompt a user to unlock a locked extension within an incongito browsing session * [PM-1796] Implementing fixes for how we handle focus redirection when logging a user in and attempting to autofill within the Firefox Workspaces addon * [PM-1796] Removing the `openerTab` value from the createNewTab method within brwoserApi.ts * [PM-1796] Removing async declaration from createNewTab * [PM-1796] Removing unnecessary param from the call to openBitwardenExtrensionTab
This commit is contained in:
parent
1eff0f776f
commit
c7150b8981
@ -75,6 +75,8 @@ export default class RuntimeBackground {
|
|||||||
this.systemService.cancelProcessReload();
|
this.systemService.cancelProcessReload();
|
||||||
|
|
||||||
if (item) {
|
if (item) {
|
||||||
|
await BrowserApi.focusWindow(item.commandToRetry.sender.tab.windowId);
|
||||||
|
await BrowserApi.focusTab(item.commandToRetry.sender.tab.id);
|
||||||
await BrowserApi.tabSendMessageData(
|
await BrowserApi.tabSendMessageData(
|
||||||
item.commandToRetry.sender.tab,
|
item.commandToRetry.sender.tab,
|
||||||
"unlockCompleted",
|
"unlockCompleted",
|
||||||
@ -103,7 +105,7 @@ export default class RuntimeBackground {
|
|||||||
await this.main.openPopup();
|
await this.main.openPopup();
|
||||||
break;
|
break;
|
||||||
case "promptForLogin":
|
case "promptForLogin":
|
||||||
BrowserApi.openBitwardenExtensionTab("popup/index.html", true, sender.tab);
|
BrowserApi.openBitwardenExtensionTab("popup/index.html", true);
|
||||||
break;
|
break;
|
||||||
case "openAddEditCipher": {
|
case "openAddEditCipher": {
|
||||||
const addEditCipherUrl =
|
const addEditCipherUrl =
|
||||||
@ -111,7 +113,7 @@ export default class RuntimeBackground {
|
|||||||
? "popup/index.html#/edit-cipher"
|
? "popup/index.html#/edit-cipher"
|
||||||
: "popup/index.html#/edit-cipher?cipherId=" + msg.data.cipherId;
|
: "popup/index.html#/edit-cipher?cipherId=" + msg.data.cipherId;
|
||||||
|
|
||||||
BrowserApi.openBitwardenExtensionTab(addEditCipherUrl, true, sender.tab);
|
BrowserApi.openBitwardenExtensionTab(addEditCipherUrl, true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "closeTab":
|
case "closeTab":
|
||||||
|
@ -129,24 +129,27 @@ export class BrowserApi {
|
|||||||
return Promise.resolve(chrome.extension.getViews({ type: "popup" }).length > 0);
|
return Promise.resolve(chrome.extension.getViews({ type: "popup" }).length > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static createNewTab(url: string, active = true, openerTab?: chrome.tabs.Tab) {
|
static createNewTab(url: string, active = true): Promise<chrome.tabs.Tab> {
|
||||||
chrome.tabs.create({ url: url, active: active, openerTabId: openerTab?.id });
|
return new Promise((resolve) =>
|
||||||
|
chrome.tabs.create({ url: url, active: active }, (tab) => resolve(tab))
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static openBitwardenExtensionTab(
|
static async focusWindow(windowId: number) {
|
||||||
relativeUrl: string,
|
await chrome.windows.update(windowId, { focused: true });
|
||||||
active = true,
|
|
||||||
openerTab?: chrome.tabs.Tab
|
|
||||||
) {
|
|
||||||
if (relativeUrl.includes("uilocation=tab")) {
|
|
||||||
this.createNewTab(relativeUrl, active, openerTab);
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static async openBitwardenExtensionTab(relativeUrl: string, active = true) {
|
||||||
|
let url = relativeUrl;
|
||||||
|
if (!relativeUrl.includes("uilocation=tab")) {
|
||||||
const fullUrl = chrome.extension.getURL(relativeUrl);
|
const fullUrl = chrome.extension.getURL(relativeUrl);
|
||||||
const parsedUrl = new URL(fullUrl);
|
const parsedUrl = new URL(fullUrl);
|
||||||
parsedUrl.searchParams.set("uilocation", "tab");
|
parsedUrl.searchParams.set("uilocation", "tab");
|
||||||
this.createNewTab(parsedUrl.toString(), active, openerTab);
|
url = parsedUrl.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
const createdTab = await this.createNewTab(url, active);
|
||||||
|
this.focusWindow(createdTab.windowId);
|
||||||
}
|
}
|
||||||
|
|
||||||
static async closeBitwardenExtensionTab() {
|
static async closeBitwardenExtensionTab() {
|
||||||
@ -163,10 +166,6 @@ export class BrowserApi {
|
|||||||
|
|
||||||
const tabToClose = tabs[tabs.length - 1];
|
const tabToClose = tabs[tabs.length - 1];
|
||||||
chrome.tabs.remove(tabToClose.id);
|
chrome.tabs.remove(tabToClose.id);
|
||||||
|
|
||||||
if (tabToClose.openerTabId) {
|
|
||||||
this.focusTab(tabToClose.openerTabId);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static messageListener(
|
static messageListener(
|
||||||
|
Loading…
Reference in New Issue
Block a user