Commit e6f5a80f authored by Alexey Kozyatinskiy's avatar Alexey Kozyatinskiy Committed by Commit Bot

[inspector] don't discard injected-script on runtime.disable

Most methods on runtime agent are available when agent is disabled, we compile
injected-script lazily and should not invalidate it on runtime.disable since it
will invalidate all related objectIds.

R=dgozman@chromium.org

Bug: none
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I86f3c5d6908862cd4c0847c433f35a6d83c6396b
Reviewed-on: https://chromium-review.googlesource.com/607153
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: 's avatarDmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#47265}
parent 293283d5
...@@ -111,13 +111,12 @@ V8InspectorSessionImpl::V8InspectorSessionImpl(V8InspectorImpl* inspector, ...@@ -111,13 +111,12 @@ V8InspectorSessionImpl::V8InspectorSessionImpl(V8InspectorImpl* inspector,
} }
V8InspectorSessionImpl::~V8InspectorSessionImpl() { V8InspectorSessionImpl::~V8InspectorSessionImpl() {
discardInjectedScripts();
m_consoleAgent->disable(); m_consoleAgent->disable();
m_profilerAgent->disable(); m_profilerAgent->disable();
m_heapProfilerAgent->disable(); m_heapProfilerAgent->disable();
m_debuggerAgent->disable(); m_debuggerAgent->disable();
m_runtimeAgent->disable(); m_runtimeAgent->disable();
discardInjectedScripts();
m_inspector->disconnect(this); m_inspector->disconnect(this);
} }
......
...@@ -708,7 +708,6 @@ Response V8RuntimeAgentImpl::disable() { ...@@ -708,7 +708,6 @@ Response V8RuntimeAgentImpl::disable() {
m_enabled = false; m_enabled = false;
m_state->setBoolean(V8RuntimeAgentImplState::runtimeEnabled, false); m_state->setBoolean(V8RuntimeAgentImplState::runtimeEnabled, false);
m_inspector->disableStackCapturingIfNeeded(); m_inspector->disableStackCapturingIfNeeded();
m_session->discardInjectedScripts();
m_session->setCustomObjectFormatterEnabled(false); m_session->setCustomObjectFormatterEnabled(false);
reset(); reset();
m_inspector->client()->endEnsureAllContextsInGroup( m_inspector->client()->endEnsureAllContextsInGroup(
......
Tests that Runtime.disable doesn't invalidate injected-script.
{
configurable : true
enumerable : true
isOwn : true
name : a
value : {
description : 1
type : number
value : 1
}
writable : true
}
Disabling agent..
{
configurable : true
enumerable : true
isOwn : true
name : a
value : {
description : 1
type : number
value : 1
}
writable : true
}
// Copyright 2017 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(async function test() {
let {session, contextGroup, Protocol} =
InspectorTest.start(
"Tests that Runtime.disable doesn't invalidate injected-script.");
Protocol.Runtime.enable();
let {result:{result:{objectId}}} = await Protocol.Runtime.evaluate({
expression: "({a:1})"
});
var {result:{result}} = await Protocol.Runtime.getProperties({objectId});
InspectorTest.logMessage(result.find(property => property.name === 'a'));
InspectorTest.log('Disabling agent..');
await Protocol.Runtime.disable();
var result = await Protocol.Runtime.getProperties({objectId});
if (result.error) {
InspectorTest.logMessage(result);
} else {
var props = result.result.result;
InspectorTest.logMessage(props.find(property => property.name === 'a'));
}
InspectorTest.completeTest();
})()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment