controls: new Window.controls API

This commit is contained in:
CanadaHonk 2023-01-02 12:24:00 +00:00
parent 00da694f3b
commit 10f043acc3
2 changed files with 22 additions and 0 deletions

20
src/api/controls.js vendored Normal file
View File

@ -0,0 +1,20 @@
export default async (CDP) => {
const { windowId } = await CDP.send('Browser.getWindowForTarget');
const setWindowState = async state => await CDP.send('Browser.setWindowBounds', { windowId, bounds: { windowState: state }});
return {
minimize: async () => {
await setWindowState('minimized');
},
maximize: async () => {
await setWindowState('maximized');
},
show: async () => {
await setWindowState('minimized');
await setWindowState('normal');
}
};
};

View File

@ -11,6 +11,7 @@ import Chromium from './browser/chromium.js';
import Firefox from './browser/firefox.js'; import Firefox from './browser/firefox.js';
import IdleAPI from './api/idle.js'; import IdleAPI from './api/idle.js';
import ControlsAPI from './api/controls.js';
const __filename = fileURLToPath(import.meta.url); const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename); const __dirname = dirname(__filename);
@ -108,6 +109,7 @@ const startBrowser = async (url, { windowSize, forceBrowser }) => {
}); });
Window.idle = await IdleAPI(Window.cdp, { browserType }); Window.idle = await IdleAPI(Window.cdp, { browserType });
Window.controls = await ControlsAPI(Window.cdp);
return Window; return Window;
}; };