blob: 57b1bdd47847aa4fb3cc1fbf7fcc929db6d6e280 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
* @implements {Protocol.LogDispatcher}
*/
SDK.LogModel = class extends SDK.SDKModel {
/**
* @param {!SDK.Target} target
*/
constructor(target) {
super(target);
target.registerLogDispatcher(this);
this._logAgent = target.logAgent();
this._logAgent.enable();
if (!Host.isUnderTest()) {
this._logAgent.startViolationsReport([
{name: 'longTask', threshold: 200}, {name: 'longLayout', threshold: 30}, {name: 'blockedEvent', threshold: 100},
{name: 'blockedParser', threshold: -1}, {name: 'handler', threshold: 150},
{name: 'recurringHandler', threshold: 50}, {name: 'discouragedAPIUse', threshold: -1}
]);
}
}
/**
* @override
* @param {!Protocol.Log.LogEntry} payload
*/
entryAdded(payload) {
this.emit(new SDK.LogModel.EntryAddedEvent(payload));
}
requestClear() {
this._logAgent.clear();
}
};
SDK.SDKModel.register(SDK.LogModel, SDK.Target.Capability.Log);
/** @implements {Common.Emittable} */
SDK.LogModel.EntryAddedEvent = class {
/**
* @param {!Protocol.Log.LogEntry} entry
*/
constructor(entry) {
this.entry = entry;
}
};