mirror of
https://github.com/bitwarden/browser
synced 2026-02-22 12:24:01 +00:00
wip: Test SetParent(client_window_handle, plugin_window_handle)
This commit is contained in:
@@ -225,4 +225,42 @@ export default {
|
||||
},
|
||||
);
|
||||
},
|
||||
listenGetWindowHandle: (
|
||||
fn: (
|
||||
clientId: number,
|
||||
sequenceNumber: number,
|
||||
request: autofill.WindowHandleQueryRequest,
|
||||
completeCallback: (error: Error | null, response: autofill.WindowHandleQueryResponse) => void,
|
||||
) => void,
|
||||
) => {
|
||||
ipcRenderer.on(
|
||||
"autofill.windowHandleQuery",
|
||||
(
|
||||
event,
|
||||
data: {
|
||||
clientId: number;
|
||||
sequenceNumber: number;
|
||||
request: autofill.WindowHandleQueryRequest;
|
||||
},
|
||||
) => {
|
||||
const { clientId, sequenceNumber, request } = data;
|
||||
fn(clientId, sequenceNumber, request, (error, response) => {
|
||||
if (error) {
|
||||
ipcRenderer.send("autofill.completeError", {
|
||||
clientId,
|
||||
sequenceNumber,
|
||||
error: error.message,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
ipcRenderer.send("autofill.completeWindowHandleQuery", {
|
||||
clientId,
|
||||
sequenceNumber,
|
||||
response,
|
||||
});
|
||||
});
|
||||
},
|
||||
);
|
||||
},
|
||||
};
|
||||
|
||||
@@ -400,6 +400,21 @@ export class DesktopAutofillService implements OnDestroy {
|
||||
callback(null, { isUnlocked })
|
||||
})
|
||||
|
||||
ipc.autofill.listenGetWindowHandle(async (clientId, sequenceNumber, request, callback) => {
|
||||
if (!(await this.configService.getFeatureFlag(NativeCredentialSyncFeatureFlag))) {
|
||||
this.logService.debug(
|
||||
`listenGetWindowHandle: ${NativeCredentialSyncFeatureFlag} feature flag is disabled`,
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
this.logService.debug("listenGetWindowHandle", clientId, sequenceNumber, request);
|
||||
let handle = Utils.fromBufferToB64(await ipc.platform.getNativeWindowHandle());
|
||||
const response = { handle };
|
||||
this.logService.debug("listenGetWindowHandle: sending", response);
|
||||
callback(null, { handle })
|
||||
})
|
||||
|
||||
ipc.autofill.listenerReady();
|
||||
}
|
||||
|
||||
|
||||
@@ -151,6 +151,19 @@ export class NativeAutofillMain {
|
||||
request,
|
||||
});
|
||||
},
|
||||
// WindowHandleQueryCallback
|
||||
(error, clientId, sequenceNumber, request) => {
|
||||
if (error) {
|
||||
this.logService.error("autofill.IpcServer.windowHandleQuery", error);
|
||||
this.ipcServer.completeError(clientId, sequenceNumber, String(error));
|
||||
return;
|
||||
}
|
||||
this.safeSend("autofill.windowHandleQuery", {
|
||||
clientId,
|
||||
sequenceNumber,
|
||||
request,
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
ipcMain.on("autofill.listenerReady", () => {
|
||||
@@ -179,6 +192,11 @@ export class NativeAutofillMain {
|
||||
this.ipcServer.completeLockStatusQuery(clientId, sequenceNumber, response);
|
||||
});
|
||||
|
||||
ipcMain.on("autofill.completeWindowHandleQuery", (event, data) => {
|
||||
this.logService.debug("autofill.completeWindowHandleQuery", data);
|
||||
const { clientId, sequenceNumber, response } = data;
|
||||
this.ipcServer.completeWindowHandleQuery(clientId, sequenceNumber, response);
|
||||
});
|
||||
|
||||
|
||||
ipcMain.on("autofill.completeError", (event, data) => {
|
||||
|
||||
Reference in New Issue
Block a user