Skip to content

Commit

Permalink
worker: hide MessagePort init function behind symbol
Browse files Browse the repository at this point in the history
This reduces unintended exposure of internals.

PR-URL: #23037
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information
addaleax authored and targos committed Sep 27, 2018
1 parent f3d09b6 commit 2e30a68
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 4 deletions.
5 changes: 3 additions & 2 deletions lib/internal/worker.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ util.inherits(MessagePort, EventEmitter);
const {
Worker: WorkerImpl,
getEnvMessagePort,
threadId
threadId,
oninit: oninit_symbol
} = internalBinding('worker');

const isMainThread = threadId === 0;
Expand Down Expand Up @@ -93,7 +94,7 @@ function oninit() {
setupPortReferencing(this, this, 'message');
}

Object.defineProperty(MessagePort.prototype, 'oninit', {
Object.defineProperty(MessagePort.prototype, oninit_symbol, {
enumerable: true,
writable: false,
value: oninit
Expand Down
2 changes: 1 addition & 1 deletion src/env.h
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ struct PackageConfig {
#define PER_ISOLATE_SYMBOL_PROPERTIES(V) \
V(handle_onclose_symbol, "handle_onclose") \
V(owner_symbol, "owner") \
V(oninit_symbol, "oninit") \

// Strings are per-isolate primitives but Environment proxies them
// for the sake of convenience. Strings should be ASCII-only.
Expand Down Expand Up @@ -219,7 +220,6 @@ struct PackageConfig {
V(onhandshakedone_string, "onhandshakedone") \
V(onhandshakestart_string, "onhandshakestart") \
V(onheaders_string, "onheaders") \
V(oninit_string, "oninit") \
V(onmessage_string, "onmessage") \
V(onnewsession_string, "onnewsession") \
V(onocspresponse_string, "onocspresponse") \
Expand Down
2 changes: 1 addition & 1 deletion src/node_messaging.cc
Original file line number Diff line number Diff line change
Expand Up @@ -421,7 +421,7 @@ MessagePort::MessagePort(Environment* env,
async()->data = static_cast<void*>(this);

Local<Value> fn;
if (!wrap->Get(context, env->oninit_string()).ToLocal(&fn))
if (!wrap->Get(context, env->oninit_symbol()).ToLocal(&fn))
return;

if (fn->IsFunction()) {
Expand Down
4 changes: 4 additions & 0 deletions src/node_worker.cc
Original file line number Diff line number Diff line change
Expand Up @@ -501,6 +501,10 @@ void InitWorker(Local<Object> target,
thread_id_string,
Number::New(env->isolate(),
static_cast<double>(env->thread_id()))).FromJust();
Local<String> oninit_string = FIXED_ONE_BYTE_STRING(env->isolate(), "oninit");
target->Set(env->context(),
oninit_string,
env->oninit_symbol()).FromJust();
}

} // anonymous namespace
Expand Down

0 comments on commit 2e30a68

Please sign in to comment.