@yuebai008/cli
Version:
Command line interface for rapid qg-minigame development
1 lines • 2.16 kB
JavaScript
import{OverlayModel}from"./OverlayModel.js";import{Capability}from"./Target.js";import{SDKModel}from"./SDKModel.js";export class ScreenCaptureModel extends SDKModel{#e;#t;#a;constructor(e){super(e),this.#e=e.pageAgent(),this.#t=null,this.#a=null,e.registerPageDispatcher(this)}startScreencast(e,t,a,i,r,n,s){this.#t=n,this.#a=s,this.#e.invoke_startScreencast({format:e,quality:t,maxWidth:a,maxHeight:i,everyNthFrame:r})}stopScreencast(){this.#t=null,this.#a=null,this.#e.invoke_stopScreencast()}async captureScreenshot(e,t,a,i){const r={format:e,quality:t,fromSurface:!0};switch(a){case"fromClip":r.captureBeyondViewport=!0,r.clip=i;break;case"fullpage":r.captureBeyondViewport=!0;break;case"fromViewport":r.captureBeyondViewport=!1;break;default:throw new Error("Unexpected or unspecified screnshotMode")}await OverlayModel.muteHighlight();const n=await this.#e.invoke_captureScreenshot(r);return await OverlayModel.unmuteHighlight(),n.data}async fetchLayoutMetrics(){const e=await this.#e.invoke_getLayoutMetrics();return e.getError()?null:{viewportX:e.cssVisualViewport.pageX,viewportY:e.cssVisualViewport.pageY,viewportScale:e.cssVisualViewport.scale,contentWidth:e.cssContentSize.width,contentHeight:e.cssContentSize.height}}screencastFrame({data:e,metadata:t,sessionId:a}){this.#e.invoke_screencastFrameAck({sessionId:a}),this.#t&&this.#t.call(null,e,t)}screencastVisibilityChanged({visible:e}){this.#a&&this.#a.call(null,e)}backForwardCacheNotUsed(e){}domContentEventFired(e){}loadEventFired(e){}lifecycleEvent(e){}navigatedWithinDocument(e){}frameAttached(e){}frameNavigated(e){}documentOpened(e){}frameDetached(e){}frameStartedLoading(e){}frameStoppedLoading(e){}frameRequestedNavigation(e){}frameScheduledNavigation(e){}frameClearedScheduledNavigation(e){}frameResized(){}javascriptDialogOpening(e){}javascriptDialogClosed(e){}interstitialShown(){}interstitialHidden(){}windowOpen(e){}fileChooserOpened(e){}compilationCacheProduced(e){}downloadWillBegin(e){}downloadProgress(){}prerenderAttemptCompleted(e){}prefetchStatusUpdated(e){}prerenderStatusUpdated(e){}}SDKModel.register(ScreenCaptureModel,{capabilities:Capability.ScreenCapture,autostart:!1});