1414#include " node_options-inl.h"
1515#include " node_process-inl.h"
1616#include " node_url.h"
17- #include " util-inl .h"
17+ #include " permission/permission .h"
1818#include " timer_wrap-inl.h"
19+ #include " util-inl.h"
1920#include " v8-inspector.h"
2021#include " v8-platform.h"
2122
@@ -755,6 +756,10 @@ bool Agent::StartIoThread() {
755756 if (io_ != nullptr )
756757 return true ;
757758
759+ THROW_IF_INSUFFICIENT_PERMISSIONS (parent_env_,
760+ permission::PermissionScope::kInspector ,
761+ " StartIoThread" ,
762+ false );
758763 if (!parent_env_->should_create_inspector () && !client_) {
759764 ThrowUninitializedInspectorError (parent_env_);
760765 return false ;
@@ -780,6 +785,10 @@ void Agent::Stop() {
780785std::unique_ptr<InspectorSession> Agent::Connect (
781786 std::unique_ptr<InspectorSessionDelegate> delegate,
782787 bool prevent_shutdown) {
788+ THROW_IF_INSUFFICIENT_PERMISSIONS (parent_env_,
789+ permission::PermissionScope::kInspector ,
790+ " Connect" ,
791+ std::unique_ptr<InspectorSession>{});
783792 if (!parent_env_->should_create_inspector () && !client_) {
784793 ThrowUninitializedInspectorError (parent_env_);
785794 return std::unique_ptr<InspectorSession>{};
@@ -796,6 +805,10 @@ std::unique_ptr<InspectorSession> Agent::Connect(
796805std::unique_ptr<InspectorSession> Agent::ConnectToMainThread (
797806 std::unique_ptr<InspectorSessionDelegate> delegate,
798807 bool prevent_shutdown) {
808+ THROW_IF_INSUFFICIENT_PERMISSIONS (parent_env_,
809+ permission::PermissionScope::kInspector ,
810+ " ConnectToMainThread" ,
811+ std::unique_ptr<InspectorSession>{});
799812 if (!parent_env_->should_create_inspector () && !client_) {
800813 ThrowUninitializedInspectorError (parent_env_);
801814 return std::unique_ptr<InspectorSession>{};
@@ -810,6 +823,9 @@ std::unique_ptr<InspectorSession> Agent::ConnectToMainThread(
810823}
811824
812825void Agent::WaitForDisconnect () {
826+ THROW_IF_INSUFFICIENT_PERMISSIONS (parent_env_,
827+ permission::PermissionScope::kInspector ,
828+ " WaitForDisconnect" );
813829 if (!parent_env_->should_create_inspector () && !client_) {
814830 ThrowUninitializedInspectorError (parent_env_);
815831 return ;
@@ -963,6 +979,10 @@ void Agent::SetParentHandle(
963979
964980std::unique_ptr<ParentInspectorHandle> Agent::GetParentHandle (
965981 uint64_t thread_id, const std::string& url, const std::string& name) {
982+ THROW_IF_INSUFFICIENT_PERMISSIONS (parent_env_,
983+ permission::PermissionScope::kInspector ,
984+ " GetParentHandle" ,
985+ std::unique_ptr<ParentInspectorHandle>{});
966986 if (!parent_env_->should_create_inspector () && !client_) {
967987 ThrowUninitializedInspectorError (parent_env_);
968988 return std::unique_ptr<ParentInspectorHandle>{};
@@ -977,6 +997,8 @@ std::unique_ptr<ParentInspectorHandle> Agent::GetParentHandle(
977997}
978998
979999void Agent::WaitForConnect () {
1000+ THROW_IF_INSUFFICIENT_PERMISSIONS (
1001+ parent_env_, permission::PermissionScope::kInspector , " WaitForConnect" );
9801002 if (!parent_env_->should_create_inspector () && !client_) {
9811003 ThrowUninitializedInspectorError (parent_env_);
9821004 return ;
@@ -987,6 +1009,10 @@ void Agent::WaitForConnect() {
9871009}
9881010
9891011std::shared_ptr<WorkerManager> Agent::GetWorkerManager () {
1012+ THROW_IF_INSUFFICIENT_PERMISSIONS (parent_env_,
1013+ permission::PermissionScope::kInspector ,
1014+ " GetWorkerManager" ,
1015+ std::unique_ptr<WorkerManager>{});
9901016 if (!parent_env_->should_create_inspector () && !client_) {
9911017 ThrowUninitializedInspectorError (parent_env_);
9921018 return std::unique_ptr<WorkerManager>{};
0 commit comments