feat(ExecutionContext): introduce ExecutionContext.frame() (#1972)

This patch introduces ExecutionContext.frame() that returns Frame
associated with this Execution Context.

This allows to associate console messages with the originating frame,
if any.
This commit is contained in:
Andrey Lushnikov
2018-02-13 14:02:44 -08:00
committed by GitHub
parent 885c93a927
commit ae22ef30b3
4 changed files with 26 additions and 13 deletions

View File

@@ -154,11 +154,11 @@ class FrameManager extends EventEmitter {
}
_onExecutionContextCreated(contextPayload) {
const context = new ExecutionContext(this._client, contextPayload, this.createJSHandle.bind(this, contextPayload.id));
const frameId = contextPayload.auxData && contextPayload.auxData.isDefault ? contextPayload.auxData.frameId : null;
const frame = frameId ? this._frames.get(frameId) : null;
const context = new ExecutionContext(this._client, contextPayload, this.createJSHandle.bind(this, contextPayload.id), frame);
this._contextIdToContext.set(contextPayload.id, context);
const frame = context._frameId ? this._frames.get(context._frameId) : null;
if (frame && context._isDefault)
if (frame)
frame._setDefaultContext(context);
}
@@ -166,9 +166,8 @@ class FrameManager extends EventEmitter {
* @param {!ExecutionContext} context
*/
_removeContext(context) {
const frame = context._frameId ? this._frames.get(context._frameId) : null;
if (frame && context._isDefault)
frame._setDefaultContext(null);
if (context.frame())
context.frame()._setDefaultContext(null);
}
/**