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

Class FlowDetails

mitmproxy/tools/console/flowview.py:44–481  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42
43
44class FlowDetails(tabs.Tabs):
45 def __init__(self, master):
46 self.master = master
47 super().__init__([])
48 self.show()
49 self.last_displayed_body = None
50 self.last_displayed_websocket_messages = None
51 contentviews.registry.on_change.connect(self.contentview_changed)
52
53 @property
54 def view(self):
55 return self.master.view
56
57 @property
58 def flow(self) -> mitmproxy.flow.Flow:
59 return self.master.view.focus.flow
60
61 def contentview_changed(self, view):
62 # this is called when a contentview addon is live-reloaded.
63 # we clear our cache and then rerender
64 self._get_content_view.cache_clear()
65 if self.master.window.current_window("flowview"):
66 self.show()
67
68 def focus_changed(self):
69 f = self.flow
70 if f:
71 if isinstance(f, http.HTTPFlow):
72 if f.websocket:
73 self.tabs = [
74 (self.tab_http_request, self.view_request),
75 (self.tab_http_response, self.view_response),
76 (self.tab_websocket_messages, self.view_websocket_messages),
77 (self.tab_details, self.view_details),
78 ]
79 else:
80 self.tabs = [
81 (self.tab_http_request, self.view_request),
82 (self.tab_http_response, self.view_response),
83 (self.tab_details, self.view_details),
84 ]
85 elif isinstance(f, tcp.TCPFlow):
86 self.tabs = [
87 (self.tab_tcp_stream, self.view_message_stream),
88 (self.tab_details, self.view_details),
89 ]
90 elif isinstance(f, udp.UDPFlow):
91 self.tabs = [
92 (self.tab_udp_stream, self.view_message_stream),
93 (self.tab_details, self.view_details),
94 ]
95 elif isinstance(f, dns.DNSFlow):
96 self.tabs = [
97 (self.tab_dns_request, self.view_dns_request),
98 (self.tab_dns_response, self.view_dns_response),
99 (self.tab_details, self.view_details),
100 ]
101 self.show()

Calls

no outgoing calls

Used in the wild real call sites across dependent graphs

searching dependent graphs…