aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2018-01-30 21:19:40 +0100
committerGitHub <noreply@github.com>2018-01-30 21:19:40 +0100
commit02d2ef75060784b1eec9db81e62edf4b058f86fa (patch)
tree4b2dda99cff27f4c8aa7b9b38c1faaf9ffea2146
parente117c9e337b27eb6c8bcbd99d3cc8f761e3f7430 (diff)
parent4bb22bbe8a9caa4100b50a054dd720b4fdbf0edf (diff)
downloadmitmproxy-02d2ef75060784b1eec9db81e62edf4b058f86fa.tar.gz
mitmproxy-02d2ef75060784b1eec9db81e62edf4b058f86fa.tar.bz2
mitmproxy-02d2ef75060784b1eec9db81e62edf4b058f86fa.zip
Merge pull request #2814 from kajojify/issue-2753
Fix #2753. Fix resetting editings.
-rw-r--r--mitmproxy/tools/console/grideditor/base.py3
-rw-r--r--mitmproxy/tools/console/grideditor/col_subgrid.py11
-rw-r--r--mitmproxy/tools/console/grideditor/editors.py18
-rw-r--r--mitmproxy/tools/console/window.py1
4 files changed, 21 insertions, 12 deletions
diff --git a/mitmproxy/tools/console/grideditor/base.py b/mitmproxy/tools/console/grideditor/base.py
index cdda3def..204820a8 100644
--- a/mitmproxy/tools/console/grideditor/base.py
+++ b/mitmproxy/tools/console/grideditor/base.py
@@ -433,7 +433,6 @@ class FocusEditor(urwid.WidgetWrap, layoutwidget.LayoutWidget):
def __init__(self, master):
self.master = master
- self.focus_changed()
def call(self, v, name, *args, **kwargs):
f = getattr(v, name, None)
@@ -462,7 +461,7 @@ class FocusEditor(urwid.WidgetWrap, layoutwidget.LayoutWidget):
def layout_popping(self):
self.call(self._w, "layout_popping")
- def focus_changed(self):
+ def layout_pushed(self, prev):
if self.master.view.focus.flow:
self._w = BaseGridEditor(
self.master,
diff --git a/mitmproxy/tools/console/grideditor/col_subgrid.py b/mitmproxy/tools/console/grideditor/col_subgrid.py
index 95995cd2..c9cbf66d 100644
--- a/mitmproxy/tools/console/grideditor/col_subgrid.py
+++ b/mitmproxy/tools/console/grideditor/col_subgrid.py
@@ -27,15 +27,8 @@ class Column(base.Column):
)
return
elif key == "m_select":
- editor.master.view_grideditor(
- self.subeditor(
- editor.master,
- editor.walker.get_current_value(),
- editor.set_subeditor_value,
- editor.walker.focus,
- editor.walker.focus_col
- )
- )
+ self.subeditor.grideditor = editor
+ editor.master.switch_view("edit_focus_setcookie_attrs")
else:
return key
diff --git a/mitmproxy/tools/console/grideditor/editors.py b/mitmproxy/tools/console/grideditor/editors.py
index fbe48a1a..fffd782c 100644
--- a/mitmproxy/tools/console/grideditor/editors.py
+++ b/mitmproxy/tools/console/grideditor/editors.py
@@ -1,3 +1,4 @@
+import urwid
import typing
from mitmproxy import exceptions
@@ -100,12 +101,13 @@ class CookieEditor(base.FocusEditor):
flow.request.cookies = vals
-class CookieAttributeEditor(base.GridEditor):
+class CookieAttributeEditor(base.FocusEditor):
title = "Editing Set-Cookie attributes"
columns = [
col_text.Column("Name"),
col_text.Column("Value"),
]
+ grideditor = None # type: base.BaseGridEditor
def data_in(self, data):
return [(k, v or "") for k, v in data]
@@ -119,6 +121,20 @@ class CookieAttributeEditor(base.GridEditor):
ret.append(i)
return ret
+ def layout_pushed(self, prev):
+ if self.grideditor.master.view.focus.flow:
+ self._w = base.BaseGridEditor(
+ self.grideditor.master,
+ self.title,
+ self.columns,
+ self.grideditor.walker.get_current_value(),
+ self.grideditor.set_subeditor_value,
+ self.grideditor.walker.focus,
+ self.grideditor.walker.focus_col
+ )
+ else:
+ self._w = urwid.Pile([])
+
class SetCookieEditor(base.FocusEditor):
title = "Edit SetCookie Header"
diff --git a/mitmproxy/tools/console/window.py b/mitmproxy/tools/console/window.py
index c7bce7d3..f2b6d3f4 100644
--- a/mitmproxy/tools/console/window.py
+++ b/mitmproxy/tools/console/window.py
@@ -63,6 +63,7 @@ class WindowStack:
edit_focus_query = grideditor.QueryEditor(master),
edit_focus_cookies = grideditor.CookieEditor(master),
edit_focus_setcookies = grideditor.SetCookieEditor(master),
+ edit_focus_setcookie_attrs = grideditor.CookieAttributeEditor(master),
edit_focus_form = grideditor.RequestFormEditor(master),
edit_focus_path = grideditor.PathEditor(master),
edit_focus_request_headers = grideditor.RequestHeaderEditor(master),