Skip to content

Commit 688e313

Browse files
committed
avoid making networkResourceManager a static class.
1 parent 826d594 commit 688e313

14 files changed

+179
-71
lines changed

src/inspector/io_agent.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ DispatchResponse IoAgent::read(const String& in_handle,
2929
}
3030
stream_id = std::stoull(in_handle_str);
3131

32-
std::string url = NetworkResourceManager::GetUrlForStreamId(stream_id);
32+
std::string url = network_resource_manager_->GetUrlForStreamId(stream_id);
3333
if (url.empty()) {
3434
*out_data = "";
3535
*out_eof = true;
3636
return DispatchResponse::Success();
3737
}
38-
std::string txt = NetworkResourceManager::Get(url);
38+
std::string txt = network_resource_manager_->Get(url);
3939
std::string_view txt_view(txt);
4040

4141
int offset = 0;
@@ -73,7 +73,7 @@ DispatchResponse IoAgent::close(const String& in_handle) {
7373
if (is_number) {
7474
stream_id = std::stoull(in_handle_str);
7575
// Use accessor to erase resource and mapping by stream id
76-
NetworkResourceManager::EraseByStreamId(stream_id);
76+
network_resource_manager_->EraseByStreamId(stream_id);
7777
}
7878
return DispatchResponse::Success();
7979
}

src/inspector/io_agent.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
#ifndef SRC_INSPECTOR_IO_AGENT_H_
22
#define SRC_INSPECTOR_IO_AGENT_H_
33

4+
#include <memory>
5+
#include "inspector/network_resource_manager.h"
46
#include "node/inspector/protocol/IO.h"
57

