MCPcopy Create free account
hub / github.com/mitmproxy/mitmproxy / WebMaster

Class WebMaster

mitmproxy/tools/web/master.py:27–122  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

25
26
27class WebMaster(master.Master):
28 def __init__(self, opts: options.Options, with_termlog: bool = True):
29 super().__init__(opts, with_termlog=with_termlog)
30 self.view = view.View()
31 self.view.sig_view_add.connect(self._sig_view_add)
32 self.view.sig_view_remove.connect(self._sig_view_remove)
33 self.view.sig_view_update.connect(self._sig_view_update)
34 self.view.sig_view_refresh.connect(self._sig_view_refresh)
35
36 self.events = eventstore.EventStore()
37 self.events.sig_add.connect(self._sig_events_add)
38 self.events.sig_refresh.connect(self._sig_events_refresh)
39
40 self.options.changed.connect(self._sig_options_update)
41
42 self.addons.add(*addons.default_addons())
43 self.addons.add(
44 webaddons.WebAddon(),
45 webaddons.WebAuth(),
46 intercept.Intercept(),
47 readfile.ReadFileStdin(),
48 static_viewer.StaticViewer(),
49 self.view,
50 self.events,
51 errorcheck.ErrorCheck(),
52 )
53 self.app = app.Application(self, self.options.web_debug)
54 self.proxyserver: Proxyserver = self.addons.get("proxyserver")
55 self.proxyserver.servers.changed.connect(self._sig_servers_changed)
56
57 def _sig_view_add(self, flow: flow.Flow) -> None:
58 app.ClientConnection.broadcast_flow("flows/add", flow)
59
60 def _sig_view_update(self, flow: flow.Flow) -> None:
61 app.ClientConnection.broadcast_flow("flows/update", flow)
62
63 def _sig_view_remove(self, flow: flow.Flow, index: int) -> None:
64 app.ClientConnection.broadcast(
65 type="flows/remove",
66 payload=flow.id,
67 )
68
69 def _sig_view_refresh(self) -> None:
70 app.ClientConnection.broadcast_flow_reset()
71
72 def _sig_events_add(self, entry: log.LogEntry) -> None:
73 app.ClientConnection.broadcast(
74 type="events/add",
75 payload=app.logentry_to_json(entry),
76 )
77
78 def _sig_events_refresh(self) -> None:
79 app.ClientConnection.broadcast(
80 type="events/reset",
81 )
82
83 def _sig_options_update(self, updated: set[str]) -> None:
84 options_dict = optmanager.dump_dicts(self.options, updated)

Callers 1

test_reuseFunction · 0.90

Calls

no outgoing calls

Tested by 1

test_reuseFunction · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…