benchpress
Version:
Benchpress - a framework for e2e performance tests
39 lines (38 loc) • 1.6 kB
JavaScript
import { bind } from 'angular2/src/core/di';
import { isPresent, StringWrapper } from 'angular2/src/facade/lang';
import { WebDriverExtension, PerfLogFeatures } from '../web_driver_extension';
import { WebDriverAdapter } from '../web_driver_adapter';
export class FirefoxDriverExtension extends WebDriverExtension {
constructor(_driver) {
super();
this._driver = _driver;
this._profilerStarted = false;
}
static get BINDINGS() { return _PROVIDERS; }
gc() { return this._driver.executeScript('window.forceGC()'); }
timeBegin(name) {
if (!this._profilerStarted) {
this._profilerStarted = true;
this._driver.executeScript('window.startProfiler();');
}
return this._driver.executeScript('window.markStart("' + name + '");');
}
timeEnd(name, restartName = null) {
var script = 'window.markEnd("' + name + '");';
if (isPresent(restartName)) {
script += 'window.markStart("' + restartName + '");';
}
return this._driver.executeScript(script);
}
readPerfLog() {
return this._driver.executeAsyncScript('var cb = arguments[0]; window.getProfile(cb);');
}
perfLogFeatures() { return new PerfLogFeatures({ render: true, gc: true }); }
supports(capabilities) {
return StringWrapper.equals(capabilities['browserName'].toLowerCase(), 'firefox');
}
}
var _PROVIDERS = [
bind(FirefoxDriverExtension)
.toFactory((driver) => new FirefoxDriverExtension(driver), [WebDriverAdapter])
];