68
namespace node::inspector::protocol {
79

810
class IoAgent : public IO::Backend {
911
public:
10-
IoAgent() {}
12+
explicit IoAgent(std::shared_ptr<NetworkResourceManager> network_resource_manager)
13+
: network_resource_manager_(std::move(network_resource_manager)) {}
1114
void Wire(UberDispatcher* dispatcher);
1215
DispatchResponse read(const String& in_handle,
1316
Maybe<int> in_offset,
@@ -19,6 +22,7 @@ class IoAgent : public IO::Backend {
1922
private:
2023
std::shared_ptr<IO::Frontend> frontend_;
2124
std::unordered_map<int, int> offset_map_ = {}; // Maps stream_id to offset
25+
std::shared_ptr<NetworkResourceManager> network_resource_manager_;
2226
};
2327
} // namespace node::inspector::protocol
2428
#endif // SRC_INSPECTOR_IO_AGENT_H_

src/inspector/network_agent.cc

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -208,10 +208,15 @@ std::unique_ptr<protocol::Network::Response> createResponseFromObject(
208208
.build();
209209
}
210210

211-
NetworkAgent::NetworkAgent(NetworkInspector* inspector,
212-
v8_inspector::V8Inspector* v8_inspector,
213-
Environment* env)
214-
: inspector_(inspector), v8_inspector_(v8_inspector), env_(env) {
211+
NetworkAgent::NetworkAgent(
212+
NetworkInspector* inspector,
213+
v8_inspector::V8Inspector* v8_inspector,
214+
Environment* env,
215+
std::shared_ptr<NetworkResourceManager> network_resource_manager)
216+
: inspector_(inspector),
217+
v8_inspector_(v8_inspector),
218+
env_(env),
219+
network_resource_manager_(std::move(network_resource_manager)) {
215220
event_notifier_map_["requestWillBeSent"] = &NetworkAgent::requestWillBeSent;
216221
event_notifier_map_["responseReceived"] = &NetworkAgent::responseReceived;
217222
event_notifier_map_["loadingFailed"] = &NetworkAgent::loadingFailed;
@@ -349,10 +354,10 @@ protocol::DispatchResponse NetworkAgent::loadNetworkResource(
349354
"experimental and requires --experimental-inspector-network-resource "
350355
"flag to be set.");
351356
}
352-
std::string data = NetworkResourceManager::Get(in_url);
357+
std::string data = network_resource_manager_->Get(in_url);
353358
bool found = !data.empty();
354359
if (found) {
355-
uint64_t stream_id = NetworkResourceManager::GetStreamId(in_url);
360+
uint64_t stream_id = network_resource_manager_->GetStreamId(in_url);
356361
auto result = protocol::Network::LoadNetworkResourcePageResult::create()
357362
.setSuccess(true)
358363
.setStream(std::to_string(stream_id))

src/inspector/network_agent.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33

44
#include "env.h"
55
#include "io_agent.h"
6+
#include "network_resource_manager.h"
67
#include "node/inspector/protocol/Network.h"
78

89
#include <map>
10+
#include <memory>
911
#include <unordered_map>
1012

1113
namespace node {
@@ -40,9 +42,11 @@ struct RequestEntry {
4042

4143
class NetworkAgent : public protocol::Network::Backend {
4244
public:
43-
explicit NetworkAgent(NetworkInspector* inspector,
44-
v8_inspector::V8Inspector* v8_inspector,
45-
Environment* env);
45+
explicit NetworkAgent(
46+
NetworkInspector* inspector,
47+
v8_inspector::V8Inspector* v8_inspector,
48+
Environment* env,
49+
std::shared_ptr<NetworkResourceManager> network_resource_manager);
4650

4751
void Wire(protocol::UberDispatcher* dispatcher);
4852

@@ -98,6 +102,7 @@ class NetworkAgent : public protocol::Network::Backend {
98102
std::unordered_map<protocol::String, EventNotifier> event_notifier_map_;
99103
std::map<protocol::String, RequestEntry> requests_;
100104
Environment* env_;
105+
std::shared_ptr<NetworkResourceManager> network_resource_manager_;
101106
};
102107

103108
} // namespace inspector

src/inspector/network_inspector.cc

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,15 @@
33
namespace node {
44
namespace inspector {
55

6-
NetworkInspector::NetworkInspector(Environment* env,
7-
v8_inspector::V8Inspector* v8_inspector)
8-
: enabled_(false), env_(env) {
9-
network_agent_ = std::make_unique<NetworkAgent>(this, v8_inspector, env);
6+
NetworkInspector::NetworkInspector(
7+
Environment* env,
8+
v8_inspector::V8Inspector* v8_inspector,
9+
std::shared_ptr<NetworkResourceManager> network_resource_manager)
10+
: enabled_(false),
11+
env_(env),
12+
network_resource_manager_(std::move(network_resource_manager)) {
13+
network_agent_ = std::make_unique<NetworkAgent>(
14+
this, v8_inspector, env, network_resource_manager_);
1015
}
1116
NetworkInspector::~NetworkInspector() {
1217
network_agent_.reset();

src/inspector/network_inspector.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
#ifndef SRC_INSPECTOR_NETWORK_INSPECTOR_H_
22
#define SRC_INSPECTOR_NETWORK_INSPECTOR_H_
33

4+
#include <memory>
45
#include "env.h"
56
#include "network_agent.h"
7+
#include "network_resource_manager.h"
68

79
namespace node {
810
class Environment;
@@ -11,8 +13,10 @@ namespace inspector {
1113

1214
class NetworkInspector {
1315
public:
14-
explicit NetworkInspector(Environment* env,
15-
v8_inspector::V8Inspector* v8_inspector);
16+
explicit NetworkInspector(
17+
Environment* env,
18+
v8_inspector::V8Inspector* v8_inspector,
19+
std::shared_ptr<NetworkResourceManager> network_resource_manager);
1620
~NetworkInspector();
1721

1822
void Wire(protocol::UberDispatcher* dispatcher);
@@ -32,6 +36,7 @@ class NetworkInspector {
3236
bool enabled_;
3337
Environment* env_;
3438
std::unique_ptr<NetworkAgent> network_agent_;
39+
std::shared_ptr<NetworkResourceManager> network_resource_manager_;
3540
};
3641

3742
} // namespace inspector

src/inspector/network_resource_manager.cc

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,6 @@
77
namespace node {
88
namespace inspector {
99

10-
std::unordered_map<std::string, std::string> NetworkResourceManager::resources_;
11-
std::unordered_map<std::string, uint64_t>
12-
NetworkResourceManager::url_to_stream_id_;
13-
std::atomic<uint64_t> NetworkResourceManager::stream_id_counter_{1};
14-
1510
void NetworkResourceManager::Put(const std::string& url,
1611
const std::string& data) {
1712
resources_[url] = data;

src/inspector/network_resource_manager.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,21 @@ namespace inspector {
1111

1212
class NetworkResourceManager {
1313
public:
14-
static void Put(const std::string& url, const std::string& data);
15-
static std::string Get(const std::string& url);
14+
void Put(const std::string& url, const std::string& data);
15+
std::string Get(const std::string& url);
1616

1717
// Accessor to get URL for a given stream id
18-
static std::string GetUrlForStreamId(uint64_t stream_id);
18+
std::string GetUrlForStreamId(uint64_t stream_id);
1919
// Erase resource and mapping by stream id
20-
static void EraseByStreamId(uint64_t stream_id);
20+
void EraseByStreamId(uint64_t stream_id);
2121
// Returns the stream id for a given url, or 0 if not found
22-
static uint64_t GetStreamId(const std::string& url);
22+
uint64_t GetStreamId(const std::string& url);
2323

2424
private:
25-
static uint64_t NextStreamId();
26-
static std::unordered_map<std::string, std::string> resources_;
27-
static std::unordered_map<std::string, uint64_t> url_to_stream_id_;
28-
static std::atomic<uint64_t> stream_id_counter_;
25+
uint64_t NextStreamId();
26+
std::unordered_map<std::string, std::string> resources_;
27+
std::unordered_map<std::string, uint64_t> url_to_stream_id_;
28+
std::atomic<uint64_t> stream_id_counter_{1};
2929
};
3030

3131
} // namespace inspector

src/inspector/worker_inspector.cc

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,14 @@ ParentInspectorHandle::ParentInspectorHandle(
6060
const std::string& url,
6161
std::shared_ptr<MainThreadHandle> parent_thread,
6262
bool wait_for_connect,
63-
const std::string& name)
63+
const std::string& name,
64+
std::shared_ptr<NetworkResourceManager> network_resource_manager)
6465
: id_(id),
6566
url_(url),
6667
parent_thread_(parent_thread),
6768
wait_(wait_for_connect),
68-
name_(name) {}
69+
name_(name),
70+
network_resource_manager_(network_resource_manager) {}
6971

7072
ParentInspectorHandle::~ParentInspectorHandle() {
7173
parent_thread_->Post(
@@ -101,10 +103,13 @@ void WorkerManager::WorkerStarted(uint64_t session_id,
101103
}
102104

103105
std::unique_ptr<ParentInspectorHandle> WorkerManager::NewParentHandle(
104-
uint64_t thread_id, const std::string& url, const std::string& name) {
106+
uint64_t thread_id,
107+
const std::string& url,
108+
const std::string& name,
109+
std::shared_ptr<NetworkResourceManager> network_resource_manager) {
105110
bool wait = !delegates_waiting_on_start_.empty();
106111
return std::make_unique<ParentInspectorHandle>(
107-
thread_id, url, thread_, wait, name);
112+
thread_id, url, thread_, wait, name, network_resource_manager);
108113
}
109114

110115
void WorkerManager::RemoveAttachDelegate(int id) {

src/inspector/worker_inspector.h

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#ifndef SRC_INSPECTOR_WORKER_INSPECTOR_H_
22
#define SRC_INSPECTOR_WORKER_INSPECTOR_H_
33

4+
#include "inspector/network_resource_manager.h"
45
#if !HAVE_INSPECTOR
56
#error("This header can only be used when inspector is enabled")
67
#endif
@@ -54,16 +55,18 @@ struct WorkerInfo {
5455

5556
class ParentInspectorHandle {
5657
public:
57-
ParentInspectorHandle(uint64_t id,
58-
const std::string& url,
59-
std::shared_ptr<MainThreadHandle> parent_thread,
60-
bool wait_for_connect,
61-
const std::string& name);
58+
ParentInspectorHandle(
59+
uint64_t id,
60+
const std::string& url,
61+
std::shared_ptr<MainThreadHandle> parent_thread,
62+
bool wait_for_connect,
63+
const std::string& name,
64+
std::shared_ptr<NetworkResourceManager> network_resource_manager);
6265
~ParentInspectorHandle();
6366
std::unique_ptr<ParentInspectorHandle> NewParentInspectorHandle(
6467
uint64_t thread_id, const std::string& url, const std::string& name) {
6568
return std::make_unique<ParentInspectorHandle>(
66-
thread_id, url, parent_thread_, wait_, name);
69+
thread_id, url, parent_thread_, wait_, name, network_resource_manager_);
6770
}
6871
void WorkerStarted(std::shared_ptr<MainThreadHandle> worker_thread,
6972
bool waiting);
@@ -74,13 +77,17 @@ class ParentInspectorHandle {
7477
std::unique_ptr<inspector::InspectorSession> Connect(
7578
std::unique_ptr<inspector::InspectorSessionDelegate> delegate,
7679
bool prevent_shutdown);
80+
std::shared_ptr<NetworkResourceManager> GetNetworkResourceManager() {
81+
return network_resource_manager_;
82+
}
7783

7884
private:
7985
uint64_t id_;
8086
std::string url_;
8187
std::shared_ptr<MainThreadHandle> parent_thread_;
8288
bool wait_;
8389
std::string name_;
90+
std::shared_ptr<NetworkResourceManager> network_resource_manager_;
8491
};
8592

8693
class WorkerManager : public std::enable_shared_from_this<WorkerManager> {
@@ -89,7 +96,10 @@ class WorkerManager : public std::enable_shared_from_this<WorkerManager> {
8996
: thread_(thread) {}
9097

9198
std::unique_ptr<ParentInspectorHandle> NewParentHandle(
92-
uint64_t thread_id, const std::string& url, const std::string& name);
99+
uint64_t thread_id,
100+
const std::string& url,
101+
const std::string& name,
102+
std::shared_ptr<NetworkResourceManager> network_resource_manager);
93103
void WorkerStarted(uint64_t session_id, const WorkerInfo& info, bool waiting);
94104
void WorkerFinished(uint64_t session_id);
95105
std::unique_ptr<WorkerManagerEventHandle> SetAutoAttach(

0 commit comments

Comments
 (0)