summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksei Koziatinskii <ak239spb@gmail.com>2019-06-25 15:28:56 -0700
committerMichaƫl Zasso <targos@protonmail.com>2019-07-22 21:20:43 +0200
commit77bdbc5f0d1bd7caada99d0097bca2a9bb1f4cee (patch)
tree1d7f1b9f8fb9ca9b308f496683d7130218a42549 /src
parent49e4d72b5a7fcf643e1476b0f382ed08cacd6c0a (diff)
downloadandroid-node-v8-77bdbc5f0d1bd7caada99d0097bca2a9bb1f4cee.tar.gz
android-node-v8-77bdbc5f0d1bd7caada99d0097bca2a9bb1f4cee.tar.bz2
android-node-v8-77bdbc5f0d1bd7caada99d0097bca2a9bb1f4cee.zip
inspector: add inspector.waitForDebugger()
This method blocks current node process until a client sends Runtime.runifWaitingForDebugger. It can be useful when we need to report inspector.url() before waiting for connection: ``` inspector.open(0, undefined, false); fs.writeFileSync(someFileName, inspector.url()); inspector.waitForDebugger(); ``` PR-URL: https://github.com/nodejs/node/pull/28453 Reviewed-By: Eugene Ostroukhov <eostroukhov@google.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Rich Trott <rtrott@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/inspector_js_api.cc13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/inspector_js_api.cc b/src/inspector_js_api.cc
index 3131c6ad37..8b891a2d61 100644
--- a/src/inspector_js_api.cc
+++ b/src/inspector_js_api.cc
@@ -237,7 +237,6 @@ void IsEnabled(const FunctionCallbackInfo<Value>& args) {
void Open(const FunctionCallbackInfo<Value>& args) {
Environment* env = Environment::GetCurrent(args);
Agent* agent = env->inspector_agent();
- bool wait_for_connect = false;
if (args.Length() > 0 && args[0]->IsUint32()) {
uint32_t port = args[0].As<Uint32>()->Value();
@@ -249,12 +248,15 @@ void Open(const FunctionCallbackInfo<Value>& args) {
agent->host_port()->set_host(*host);
}
- if (args.Length() > 2 && args[2]->IsBoolean()) {
- wait_for_connect = args[2]->BooleanValue(args.GetIsolate());
- }
agent->StartIoThread();
- if (wait_for_connect)
+}
+
+void WaitForDebugger(const FunctionCallbackInfo<Value>& args) {
+ Environment* env = Environment::GetCurrent(args);
+ Agent* agent = env->inspector_agent();
+ if (agent->IsActive())
agent->WaitForConnect();
+ args.GetReturnValue().Set(agent->IsActive());
}
void Url(const FunctionCallbackInfo<Value>& args) {
@@ -285,6 +287,7 @@ void Initialize(Local<Object> target, Local<Value> unused,
env->SetMethod(target, "callAndPauseOnStart", CallAndPauseOnStart);
env->SetMethod(target, "open", Open);
env->SetMethodNoSideEffect(target, "url", Url);
+ env->SetMethod(target, "waitForDebugger", WaitForDebugger);
env->SetMethod(target, "asyncTaskScheduled", AsyncTaskScheduledWrapper);
env->SetMethod(target, "asyncTaskCanceled",