chore: browser independent setInputFiles implementation (#34808)
This commit is contained in:
parent
8b28e637c8
commit
145b6bf4fe
|
@ -519,11 +519,6 @@ export class BidiPage implements PageDelegate {
|
|||
return quads as types.Quad[];
|
||||
}
|
||||
|
||||
async setInputFiles(handle: dom.ElementHandle<HTMLInputElement>, files: types.FilePayload[]): Promise<void> {
|
||||
await handle.evaluateInUtility(([injected, node, files]) =>
|
||||
injected.setInputFiles(node, files), files);
|
||||
}
|
||||
|
||||
async setInputFilePaths(handle: dom.ElementHandle<HTMLInputElement>, paths: string[]): Promise<void> {
|
||||
const fromContext = toBidiExecutionContext(handle._context);
|
||||
await this._session.send('input.setFiles', {
|
||||
|
|
|
@ -314,11 +314,6 @@ export class CRPage implements PageDelegate {
|
|||
return this._sessionForHandle(handle)._getContentQuads(handle);
|
||||
}
|
||||
|
||||
async setInputFiles(handle: dom.ElementHandle<HTMLInputElement>, files: types.FilePayload[]): Promise<void> {
|
||||
await handle.evaluateInUtility(([injected, node, files]) =>
|
||||
injected.setInputFiles(node, files), files);
|
||||
}
|
||||
|
||||
async setInputFilePaths(handle: dom.ElementHandle<HTMLInputElement>, files: string[]): Promise<void> {
|
||||
const frame = await handle.ownerFrame();
|
||||
if (!frame)
|
||||
|
|
|
@ -705,7 +705,8 @@ export class ElementHandle<T extends Node = Node> extends js.JSHandle<T> {
|
|||
await this._page._delegate.setInputFilePaths(retargeted, localPathsOrDirectory);
|
||||
await waitForInputEvent;
|
||||
} else {
|
||||
await this._page._delegate.setInputFiles(retargeted, filePayloads!);
|
||||
await retargeted.evaluateInUtility(([injected, node, files]) =>
|
||||
injected.setInputFiles(node, files), filePayloads!);
|
||||
}
|
||||
return 'done';
|
||||
}
|
||||
|
|
|
@ -519,11 +519,6 @@ export class FFPage implements PageDelegate {
|
|||
return result.quads.map(quad => [quad.p1, quad.p2, quad.p3, quad.p4]);
|
||||
}
|
||||
|
||||
async setInputFiles(handle: dom.ElementHandle<HTMLInputElement>, files: types.FilePayload[]): Promise<void> {
|
||||
await handle.evaluateInUtility(([injected, node, files]) =>
|
||||
injected.setInputFiles(node, files), files);
|
||||
}
|
||||
|
||||
async setInputFilePaths(handle: dom.ElementHandle<HTMLInputElement>, files: string[]): Promise<void> {
|
||||
await this._session.send('Page.setFileInputFiles', {
|
||||
frameId: handle._context.frame._id,
|
||||
|
|
|
@ -80,7 +80,6 @@ export interface PageDelegate {
|
|||
getContentFrame(handle: dom.ElementHandle): Promise<frames.Frame | null>; // Only called for frame owner elements.
|
||||
getOwnerFrame(handle: dom.ElementHandle): Promise<string | null>; // Returns frameId.
|
||||
getContentQuads(handle: dom.ElementHandle): Promise<types.Quad[] | null | 'error:notconnected'>;
|
||||
setInputFiles(handle: dom.ElementHandle<HTMLInputElement>, files: types.FilePayload[]): Promise<void>;
|
||||
setInputFilePaths(handle: dom.ElementHandle<HTMLInputElement>, files: string[]): Promise<void>;
|
||||
getBoundingBox(handle: dom.ElementHandle): Promise<types.Rect | null>;
|
||||
getFrameElement(frame: frames.Frame): Promise<dom.ElementHandle>;
|
||||
|
|
|
@ -946,16 +946,6 @@ export class WKPage implements PageDelegate {
|
|||
]);
|
||||
}
|
||||
|
||||
async setInputFiles(handle: dom.ElementHandle<HTMLInputElement>, files: types.FilePayload[]): Promise<void> {
|
||||
const objectId = handle._objectId;
|
||||
const protocolFiles = files.map(file => ({
|
||||
name: file.name,
|
||||
type: file.mimeType,
|
||||
data: file.buffer,
|
||||
}));
|
||||
await this._session.send('DOM.setInputFiles', { objectId, files: protocolFiles });
|
||||
}
|
||||
|
||||
async setInputFilePaths(handle: dom.ElementHandle<HTMLInputElement>, paths: string[]): Promise<void> {
|
||||
const pageProxyId = this._pageProxySession.sessionId;
|
||||
const objectId = handle._objectId;
|
||||
|
|
Loading…
Reference in New Issue