'use strict'; import {DirectSocketsService, DirectSocketsServiceReceiver} from '/gen/third_party/blink/public/mojom/direct_sockets/direct_sockets.mojom.m.js'; self.DirectSocketsServiceTest = (() => { // Class that mocks DirectSocketsService interface defined in // https://source.chromium.org/chromium/chromium/src/third_party/blink/public/mojom/direct_sockets/direct_sockets.mojom class MockDirectSocketsService { constructor() { this.interceptor_ = new MojoInterfaceInterceptor(DirectSocketsService.$interfaceName); this.receiver_ = new DirectSocketsServiceReceiver(this); this.interceptor_.oninterfacerequest = e => this.receiver_.$.bindHandle(e.handle); this.interceptor_.start(); } reset() { this.receiver_.$.close(); this.interceptor_.stop(); } openTcpSocket( options, receiver, observer) { return Promise.resolve({ // return result = net:Error::NOT_IMPLEMENTED (code -11) result: -11 }); } openUdpSocket( options, receiver, listener) { return Promise.resolve({ // return result = net:Error::NOT_IMPLEMENTED (code -11) result: -11 }); } } let testInternal = { initialized: false, mockDirectSocketsService: null } class DirectSocketsServiceTestChromium { constructor() { Object.freeze(this); // Make it immutable. } initialize() { if (!testInternal.initialized) { testInternal = { mockDirectSocketsService: new MockDirectSocketsService(), initialized: true }; } } async reset() { if (testInternal.initialized) { testInternal.mockDirectSocketsService.reset(); testInternal = { mockDirectSocketsService: null, initialized: false }; await new Promise(resolve => setTimeout(resolve, 0)); } } } return DirectSocketsServiceTestChromium; })();