summaryrefslogtreecommitdiffstats
path: root/remote/test/puppeteer/packages/puppeteer-core/src/bidi/core/Connection.ts
diff options
context:
space:
mode:
Diffstat (limited to 'remote/test/puppeteer/packages/puppeteer-core/src/bidi/core/Connection.ts')
-rw-r--r--remote/test/puppeteer/packages/puppeteer-core/src/bidi/core/Connection.ts139
1 files changed, 139 insertions, 0 deletions
diff --git a/remote/test/puppeteer/packages/puppeteer-core/src/bidi/core/Connection.ts b/remote/test/puppeteer/packages/puppeteer-core/src/bidi/core/Connection.ts
new file mode 100644
index 0000000000..b9de14372b
--- /dev/null
+++ b/remote/test/puppeteer/packages/puppeteer-core/src/bidi/core/Connection.ts
@@ -0,0 +1,139 @@
+/**
+ * @license
+ * Copyright 2024 Google Inc.
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+import type * as Bidi from 'chromium-bidi/lib/cjs/protocol/protocol.js';
+
+import type {EventEmitter} from '../../common/EventEmitter.js';
+
+/**
+ * @internal
+ */
+export interface Commands {
+ 'script.evaluate': {
+ params: Bidi.Script.EvaluateParameters;
+ returnType: Bidi.Script.EvaluateResult;
+ };
+ 'script.callFunction': {
+ params: Bidi.Script.CallFunctionParameters;
+ returnType: Bidi.Script.EvaluateResult;
+ };
+ 'script.disown': {
+ params: Bidi.Script.DisownParameters;
+ returnType: Bidi.EmptyResult;
+ };
+ 'script.addPreloadScript': {
+ params: Bidi.Script.AddPreloadScriptParameters;
+ returnType: Bidi.Script.AddPreloadScriptResult;
+ };
+ 'script.removePreloadScript': {
+ params: Bidi.Script.RemovePreloadScriptParameters;
+ returnType: Bidi.EmptyResult;
+ };
+
+ 'browser.close': {
+ params: Bidi.EmptyParams;
+ returnType: Bidi.EmptyResult;
+ };
+
+ 'browsingContext.activate': {
+ params: Bidi.BrowsingContext.ActivateParameters;
+ returnType: Bidi.EmptyResult;
+ };
+ 'browsingContext.create': {
+ params: Bidi.BrowsingContext.CreateParameters;
+ returnType: Bidi.BrowsingContext.CreateResult;
+ };
+ 'browsingContext.close': {
+ params: Bidi.BrowsingContext.CloseParameters;
+ returnType: Bidi.EmptyResult;
+ };
+ 'browsingContext.getTree': {
+ params: Bidi.BrowsingContext.GetTreeParameters;
+ returnType: Bidi.BrowsingContext.GetTreeResult;
+ };
+ 'browsingContext.navigate': {
+ params: Bidi.BrowsingContext.NavigateParameters;
+ returnType: Bidi.BrowsingContext.NavigateResult;
+ };
+ 'browsingContext.reload': {
+ params: Bidi.BrowsingContext.ReloadParameters;
+ returnType: Bidi.BrowsingContext.NavigateResult;
+ };
+ 'browsingContext.print': {
+ params: Bidi.BrowsingContext.PrintParameters;
+ returnType: Bidi.BrowsingContext.PrintResult;
+ };
+ 'browsingContext.captureScreenshot': {
+ params: Bidi.BrowsingContext.CaptureScreenshotParameters;
+ returnType: Bidi.BrowsingContext.CaptureScreenshotResult;
+ };
+ 'browsingContext.handleUserPrompt': {
+ params: Bidi.BrowsingContext.HandleUserPromptParameters;
+ returnType: Bidi.EmptyResult;
+ };
+ 'browsingContext.setViewport': {
+ params: Bidi.BrowsingContext.SetViewportParameters;
+ returnType: Bidi.EmptyResult;
+ };
+ 'browsingContext.traverseHistory': {
+ params: Bidi.BrowsingContext.TraverseHistoryParameters;
+ returnType: Bidi.EmptyResult;
+ };
+
+ 'input.performActions': {
+ params: Bidi.Input.PerformActionsParameters;
+ returnType: Bidi.EmptyResult;
+ };
+ 'input.releaseActions': {
+ params: Bidi.Input.ReleaseActionsParameters;
+ returnType: Bidi.EmptyResult;
+ };
+
+ 'session.end': {
+ params: Bidi.EmptyParams;
+ returnType: Bidi.EmptyResult;
+ };
+ 'session.new': {
+ params: Bidi.Session.NewParameters;
+ returnType: Bidi.Session.NewResult;
+ };
+ 'session.status': {
+ params: object;
+ returnType: Bidi.Session.StatusResult;
+ };
+ 'session.subscribe': {
+ params: Bidi.Session.SubscriptionRequest;
+ returnType: Bidi.EmptyResult;
+ };
+ 'session.unsubscribe': {
+ params: Bidi.Session.SubscriptionRequest;
+ returnType: Bidi.EmptyResult;
+ };
+}
+
+/**
+ * @internal
+ */
+export type BidiEvents = {
+ [K in Bidi.ChromiumBidi.Event['method']]: Extract<
+ Bidi.ChromiumBidi.Event,
+ {method: K}
+ >['params'];
+};
+
+/**
+ * @internal
+ */
+export interface Connection<Events extends BidiEvents = BidiEvents>
+ extends EventEmitter<Events> {
+ send<T extends keyof Commands>(
+ method: T,
+ params: Commands[T]['params']
+ ): Promise<{result: Commands[T]['returnType']}>;
+
+ // This will pipe events into the provided emitter.
+ pipeTo<Events extends BidiEvents>(emitter: EventEmitter<Events>): void;
+}