mirror of
https://github.com/bitwarden/browser
synced 2025-12-11 22:03:36 +00:00
[PM-18042] Build request response structure (#15163)
* feat: add support for discover command * feat: make client public to allow RPC * feat: update SDK
This commit is contained in:
@@ -1346,7 +1346,7 @@ export default class MainBackground {
|
|||||||
this.inlineMenuFieldQualificationService = new InlineMenuFieldQualificationService();
|
this.inlineMenuFieldQualificationService = new InlineMenuFieldQualificationService();
|
||||||
|
|
||||||
this.ipcContentScriptManagerService = new IpcContentScriptManagerService(this.configService);
|
this.ipcContentScriptManagerService = new IpcContentScriptManagerService(this.configService);
|
||||||
this.ipcService = new IpcBackgroundService(this.logService);
|
this.ipcService = new IpcBackgroundService(this.platformUtilsService, this.logService);
|
||||||
|
|
||||||
this.endUserNotificationService = new DefaultEndUserNotificationService(
|
this.endUserNotificationService = new DefaultEndUserNotificationService(
|
||||||
this.stateProvider,
|
this.stateProvider,
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
import { LogService } from "@bitwarden/common/platform/abstractions/log.service";
|
import { LogService } from "@bitwarden/common/platform/abstractions/log.service";
|
||||||
|
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
|
||||||
import { SdkLoadService } from "@bitwarden/common/platform/abstractions/sdk/sdk-load.service";
|
import { SdkLoadService } from "@bitwarden/common/platform/abstractions/sdk/sdk-load.service";
|
||||||
import { IpcMessage, isIpcMessage, IpcService } from "@bitwarden/common/platform/ipc";
|
import { IpcMessage, isIpcMessage, IpcService } from "@bitwarden/common/platform/ipc";
|
||||||
import {
|
import {
|
||||||
IpcClient,
|
|
||||||
IpcCommunicationBackend,
|
IpcCommunicationBackend,
|
||||||
IncomingMessage,
|
IncomingMessage,
|
||||||
OutgoingMessage,
|
OutgoingMessage,
|
||||||
|
ipcRegisterDiscoverHandler,
|
||||||
|
IpcClient,
|
||||||
} from "@bitwarden/sdk-internal";
|
} from "@bitwarden/sdk-internal";
|
||||||
|
|
||||||
import { BrowserApi } from "../browser/browser-api";
|
import { BrowserApi } from "../browser/browser-api";
|
||||||
@@ -13,7 +15,10 @@ import { BrowserApi } from "../browser/browser-api";
|
|||||||
export class IpcBackgroundService extends IpcService {
|
export class IpcBackgroundService extends IpcService {
|
||||||
private communicationBackend?: IpcCommunicationBackend;
|
private communicationBackend?: IpcCommunicationBackend;
|
||||||
|
|
||||||
constructor(private logService: LogService) {
|
constructor(
|
||||||
|
private platformUtilsService: PlatformUtilsService,
|
||||||
|
private logService: LogService,
|
||||||
|
) {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,11 +65,18 @@ export class IpcBackgroundService extends IpcService {
|
|||||||
{
|
{
|
||||||
Web: { id: sender.tab.id },
|
Web: { id: sender.tab.id },
|
||||||
},
|
},
|
||||||
|
message.message.topic,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
await super.initWithClient(new IpcClient(this.communicationBackend));
|
await super.initWithClient(new IpcClient(this.communicationBackend));
|
||||||
|
|
||||||
|
if (this.platformUtilsService.isDev()) {
|
||||||
|
await ipcRegisterDiscoverHandler(this.client, {
|
||||||
|
version: await this.platformUtilsService.getApplicationVersion(),
|
||||||
|
});
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
this.logService.error("[IPC] Initialization failed", e);
|
this.logService.error("[IPC] Initialization failed", e);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,20 @@
|
|||||||
import { inject } from "@angular/core";
|
import { inject } from "@angular/core";
|
||||||
|
|
||||||
import { LogService } from "@bitwarden/common/platform/abstractions/log.service";
|
import { LogService } from "@bitwarden/common/platform/abstractions/log.service";
|
||||||
|
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
|
||||||
import { SdkLoadService } from "@bitwarden/common/platform/abstractions/sdk/sdk-load.service";
|
import { SdkLoadService } from "@bitwarden/common/platform/abstractions/sdk/sdk-load.service";
|
||||||
import { IpcMessage, IpcService, isIpcMessage } from "@bitwarden/common/platform/ipc";
|
import { IpcMessage, IpcService, isIpcMessage } from "@bitwarden/common/platform/ipc";
|
||||||
import {
|
import {
|
||||||
IncomingMessage,
|
IncomingMessage,
|
||||||
IpcClient,
|
IpcClient,
|
||||||
IpcCommunicationBackend,
|
IpcCommunicationBackend,
|
||||||
|
ipcRegisterDiscoverHandler,
|
||||||
OutgoingMessage,
|
OutgoingMessage,
|
||||||
} from "@bitwarden/sdk-internal";
|
} from "@bitwarden/sdk-internal";
|
||||||
|
|
||||||
export class WebIpcService extends IpcService {
|
export class WebIpcService extends IpcService {
|
||||||
private logService = inject(LogService);
|
private logService = inject(LogService);
|
||||||
|
private platformUtilsService = inject(PlatformUtilsService);
|
||||||
private communicationBackend?: IpcCommunicationBackend;
|
private communicationBackend?: IpcCommunicationBackend;
|
||||||
|
|
||||||
override async init() {
|
override async init() {
|
||||||
@@ -68,6 +71,12 @@ export class WebIpcService extends IpcService {
|
|||||||
});
|
});
|
||||||
|
|
||||||
await super.initWithClient(new IpcClient(this.communicationBackend));
|
await super.initWithClient(new IpcClient(this.communicationBackend));
|
||||||
|
|
||||||
|
if (this.platformUtilsService.isDev()) {
|
||||||
|
await ipcRegisterDiscoverHandler(this.client, {
|
||||||
|
version: await this.platformUtilsService.getApplicationVersion(),
|
||||||
|
});
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
this.logService.error("[IPC] Initialization failed", e);
|
this.logService.error("[IPC] Initialization failed", e);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { IpcClient, IncomingMessage, OutgoingMessage } from "@bitwarden/sdk-inte
|
|||||||
|
|
||||||
export abstract class IpcService {
|
export abstract class IpcService {
|
||||||
private _client?: IpcClient;
|
private _client?: IpcClient;
|
||||||
protected get client(): IpcClient {
|
get client(): IpcClient {
|
||||||
if (!this._client) {
|
if (!this._client) {
|
||||||
throw new Error("IpcService not initialized");
|
throw new Error("IpcService not initialized");
|
||||||
}
|
}
|
||||||
|
|||||||
8
package-lock.json
generated
8
package-lock.json
generated
@@ -24,7 +24,7 @@
|
|||||||
"@angular/platform-browser": "19.2.14",
|
"@angular/platform-browser": "19.2.14",
|
||||||
"@angular/platform-browser-dynamic": "19.2.14",
|
"@angular/platform-browser-dynamic": "19.2.14",
|
||||||
"@angular/router": "19.2.14",
|
"@angular/router": "19.2.14",
|
||||||
"@bitwarden/sdk-internal": "0.2.0-main.203",
|
"@bitwarden/sdk-internal": "0.2.0-main.213",
|
||||||
"@electron/fuses": "1.8.0",
|
"@electron/fuses": "1.8.0",
|
||||||
"@emotion/css": "11.13.5",
|
"@emotion/css": "11.13.5",
|
||||||
"@koa/multer": "3.1.0",
|
"@koa/multer": "3.1.0",
|
||||||
@@ -4589,9 +4589,9 @@
|
|||||||
"link": true
|
"link": true
|
||||||
},
|
},
|
||||||
"node_modules/@bitwarden/sdk-internal": {
|
"node_modules/@bitwarden/sdk-internal": {
|
||||||
"version": "0.2.0-main.203",
|
"version": "0.2.0-main.213",
|
||||||
"resolved": "https://registry.npmjs.org/@bitwarden/sdk-internal/-/sdk-internal-0.2.0-main.203.tgz",
|
"resolved": "https://registry.npmjs.org/@bitwarden/sdk-internal/-/sdk-internal-0.2.0-main.213.tgz",
|
||||||
"integrity": "sha512-AcRX2odnabnx16VF+K7naEZ3R4Tv/o8mVsVhrvwOTG+TEBUxR1BzCoE2r+l0+iz1zV32UV2YHeLZvyCB2/KftA==",
|
"integrity": "sha512-/AUpdQQ++tLsH9dJDFQcIDihCpsI+ikdZuYwbztSXPp7piCnLk71f7r10yMPGQ8OEOF49mMEbLCG+dJKpBqeRg==",
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"type-fest": "^4.41.0"
|
"type-fest": "^4.41.0"
|
||||||
|
|||||||
@@ -160,7 +160,7 @@
|
|||||||
"@angular/platform-browser": "19.2.14",
|
"@angular/platform-browser": "19.2.14",
|
||||||
"@angular/platform-browser-dynamic": "19.2.14",
|
"@angular/platform-browser-dynamic": "19.2.14",
|
||||||
"@angular/router": "19.2.14",
|
"@angular/router": "19.2.14",
|
||||||
"@bitwarden/sdk-internal": "0.2.0-main.203",
|
"@bitwarden/sdk-internal": "0.2.0-main.213",
|
||||||
"@electron/fuses": "1.8.0",
|
"@electron/fuses": "1.8.0",
|
||||||
"@emotion/css": "11.13.5",
|
"@emotion/css": "11.13.5",
|
||||||
"@koa/multer": "3.1.0",
|
"@koa/multer": "3.1.0",
|
||||||
|
|||||||
Reference in New Issue
Block a user