@benmalka/foxdriver
Version:
Foxdriver is a Node library which provides a high-level API to control Firefox over the Remote Debugging Protocol
150 lines (117 loc) • 9.51 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _actor = require("./actor");
var _actor2 = _interopRequireDefault(_actor);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class Tab extends _actor2.default {
constructor(client, name, data) {
super(client, name, data);
this._onTabNavigated = null;
this.on('tabNavigated', event => {
if (event.state === 'stop') {
this._onTabNavigated && this._onTabNavigated(event);
}
});
}
get console() {
return this._get('console');
}
get network() {
return this._get('console', 'network');
}
get storage() {
return this._get('storage');
}
get memory() {
return this._get('memory');
}
get performance() {
return this._get('performance');
}
get profiler() {
return this._get('profiler');
}
get timeline() {
return this._get('timeline');
}
get styleSheets() {
return this._get('styleSheets');
}
get cssUsage() {
return this._get('cssUsage');
}
get cssProperties() {
return this._get('cssProperties');
}
get emulation() {
return this._get('emulation');
}
get inspector() {
return this._get('inspector');
}
/**
* Firefox 75: Gets Tab's actors
* @returns {Promise} request promise
*/
async getTarget() {
let targets = await this.request('getTarget');
this.name = targets.frame.actor;
this.data = targets.frame;
this.setActors(this.data);
}
/**
* Disable/Enables cache
* @param {Boolean} disable
* @returns {Promise} request promise
*/
cacheDisabled(disable) {
return this.request('reconfigure', {
'options': {
cacheDisabled: disable
}
});
}
/**
* Calls a callback on tab navigated event
* @param {Function} callback function to be called
*/
onTabNavigated(callback) {
this._onTabNavigated = callback;
}
/**
* attach to tab
* @return {Promise} request promise
*/
attach() {
return this.request('attach');
}
/**
* detach from tab
* @return {Promise} request promise
*/
detach() {
return this.request('detach');
}
/**
* reloads current page url
* @return {Promise} request promise
*/
reload() {
return this.request('reload');
}
/**
* navigates to a certain url
* @param {string} url to navigate to
* @return {Promise} request promise
*/
navigateTo(url) {
return this.request('navigateTo', {
url
});
}
}
exports.default = Tab;
module.exports = exports["default"];
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi90YWIuanMiXSwibmFtZXMiOlsiVGFiIiwiQWN0b3IiLCJjb25zdHJ1Y3RvciIsImNsaWVudCIsIm5hbWUiLCJkYXRhIiwiX29uVGFiTmF2aWdhdGVkIiwib24iLCJldmVudCIsInN0YXRlIiwiY29uc29sZSIsIl9nZXQiLCJuZXR3b3JrIiwic3RvcmFnZSIsIm1lbW9yeSIsInBlcmZvcm1hbmNlIiwicHJvZmlsZXIiLCJ0aW1lbGluZSIsInN0eWxlU2hlZXRzIiwiY3NzVXNhZ2UiLCJjc3NQcm9wZXJ0aWVzIiwiZW11bGF0aW9uIiwiaW5zcGVjdG9yIiwiZ2V0VGFyZ2V0IiwidGFyZ2V0cyIsInJlcXVlc3QiLCJmcmFtZSIsImFjdG9yIiwic2V0QWN0b3JzIiwiY2FjaGVEaXNhYmxlZCIsImRpc2FibGUiLCJvblRhYk5hdmlnYXRlZCIsImNhbGxiYWNrIiwiYXR0YWNoIiwiZGV0YWNoIiwicmVsb2FkIiwibmF2aWdhdGVUbyIsInVybCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7OztBQUVlLE1BQU1BLEdBQU4sU0FBa0JDLGVBQWxCLENBQXdCO0FBQ25DQyxFQUFBQSxXQUFXLENBQUVDLE1BQUYsRUFBVUMsSUFBVixFQUFnQkMsSUFBaEIsRUFBc0I7QUFDN0IsVUFBTUYsTUFBTixFQUFjQyxJQUFkLEVBQW9CQyxJQUFwQjtBQUNBLFNBQUtDLGVBQUwsR0FBdUIsSUFBdkI7QUFDQSxTQUFLQyxFQUFMLENBQVEsY0FBUixFQUF3QkMsS0FBSyxJQUFJO0FBQzdCLFVBQUlBLEtBQUssQ0FBQ0MsS0FBTixLQUFnQixNQUFwQixFQUE0QjtBQUN4QixhQUFLSCxlQUFMLElBQXdCLEtBQUtBLGVBQUwsQ0FBcUJFLEtBQXJCLENBQXhCO0FBQ0g7QUFDSixLQUpEO0FBS0g7O0FBRUQsTUFBSUUsT0FBSixHQUFlO0FBQUUsV0FBTyxLQUFLQyxJQUFMLENBQVUsU0FBVixDQUFQO0FBQTZCOztBQUM5QyxNQUFJQyxPQUFKLEdBQWU7QUFBRSxXQUFPLEtBQUtELElBQUwsQ0FBVSxTQUFWLEVBQXFCLFNBQXJCLENBQVA7QUFBd0M7O0FBQ3pELE1BQUlFLE9BQUosR0FBZTtBQUFFLFdBQU8sS0FBS0YsSUFBTCxDQUFVLFNBQVYsQ0FBUDtBQUE2Qjs7QUFDOUMsTUFBSUcsTUFBSixHQUFjO0FBQUUsV0FBTyxLQUFLSCxJQUFMLENBQVUsUUFBVixDQUFQO0FBQTRCOztBQUM1QyxNQUFJSSxXQUFKLEdBQW1CO0FBQUUsV0FBTyxLQUFLSixJQUFMLENBQVUsYUFBVixDQUFQO0FBQWlDOztBQUN0RCxNQUFJSyxRQUFKLEdBQWdCO0FBQUUsV0FBTyxLQUFLTCxJQUFMLENBQVUsVUFBVixDQUFQO0FBQThCOztBQUNoRCxNQUFJTSxRQUFKLEdBQWdCO0FBQUUsV0FBTyxLQUFLTixJQUFMLENBQVUsVUFBVixDQUFQO0FBQThCOztBQUNoRCxNQUFJTyxXQUFKLEdBQW1CO0FBQUUsV0FBTyxLQUFLUCxJQUFMLENBQVUsYUFBVixDQUFQO0FBQWlDOztBQUN0RCxNQUFJUSxRQUFKLEdBQWdCO0FBQUUsV0FBTyxLQUFLUixJQUFMLENBQVUsVUFBVixDQUFQO0FBQThCOztBQUNoRCxNQUFJUyxhQUFKLEdBQXFCO0FBQUUsV0FBTyxLQUFLVCxJQUFMLENBQVUsZUFBVixDQUFQO0FBQW1DOztBQUMxRCxNQUFJVSxTQUFKLEdBQWlCO0FBQUUsV0FBTyxLQUFLVixJQUFMLENBQVUsV0FBVixDQUFQO0FBQStCOztBQUNsRCxNQUFJVyxTQUFKLEdBQWlCO0FBQUUsV0FBTyxLQUFLWCxJQUFMLENBQVUsV0FBVixDQUFQO0FBQStCO0FBRWxEOzs7Ozs7QUFJQSxRQUFNWSxTQUFOLEdBQW1CO0FBQ2YsUUFBSUMsT0FBTyxHQUFHLE1BQU0sS0FBS0MsT0FBTCxDQUFhLFdBQWIsQ0FBcEI7QUFDQSxTQUFLckIsSUFBTCxHQUFZb0IsT0FBTyxDQUFDRSxLQUFSLENBQWNDLEtBQTFCO0FBQ0EsU0FBS3RCLElBQUwsR0FBWW1CLE9BQU8sQ0FBQ0UsS0FBcEI7QUFDQSxTQUFLRSxTQUFMLENBQWUsS0FBS3ZCLElBQXBCO0FBQ0g7QUFFRDs7Ozs7OztBQUtBd0IsRUFBQUEsYUFBYSxDQUFFQyxPQUFGLEVBQVc7QUFDcEIsV0FBTyxLQUFLTCxPQUFMLENBQWEsYUFBYixFQUE0QjtBQUFDLGlCQUFXO0FBQUNJLFFBQUFBLGFBQWEsRUFBRUM7QUFBaEI7QUFBWixLQUE1QixDQUFQO0FBQ0g7QUFFRDs7Ozs7O0FBSUFDLEVBQUFBLGNBQWMsQ0FBRUMsUUFBRixFQUFZO0FBQ3RCLFNBQUsxQixlQUFMLEdBQXVCMEIsUUFBdkI7QUFDSDtBQUVEOzs7Ozs7QUFJQUMsRUFBQUEsTUFBTSxHQUFJO0FBQ04sV0FBTyxLQUFLUixPQUFMLENBQWEsUUFBYixDQUFQO0FBQ0g7QUFFRDs7Ozs7O0FBSUFTLEVBQUFBLE1BQU0sR0FBSTtBQUNOLFdBQU8sS0FBS1QsT0FBTCxDQUFhLFFBQWIsQ0FBUDtBQUNIO0FBRUQ7Ozs7OztBQUlBVSxFQUFBQSxNQUFNLEdBQUk7QUFDTixXQUFPLEtBQUtWLE9BQUwsQ0FBYSxRQUFiLENBQVA7QUFDSDtBQUVEOzs7Ozs7O0FBS0FXLEVBQUFBLFVBQVUsQ0FBRUMsR0FBRixFQUFPO0FBQ2IsV0FBTyxLQUFLWixPQUFMLENBQWEsWUFBYixFQUEyQjtBQUFFWSxNQUFBQTtBQUFGLEtBQTNCLENBQVA7QUFDSDs7QUFuRmtDOztrQkFBbEJyQyxHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEFjdG9yIGZyb20gJy4vYWN0b3InXHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUYWIgZXh0ZW5kcyBBY3RvciB7XHJcbiAgICBjb25zdHJ1Y3RvciAoY2xpZW50LCBuYW1lLCBkYXRhKSB7XHJcbiAgICAgICAgc3VwZXIoY2xpZW50LCBuYW1lLCBkYXRhKVxyXG4gICAgICAgIHRoaXMuX29uVGFiTmF2aWdhdGVkID0gbnVsbFxyXG4gICAgICAgIHRoaXMub24oJ3RhYk5hdmlnYXRlZCcsIGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgaWYgKGV2ZW50LnN0YXRlID09PSAnc3RvcCcpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX29uVGFiTmF2aWdhdGVkICYmIHRoaXMuX29uVGFiTmF2aWdhdGVkKGV2ZW50KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29uc29sZSAoKSB7IHJldHVybiB0aGlzLl9nZXQoJ2NvbnNvbGUnKSB9XHJcbiAgICBnZXQgbmV0d29yayAoKSB7IHJldHVybiB0aGlzLl9nZXQoJ2NvbnNvbGUnLCAnbmV0d29yaycpIH1cclxuICAgIGdldCBzdG9yYWdlICgpIHsgcmV0dXJuIHRoaXMuX2dldCgnc3RvcmFnZScpIH1cclxuICAgIGdldCBtZW1vcnkgKCkgeyByZXR1cm4gdGhpcy5fZ2V0KCdtZW1vcnknKSB9XHJcbiAgICBnZXQgcGVyZm9ybWFuY2UgKCkgeyByZXR1cm4gdGhpcy5fZ2V0KCdwZXJmb3JtYW5jZScpIH1cclxuICAgIGdldCBwcm9maWxlciAoKSB7IHJldHVybiB0aGlzLl9nZXQoJ3Byb2ZpbGVyJykgfVxyXG4gICAgZ2V0IHRpbWVsaW5lICgpIHsgcmV0dXJuIHRoaXMuX2dldCgndGltZWxpbmUnKSB9XHJcbiAgICBnZXQgc3R5bGVTaGVldHMgKCkgeyByZXR1cm4gdGhpcy5fZ2V0KCdzdHlsZVNoZWV0cycpIH1cclxuICAgIGdldCBjc3NVc2FnZSAoKSB7IHJldHVybiB0aGlzLl9nZXQoJ2Nzc1VzYWdlJykgfVxyXG4gICAgZ2V0IGNzc1Byb3BlcnRpZXMgKCkgeyByZXR1cm4gdGhpcy5fZ2V0KCdjc3NQcm9wZXJ0aWVzJykgfVxyXG4gICAgZ2V0IGVtdWxhdGlvbiAoKSB7IHJldHVybiB0aGlzLl9nZXQoJ2VtdWxhdGlvbicpIH1cclxuICAgIGdldCBpbnNwZWN0b3IgKCkgeyByZXR1cm4gdGhpcy5fZ2V0KCdpbnNwZWN0b3InKSB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaXJlZm94IDc1OiBHZXRzIFRhYidzIGFjdG9yc1xyXG4gICAgICogQHJldHVybnMge1Byb21pc2V9IHJlcXVlc3QgcHJvbWlzZVxyXG4gICAgICovXHJcbiAgICBhc3luYyBnZXRUYXJnZXQgKCkge1xyXG4gICAgICAgIGxldCB0YXJnZXRzID0gYXdhaXQgdGhpcy5yZXF1ZXN0KCdnZXRUYXJnZXQnKVxyXG4gICAgICAgIHRoaXMubmFtZSA9IHRhcmdldHMuZnJhbWUuYWN0b3JcclxuICAgICAgICB0aGlzLmRhdGEgPSB0YXJnZXRzLmZyYW1lXHJcbiAgICAgICAgdGhpcy5zZXRBY3RvcnModGhpcy5kYXRhKVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGlzYWJsZS9FbmFibGVzIGNhY2hlXHJcbiAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IGRpc2FibGVcclxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSByZXF1ZXN0IHByb21pc2VcclxuICAgICAqL1xyXG4gICAgY2FjaGVEaXNhYmxlZCAoZGlzYWJsZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3QoJ3JlY29uZmlndXJlJywgeydvcHRpb25zJzoge2NhY2hlRGlzYWJsZWQ6IGRpc2FibGV9fSlcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxzIGEgY2FsbGJhY2sgb24gdGFiIG5hdmlnYXRlZCBldmVudFxyXG4gICAgICogQHBhcmFtICB7RnVuY3Rpb259IGNhbGxiYWNrICBmdW5jdGlvbiB0byBiZSBjYWxsZWRcclxuICAgICAqL1xyXG4gICAgb25UYWJOYXZpZ2F0ZWQgKGNhbGxiYWNrKSB7XHJcbiAgICAgICAgdGhpcy5fb25UYWJOYXZpZ2F0ZWQgPSBjYWxsYmFja1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogYXR0YWNoIHRvIHRhYlxyXG4gICAgICogQHJldHVybiB7UHJvbWlzZX0gIHJlcXVlc3QgcHJvbWlzZVxyXG4gICAgICovXHJcbiAgICBhdHRhY2ggKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3QoJ2F0dGFjaCcpXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBkZXRhY2ggZnJvbSB0YWJcclxuICAgICAqIEByZXR1cm4ge1Byb21pc2V9ICByZXF1ZXN0IHByb21pc2VcclxuICAgICAqL1xyXG4gICAgZGV0YWNoICgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KCdkZXRhY2gnKVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogcmVsb2FkcyBjdXJyZW50IHBhZ2UgdXJsXHJcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlfSAgcmVxdWVzdCBwcm9taXNlXHJcbiAgICAgKi9cclxuICAgIHJlbG9hZCAoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdCgncmVsb2FkJylcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIG5hdmlnYXRlcyB0byBhIGNlcnRhaW4gdXJsXHJcbiAgICAgKiBAcGFyYW0gIHtzdHJpbmd9ICB1cmwgdG8gbmF2aWdhdGUgdG9cclxuICAgICAqIEByZXR1cm4ge1Byb21pc2V9ICAgICByZXF1ZXN0IHByb21pc2VcclxuICAgICAqL1xyXG4gICAgbmF2aWdhdGVUbyAodXJsKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdCgnbmF2aWdhdGVUbycsIHsgdXJsIH0pXHJcbiAgICB9XHJcbn1cclxuIl19