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