mirror of
https://github.com/bitwarden/browser
synced 2025-12-27 13:43:41 +00:00
PM-6558 Vault Onboarding Extension Check on Install (#8216)
updated browser runtime background to send hasBWInstalled message on installation
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
import { mock } from "jest-mock-extended";
|
||||
|
||||
import { VaultOnboardingMessages } from "@bitwarden/common/vault/enums/vault-onboarding.enum";
|
||||
|
||||
import { postWindowMessage, sendExtensionRuntimeMessage } from "../spec/testing-utils";
|
||||
|
||||
describe("ContentMessageHandler", () => {
|
||||
@@ -30,9 +32,11 @@ describe("ContentMessageHandler", () => {
|
||||
const mockPostMessage = jest.fn();
|
||||
window.postMessage = mockPostMessage;
|
||||
|
||||
postWindowMessage({ command: "checkIfBWExtensionInstalled" });
|
||||
postWindowMessage({ command: VaultOnboardingMessages.checkBwInstalled });
|
||||
|
||||
expect(mockPostMessage).toHaveBeenCalled();
|
||||
expect(mockPostMessage).toHaveBeenCalledWith({
|
||||
command: VaultOnboardingMessages.HasBwInstalled,
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { VaultOnboardingMessages } from "@bitwarden/common/vault/enums/vault-onboarding.enum";
|
||||
|
||||
import {
|
||||
ContentMessageWindowData,
|
||||
ContentMessageWindowEventHandlers,
|
||||
@@ -33,7 +35,7 @@ const windowMessageHandlers: ContentMessageWindowEventHandlers = {
|
||||
* Handles the post to the web vault showing the extension has been installed
|
||||
*/
|
||||
function handleExtensionInstallCheck() {
|
||||
window.postMessage({ command: "hasBWInstalled" });
|
||||
window.postMessage({ command: VaultOnboardingMessages.HasBwInstalled });
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -345,10 +345,34 @@ export default class RuntimeBackground {
|
||||
if (await this.environmentService.hasManagedEnvironment()) {
|
||||
await this.environmentService.setUrlsToManagedEnvironment();
|
||||
}
|
||||
|
||||
await this.sendBwInstalledMessageToVault();
|
||||
}
|
||||
|
||||
this.onInstalledReason = null;
|
||||
}
|
||||
}, 100);
|
||||
}
|
||||
|
||||
async sendBwInstalledMessageToVault() {
|
||||
try {
|
||||
const vaultUrl = this.environmentService.getWebVaultUrl();
|
||||
const urlObj = new URL(vaultUrl);
|
||||
|
||||
const tabs = await BrowserApi.tabsQuery({ url: `${urlObj.href}*` });
|
||||
|
||||
if (!tabs?.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (const tab of tabs) {
|
||||
await BrowserApi.executeScriptInTab(tab.id, {
|
||||
file: "content/send-on-installed-message.js",
|
||||
runAt: "document_end",
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
this.logService.error(`Error sending on installed message to vault: ${e}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
import { VaultOnboardingMessages } from "@bitwarden/common/vault/enums/vault-onboarding.enum";
|
||||
|
||||
(function (globalContext) {
|
||||
globalContext.postMessage({ command: VaultOnboardingMessages.HasBwInstalled });
|
||||
})(window);
|
||||
@@ -179,6 +179,7 @@ const mainConfig = {
|
||||
"overlay/list": "./src/autofill/overlay/pages/list/bootstrap-autofill-overlay-list.ts",
|
||||
"encrypt-worker": "../../libs/common/src/platform/services/cryptography/encrypt.worker.ts",
|
||||
"content/lp-fileless-importer": "./src/tools/content/lp-fileless-importer.ts",
|
||||
"content/send-on-installed-message": "./src/vault/content/send-on-installed-message.ts",
|
||||
"content/lp-suppress-import-download": "./src/tools/content/lp-suppress-import-download.ts",
|
||||
},
|
||||
optimization: {
|
||||
|
||||
Reference in New Issue
Block a user