aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mitmproxy/tools/web/app.py2
-rw-r--r--mitmproxy/tools/web/static_viewer.py2
-rw-r--r--test/mitmproxy/tools/web/test_app.py10
-rw-r--r--test/mitmproxy/tools/web/test_static_viewer.py4
-rw-r--r--web/src/js/__tests__/components/ContentView/__snapshots__/ContentViewOptionsSpec.js.snap2
-rw-r--r--web/src/js/__tests__/components/ContentView/__snapshots__/ContentViewSpec.js.snap2
-rw-r--r--web/src/js/__tests__/components/ContentView/__snapshots__/DownloadContentButtonSpec.js.snap2
-rw-r--r--web/src/js/__tests__/components/ContentView/__snapshots__/MetaViewsSpec.js.snap2
-rw-r--r--web/src/js/__tests__/components/FlowView/__snapshots__/MessagesSpec.js.snap4
-rw-r--r--web/src/js/__tests__/components/__snapshots__/ContentViewSpec.js.snap2
-rw-r--r--web/src/js/__tests__/flow/utilsSpec.js6
-rw-r--r--web/src/js/backends/static.js2
-rw-r--r--web/src/js/backends/websocket.js2
-rw-r--r--web/src/js/ducks/ui/keyboard.js2
-rw-r--r--web/src/js/flow/utils.js2
-rw-r--r--web/src/js/urlState.js6
16 files changed, 28 insertions, 24 deletions
diff --git a/mitmproxy/tools/web/app.py b/mitmproxy/tools/web/app.py
index 9c6f7583..77695515 100644
--- a/mitmproxy/tools/web/app.py
+++ b/mitmproxy/tools/web/app.py
@@ -478,7 +478,7 @@ class Application(tornado.web.Application):
(r"/flows/(?P<flow_id>[0-9a-f\-]+)/duplicate", DuplicateFlow),
(r"/flows/(?P<flow_id>[0-9a-f\-]+)/replay", ReplayFlow),
(r"/flows/(?P<flow_id>[0-9a-f\-]+)/revert", RevertFlow),
- (r"/flows/(?P<flow_id>[0-9a-f\-]+)/(?P<message>request|response)/_content", FlowContent),
+ (r"/flows/(?P<flow_id>[0-9a-f\-]+)/(?P<message>request|response)/content.data", FlowContent),
(
r"/flows/(?P<flow_id>[0-9a-f\-]+)/(?P<message>request|response)/content/(?P<content_view>[0-9a-zA-Z\-\_]+)(?:\.json)?",
FlowContentView),
diff --git a/mitmproxy/tools/web/static_viewer.py b/mitmproxy/tools/web/static_viewer.py
index c4f8b139..416c2539 100644
--- a/mitmproxy/tools/web/static_viewer.py
+++ b/mitmproxy/tools/web/static_viewer.py
@@ -48,7 +48,7 @@ def save_flows_content(path: pathlib.Path, flows: typing.Iterable[flow.Flow]) ->
message_path = path / "flows" / f.id / m
os.makedirs(str(message_path / "content"), exist_ok=True)
- with open(str(message_path / '_content'), 'wb') as content_file:
+ with open(str(message_path / 'content.data'), 'wb') as content_file:
# don't use raw_content here as this is served with a default content type
if message:
content_file.write(message.content)
diff --git a/test/mitmproxy/tools/web/test_app.py b/test/mitmproxy/tools/web/test_app.py
index aaf949a8..6b88823c 100644
--- a/test/mitmproxy/tools/web/test_app.py
+++ b/test/mitmproxy/tools/web/test_app.py
@@ -186,7 +186,7 @@ class TestApp(tornado.testing.AsyncHTTPTestCase):
f.response.headers["Content-Encoding"] = "ran\x00dom"
f.response.headers["Content-Disposition"] = 'inline; filename="filename.jpg"'
- r = self.fetch("/flows/42/response/_content")
+ r = self.fetch("/flows/42/response/content.data")
assert r.body == b"message"
assert r.headers["Content-Encoding"] == "random"
assert r.headers["Content-Disposition"] == 'attachment; filename="filename.jpg"'
@@ -194,17 +194,17 @@ class TestApp(tornado.testing.AsyncHTTPTestCase):
del f.response.headers["Content-Disposition"]
f.request.path = "/foo/bar.jpg"
assert self.fetch(
- "/flows/42/response/_content"
+ "/flows/42/response/content.data"
).headers["Content-Disposition"] == 'attachment; filename=bar.jpg'
f.response.content = b""
- assert self.fetch("/flows/42/response/_content").code == 400
+ assert self.fetch("/flows/42/response/content.data").code == 400
f.revert()
def test_update_flow_content(self):
assert self.fetch(
- "/flows/42/request/_content",
+ "/flows/42/request/content.data",
method="POST",
body="new"
).code == 200
@@ -222,7 +222,7 @@ class TestApp(tornado.testing.AsyncHTTPTestCase):
b'--somefancyboundary--\r\n'
)
assert self.fetch(
- "/flows/42/request/_content",
+ "/flows/42/request/content.data",
method="POST",
headers={"Content-Type": 'multipart/form-data; boundary="somefancyboundary"'},
body=body
diff --git a/test/mitmproxy/tools/web/test_static_viewer.py b/test/mitmproxy/tools/web/test_static_viewer.py
index 138c3add..5b7ddfff 100644
--- a/test/mitmproxy/tools/web/test_static_viewer.py
+++ b/test/mitmproxy/tools/web/test_static_viewer.py
@@ -43,9 +43,9 @@ def test_save_flows_content(ctx, tmpdir):
for p in flows_path.listdir():
assert p.join('request').check(dir=1)
assert p.join('response').check(dir=1)
- assert p.join('request/_content').check(file=1)
+ assert p.join('request/content.data').check(file=1)
assert p.join('request/content').check(dir=1)
- assert p.join('response/_content').check(file=1)
+ assert p.join('response/content.data').check(file=1)
assert p.join('response/content').check(dir=1)
assert p.join('request/content/Auto.json').check(file=1)
assert p.join('response/content/Auto.json').check(file=1)
diff --git a/web/src/js/__tests__/components/ContentView/__snapshots__/ContentViewOptionsSpec.js.snap b/web/src/js/__tests__/components/ContentView/__snapshots__/ContentViewOptionsSpec.js.snap
index 01fab0a7..57368de2 100644
--- a/web/src/js/__tests__/components/ContentView/__snapshots__/ContentViewOptionsSpec.js.snap
+++ b/web/src/js/__tests__/components/ContentView/__snapshots__/ContentViewOptionsSpec.js.snap
@@ -13,7 +13,7 @@ exports[`ContentViewOptions Component should render correctly 1`] = `
 
<a
className="btn btn-default btn-xs"
- href="/flows/d91165be-ca1f-4612-88a9-c0f8696f3e29/response/_content"
+ href="./flows/d91165be-ca1f-4612-88a9-c0f8696f3e29/response/content.data"
title="Download the content of the flow."
>
<i
diff --git a/web/src/js/__tests__/components/ContentView/__snapshots__/ContentViewSpec.js.snap b/web/src/js/__tests__/components/ContentView/__snapshots__/ContentViewSpec.js.snap
index 659eb6c3..ff651081 100644
--- a/web/src/js/__tests__/components/ContentView/__snapshots__/ContentViewSpec.js.snap
+++ b/web/src/js/__tests__/components/ContentView/__snapshots__/ContentViewSpec.js.snap
@@ -17,7 +17,7 @@ exports[`ViewImage Component should render correctly 1`] = `
<img
alt="preview"
className="img-thumbnail"
- src="/flows/d91165be-ca1f-4612-88a9-c0f8696f3e29/response/_content"
+ src="./flows/d91165be-ca1f-4612-88a9-c0f8696f3e29/response/content.data"
/>
</div>
`;
diff --git a/web/src/js/__tests__/components/ContentView/__snapshots__/DownloadContentButtonSpec.js.snap b/web/src/js/__tests__/components/ContentView/__snapshots__/DownloadContentButtonSpec.js.snap
index 4c578a0c..76f21ce1 100644
--- a/web/src/js/__tests__/components/ContentView/__snapshots__/DownloadContentButtonSpec.js.snap
+++ b/web/src/js/__tests__/components/ContentView/__snapshots__/DownloadContentButtonSpec.js.snap
@@ -3,7 +3,7 @@
exports[`DownloadContentButton Component should render correctly 1`] = `
<a
className="btn btn-default btn-xs"
- href="/flows/d91165be-ca1f-4612-88a9-c0f8696f3e29/response/_content"
+ href="./flows/d91165be-ca1f-4612-88a9-c0f8696f3e29/response/content.data"
title="Download the content of the flow."
>
<i
diff --git a/web/src/js/__tests__/components/ContentView/__snapshots__/MetaViewsSpec.js.snap b/web/src/js/__tests__/components/ContentView/__snapshots__/MetaViewsSpec.js.snap
index 1fdd5575..ad722abf 100644
--- a/web/src/js/__tests__/components/ContentView/__snapshots__/MetaViewsSpec.js.snap
+++ b/web/src/js/__tests__/components/ContentView/__snapshots__/MetaViewsSpec.js.snap
@@ -54,7 +54,7 @@ exports[`ContentTooLarge Components should render correctly 1`] = `
 
<a
className="btn btn-default btn-xs"
- href="/flows/d91165be-ca1f-4612-88a9-c0f8696f3e29/response/_content"
+ href="./flows/d91165be-ca1f-4612-88a9-c0f8696f3e29/response/content.data"
title="Download the content of the flow."
>
<i
diff --git a/web/src/js/__tests__/components/FlowView/__snapshots__/MessagesSpec.js.snap b/web/src/js/__tests__/components/FlowView/__snapshots__/MessagesSpec.js.snap
index c55d0750..cc021f13 100644
--- a/web/src/js/__tests__/components/FlowView/__snapshots__/MessagesSpec.js.snap
+++ b/web/src/js/__tests__/components/FlowView/__snapshots__/MessagesSpec.js.snap
@@ -265,7 +265,7 @@ exports[`Request Component should render correctly 1`] = `
 
<a
className="btn btn-default btn-xs"
- href="/flows/d91165be-ca1f-4612-88a9-c0f8696f3e29/request/_content"
+ href="./flows/d91165be-ca1f-4612-88a9-c0f8696f3e29/request/content.data"
title="Download the content of the flow."
>
<i
@@ -528,7 +528,7 @@ exports[`Response Component should render correctly 1`] = `
 
<a
className="btn btn-default btn-xs"
- href="/flows/d91165be-ca1f-4612-88a9-c0f8696f3e29/response/_content"
+ href="./flows/d91165be-ca1f-4612-88a9-c0f8696f3e29/response/content.data"
title="Download the content of the flow."
>
<i
diff --git a/web/src/js/__tests__/components/__snapshots__/ContentViewSpec.js.snap b/web/src/js/__tests__/components/__snapshots__/ContentViewSpec.js.snap
index fcbab629..1ee71d52 100644
--- a/web/src/js/__tests__/components/__snapshots__/ContentViewSpec.js.snap
+++ b/web/src/js/__tests__/components/__snapshots__/ContentViewSpec.js.snap
@@ -49,7 +49,7 @@ exports[`ContentView Component should render correctly with content too large 1`
 
<a
className="btn btn-default btn-xs"
- href="/flows/d91165be-ca1f-4612-88a9-c0f8696f3e29/response/_content"
+ href="./flows/d91165be-ca1f-4612-88a9-c0f8696f3e29/response/content.data"
title="Download the content of the flow."
>
<i
diff --git a/web/src/js/__tests__/flow/utilsSpec.js b/web/src/js/__tests__/flow/utilsSpec.js
index 24e65651..dc84001e 100644
--- a/web/src/js/__tests__/flow/utilsSpec.js
+++ b/web/src/js/__tests__/flow/utilsSpec.js
@@ -25,15 +25,15 @@ describe('MessageUtils', () => {
let msg = "foo", view = "bar",
flow = { request: msg, id: 1}
expect(utils.MessageUtils.getContentURL(flow, msg, view)).toEqual(
- "/flows/1/request/content/bar.json"
+ "./flows/1/request/content/bar.json"
)
expect(utils.MessageUtils.getContentURL(flow, msg, '')).toEqual(
- "/flows/1/request/_content"
+ "./flows/1/request/content.data"
)
// response
flow = {response: msg, id: 2}
expect(utils.MessageUtils.getContentURL(flow, msg, view)).toEqual(
- "/flows/2/response/content/bar.json"
+ "./flows/2/response/content/bar.json"
)
})
})
diff --git a/web/src/js/backends/static.js b/web/src/js/backends/static.js
index 7e87a5ed..d2c8d3fe 100644
--- a/web/src/js/backends/static.js
+++ b/web/src/js/backends/static.js
@@ -16,7 +16,7 @@ export default class StaticBackend {
}
fetchData(resource) {
- fetchApi(`/${resource}`)
+ fetchApi(`./${resource}`)
.then(res => res.json())
.then(json => {
this.receive(resource, json)
diff --git a/web/src/js/backends/websocket.js b/web/src/js/backends/websocket.js
index d7e13bb2..08136617 100644
--- a/web/src/js/backends/websocket.js
+++ b/web/src/js/backends/websocket.js
@@ -34,7 +34,7 @@ export default class WebsocketBackend {
fetchData(resource) {
let queue = []
this.activeFetches[resource] = queue
- fetchApi(`/${resource}`)
+ fetchApi(`./${resource}`)
.then(res => res.json())
.then(json => {
// Make sure that we are not superseded yet by the server sending a RESET.
diff --git a/web/src/js/ducks/ui/keyboard.js b/web/src/js/ducks/ui/keyboard.js
index e3f8c33c..ed4dbba5 100644
--- a/web/src/js/ducks/ui/keyboard.js
+++ b/web/src/js/ducks/ui/keyboard.js
@@ -5,7 +5,7 @@ import * as modalActions from "./modal"
export function onKeyDown(e) {
- console.debug("onKeyDown", e)
+ //console.debug("onKeyDown", e)
if (e.ctrlKey) {
return () => {
}
diff --git a/web/src/js/flow/utils.js b/web/src/js/flow/utils.js
index 9915a639..d38f4a86 100644
--- a/web/src/js/flow/utils.js
+++ b/web/src/js/flow/utils.js
@@ -49,7 +49,7 @@ export var MessageUtils = {
} else if (message === flow.response) {
message = "response";
}
- return `/flows/${flow.id}/${message}/` + (view ? `content/${view}.json` : '_content');
+ return `./flows/${flow.id}/${message}/` + (view ? `content/${view}.json` : 'content.data');
}
};
diff --git a/web/src/js/urlState.js b/web/src/js/urlState.js
index 7802bdb8..d9c50c03 100644
--- a/web/src/js/urlState.js
+++ b/web/src/js/urlState.js
@@ -72,8 +72,12 @@ export function updateUrlFromStore(store) {
if (queryStr) {
url += "?" + queryStr
}
+ let pathname = window.location.pathname
+ if(pathname === "blank") {
+ pathname = "/" // this happens in tests...
+ }
if (window.location.hash.substr(1) !== url) {
- history.replaceState(undefined, "", `/#${url}`)
+ history.replaceState(undefined, "", `${pathname}#${url}`)
}
}