UNPKG

@angular/benchpress

Version:

Benchpress - a framework for e2e performance tests

82 lines 9.34 kB
/** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ import { InjectionToken, Injector } from '@angular/core'; import { Options } from './common_options'; /** * A WebDriverExtension implements extended commands of the webdriver protocol * for a given browser, independent of the WebDriverAdapter. * Needs one implementation for every supported Browser. */ export class WebDriverExtension { static provideFirstSupported(childTokens) { const res = [ { provide: _CHILDREN, useFactory: (injector) => childTokens.map(token => injector.get(token)), deps: [Injector] }, { provide: WebDriverExtension, useFactory: (children, capabilities) => { let delegate = undefined; children.forEach(extension => { if (extension.supports(capabilities)) { delegate = extension; } }); if (!delegate) { throw new Error('Could not find a delegate for given capabilities!'); } return delegate; }, deps: [_CHILDREN, Options.CAPABILITIES] } ]; return res; } gc() { throw new Error('NYI'); } timeBegin(name) { throw new Error('NYI'); } timeEnd(name, restartName) { throw new Error('NYI'); } /** * Format: * - cat: category of the event * - name: event name: 'script', 'gc', 'render', ... * - ph: phase: 'B' (begin), 'E' (end), 'X' (Complete event), 'I' (Instant event) * - ts: timestamp in ms, e.g. 12345 * - pid: process id * - args: arguments, e.g. {heapSize: 1234} * * Based on [Chrome Trace Event *Format](https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/edit) **/ readPerfLog() { throw new Error('NYI'); } perfLogFeatures() { throw new Error('NYI'); } supports(capabilities) { return true; } } export class PerfLogFeatures { constructor({ render = false, gc = false, frameCapture = false, userTiming = false } = {}) { this.render = render; this.gc = gc; this.frameCapture = frameCapture; this.userTiming = userTiming; } } const _CHILDREN = new InjectionToken('WebDriverExtension.children'); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViX2RyaXZlcl9leHRlbnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iZW5jaHByZXNzL3NyYy93ZWJfZHJpdmVyX2V4dGVuc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsY0FBYyxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFtQnpDOzs7O0dBSUc7QUFDSCxNQUFNLE9BQWdCLGtCQUFrQjtJQUN0QyxNQUFNLENBQUMscUJBQXFCLENBQUMsV0FBa0I7UUFDN0MsTUFBTSxHQUFHLEdBQUc7WUFDVjtnQkFDRSxPQUFPLEVBQUUsU0FBUztnQkFDbEIsVUFBVSxFQUFFLENBQUMsUUFBa0IsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2pGLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQzthQUNqQjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFVBQVUsRUFBRSxDQUFDLFFBQThCLEVBQUUsWUFBa0MsRUFBRSxFQUFFO29CQUNqRixJQUFJLFFBQVEsR0FBdUIsU0FBVSxDQUFDO29CQUM5QyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO3dCQUMzQixJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUU7NEJBQ3BDLFFBQVEsR0FBRyxTQUFTLENBQUM7eUJBQ3RCO29CQUNILENBQUMsQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQyxRQUFRLEVBQUU7d0JBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO3FCQUN0RTtvQkFDRCxPQUFPLFFBQVEsQ0FBQztnQkFDbEIsQ0FBQztnQkFDRCxJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQzthQUN4QztTQUNGLENBQUM7UUFDRixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxFQUFFO1FBQ0EsTUFBTSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsU0FBUyxDQUFDLElBQVk7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsT0FBTyxDQUFDLElBQVksRUFBRSxXQUF3QjtRQUM1QyxNQUFNLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7UUFXSTtJQUNKLFdBQVc7UUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsUUFBUSxDQUFDLFlBQWtDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGVBQWU7SUFNMUIsWUFDSSxFQUFDLE1BQU0sR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxZQUFZLEdBQUcsS0FBSyxFQUFFLFVBQVUsR0FBRyxLQUFLLEtBQ2dCLEVBQUU7UUFDekYsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7SW5qZWN0aW9uVG9rZW4sIEluamVjdG9yfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtPcHRpb25zfSBmcm9tICcuL2NvbW1vbl9vcHRpb25zJztcblxuZXhwb3J0IHR5cGUgUGVyZkxvZ0V2ZW50ID0ge1xuICBba2V5OiBzdHJpbmddOiBhbnlcbn0me1xuICBwaD86ICdYJyB8ICdCJyB8ICdFJyB8ICdJJyxcbiAgdHM/OiBudW1iZXIsXG4gIGR1cj86IG51bWJlcixcbiAgbmFtZT86IHN0cmluZyxcbiAgcGlkPzogc3RyaW5nLFxuICBhcmdzPzoge1xuICAgIGVuY29kZWREYXRhTGVuZ3RoPzogbnVtYmVyLFxuICAgIHVzZWRIZWFwU2l6ZT86IG51bWJlcixcbiAgICBtYWpvckdjPzogYm9vbGVhbixcbiAgICB1cmw/OiBzdHJpbmcsXG4gICAgbWV0aG9kPzogc3RyaW5nXG4gIH1cbn07XG5cbi8qKlxuICogQSBXZWJEcml2ZXJFeHRlbnNpb24gaW1wbGVtZW50cyBleHRlbmRlZCBjb21tYW5kcyBvZiB0aGUgd2ViZHJpdmVyIHByb3RvY29sXG4gKiBmb3IgYSBnaXZlbiBicm93c2VyLCBpbmRlcGVuZGVudCBvZiB0aGUgV2ViRHJpdmVyQWRhcHRlci5cbiAqIE5lZWRzIG9uZSBpbXBsZW1lbnRhdGlvbiBmb3IgZXZlcnkgc3VwcG9ydGVkIEJyb3dzZXIuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBXZWJEcml2ZXJFeHRlbnNpb24ge1xuICBzdGF0aWMgcHJvdmlkZUZpcnN0U3VwcG9ydGVkKGNoaWxkVG9rZW5zOiBhbnlbXSk6IGFueVtdIHtcbiAgICBjb25zdCByZXMgPSBbXG4gICAgICB7XG4gICAgICAgIHByb3ZpZGU6IF9DSElMRFJFTixcbiAgICAgICAgdXNlRmFjdG9yeTogKGluamVjdG9yOiBJbmplY3RvcikgPT4gY2hpbGRUb2tlbnMubWFwKHRva2VuID0+IGluamVjdG9yLmdldCh0b2tlbikpLFxuICAgICAgICBkZXBzOiBbSW5qZWN0b3JdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwcm92aWRlOiBXZWJEcml2ZXJFeHRlbnNpb24sXG4gICAgICAgIHVzZUZhY3Rvcnk6IChjaGlsZHJlbjogV2ViRHJpdmVyRXh0ZW5zaW9uW10sIGNhcGFiaWxpdGllczoge1trZXk6IHN0cmluZ106IGFueX0pID0+IHtcbiAgICAgICAgICBsZXQgZGVsZWdhdGU6IFdlYkRyaXZlckV4dGVuc2lvbiA9IHVuZGVmaW5lZCE7XG4gICAgICAgICAgY2hpbGRyZW4uZm9yRWFjaChleHRlbnNpb24gPT4ge1xuICAgICAgICAgICAgaWYgKGV4dGVuc2lvbi5zdXBwb3J0cyhjYXBhYmlsaXRpZXMpKSB7XG4gICAgICAgICAgICAgIGRlbGVnYXRlID0gZXh0ZW5zaW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmICghZGVsZWdhdGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgYSBkZWxlZ2F0ZSBmb3IgZ2l2ZW4gY2FwYWJpbGl0aWVzIScpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZGVsZWdhdGU7XG4gICAgICAgIH0sXG4gICAgICAgIGRlcHM6IFtfQ0hJTERSRU4sIE9wdGlvbnMuQ0FQQUJJTElUSUVTXVxuICAgICAgfVxuICAgIF07XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIGdjKCk6IFByb21pc2U8YW55PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOWUknKTtcbiAgfVxuXG4gIHRpbWVCZWdpbihuYW1lOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTllJJyk7XG4gIH1cblxuICB0aW1lRW5kKG5hbWU6IHN0cmluZywgcmVzdGFydE5hbWU6IHN0cmluZ3xudWxsKTogUHJvbWlzZTxhbnk+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05ZSScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdDpcbiAgICogLSBjYXQ6IGNhdGVnb3J5IG9mIHRoZSBldmVudFxuICAgKiAtIG5hbWU6IGV2ZW50IG5hbWU6ICdzY3JpcHQnLCAnZ2MnLCAncmVuZGVyJywgLi4uXG4gICAqIC0gcGg6IHBoYXNlOiAnQicgKGJlZ2luKSwgJ0UnIChlbmQpLCAnWCcgKENvbXBsZXRlIGV2ZW50KSwgJ0knIChJbnN0YW50IGV2ZW50KVxuICAgKiAtIHRzOiB0aW1lc3RhbXAgaW4gbXMsIGUuZy4gMTIzNDVcbiAgICogLSBwaWQ6IHByb2Nlc3MgaWRcbiAgICogLSBhcmdzOiBhcmd1bWVudHMsIGUuZy4ge2hlYXBTaXplOiAxMjM0fVxuICAgKlxuICAgKiBCYXNlZCBvbiBbQ2hyb21lIFRyYWNlIEV2ZW50XG4gICAqRm9ybWF0XShodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9kb2N1bWVudC9kLzFDdkFDbHZGZnlBNVItUGhZVW1uNU9PUXRZTUg0aDZJMG5Tc0tjaE5BeVNVL2VkaXQpXG4gICAqKi9cbiAgcmVhZFBlcmZMb2coKTogUHJvbWlzZTxQZXJmTG9nRXZlbnRbXT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTllJJyk7XG4gIH1cblxuICBwZXJmTG9nRmVhdHVyZXMoKTogUGVyZkxvZ0ZlYXR1cmVzIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05ZSScpO1xuICB9XG5cbiAgc3VwcG9ydHMoY2FwYWJpbGl0aWVzOiB7W2tleTogc3RyaW5nXTogYW55fSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXJmTG9nRmVhdHVyZXMge1xuICByZW5kZXI6IGJvb2xlYW47XG4gIGdjOiBib29sZWFuO1xuICBmcmFtZUNhcHR1cmU6IGJvb2xlYW47XG4gIHVzZXJUaW1pbmc6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICB7cmVuZGVyID0gZmFsc2UsIGdjID0gZmFsc2UsIGZyYW1lQ2FwdHVyZSA9IGZhbHNlLCB1c2VyVGltaW5nID0gZmFsc2V9OlxuICAgICAgICAgIHtyZW5kZXI/OiBib29sZWFuLCBnYz86IGJvb2xlYW4sIGZyYW1lQ2FwdHVyZT86IGJvb2xlYW4sIHVzZXJUaW1pbmc/OiBib29sZWFufSA9IHt9KSB7XG4gICAgdGhpcy5yZW5kZXIgPSByZW5kZXI7XG4gICAgdGhpcy5nYyA9IGdjO1xuICAgIHRoaXMuZnJhbWVDYXB0dXJlID0gZnJhbWVDYXB0dXJlO1xuICAgIHRoaXMudXNlclRpbWluZyA9IHVzZXJUaW1pbmc7XG4gIH1cbn1cblxuY29uc3QgX0NISUxEUkVOID0gbmV3IEluamVjdGlvblRva2VuKCdXZWJEcml2ZXJFeHRlbnNpb24uY2hpbGRyZW4nKTtcbiJdfQ==