From b4c4f9607ba899371740d671ce9dcbf63c570a78 Mon Sep 17 00:00:00 2001 From: "kirill.turutin" Date: Wed, 26 Jul 2023 15:16:01 +0600 Subject: [PATCH 1/4] Send pageTimings on load; Stop request flow for both page_info and page_complete --- .github/python-version.txt | 2 +- mitmproxy/addons/browserup/browser_data_addon.py | 2 +- scripts/browsertime/browser-data.js | 8 +------- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/.github/python-version.txt b/.github/python-version.txt index 2c0733315e..c8cfe39591 100644 --- a/.github/python-version.txt +++ b/.github/python-version.txt @@ -1 +1 @@ -3.11 +3.10 diff --git a/mitmproxy/addons/browserup/browser_data_addon.py b/mitmproxy/addons/browserup/browser_data_addon.py index f47f4c6296..f141d4d586 100644 --- a/mitmproxy/addons/browserup/browser_data_addon.py +++ b/mitmproxy/addons/browserup/browser_data_addon.py @@ -37,7 +37,7 @@ def request(self, f: mitmproxy.http.HTTPFlow): self.HarCaptureAddon.add_page_info_to_har(page_timings) if action == 'page_complete': self.HarCaptureAddon.end_page() - f.kill() + f.kill() def response(self, f: mitmproxy.http.HTTPFlow): if f.response is None or f.response.status_code != 200 or f.request.method not in ['GET', 'POST', 'PUT']: diff --git a/scripts/browsertime/browser-data.js b/scripts/browsertime/browser-data.js index 7e6840c2b6..aff84cf129 100644 --- a/scripts/browsertime/browser-data.js +++ b/scripts/browsertime/browser-data.js @@ -225,12 +225,6 @@ function submitPageInfo(page_timings, action = 'page_info') { function postPageTimings(){ submitPageInfo(pageTimings(), 'page_info'); } -function delayForPaintAndPostPageTimings(){ - requestAnimationFrame(() => { - requestIdleCallback(postPageTimings, { timeout: 500 }); - }); -} - function handleClose(){ if (window.closeIsHandled == true) { return true }; window.closeIsHandled = true; @@ -238,7 +232,7 @@ function handleClose(){ } observeAndSaveFirstInputDelay(); -window.addEventListener('load', delayForPaintAndPostPageTimings); +window.addEventListener('load', postPageTimings); window.addEventListener('beforeunload', handleClose); window.addEventListener('unload', handleClose); From 11dac1bbd941686edb58b73a8938ccad98cff747 Mon Sep 17 00:00:00 2001 From: "kirill.turutin" Date: Fri, 4 Aug 2023 14:18:02 +0600 Subject: [PATCH 2/4] tmp --- mitmproxy/addons/blocklist.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mitmproxy/addons/blocklist.py b/mitmproxy/addons/blocklist.py index 8447f3dacd..e5946dd06c 100644 --- a/mitmproxy/addons/blocklist.py +++ b/mitmproxy/addons/blocklist.py @@ -80,7 +80,7 @@ def request(self, flow: http.HTTPFlow) -> None: flow.kill() else: logging.error( - "Cannot kill flow, not killable: %s", flow.request.pretty_url + "Cannot kill flow, not killable: %s, error: %s", flow.request.pretty_url, flow.error ) else: flow.response = http.Response.make( From a3ccafb170884aefa146f813f1d44bef8e807a54 Mon Sep 17 00:00:00 2001 From: "kirill.turutin" Date: Fri, 4 Aug 2023 15:13:19 +0600 Subject: [PATCH 3/4] tmp --- mitmproxy/addons/blocklist.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mitmproxy/addons/blocklist.py b/mitmproxy/addons/blocklist.py index e5946dd06c..ba9254dd7b 100644 --- a/mitmproxy/addons/blocklist.py +++ b/mitmproxy/addons/blocklist.py @@ -75,12 +75,12 @@ def request(self, flow: http.HTTPFlow) -> None: if spec.matches(flow): flow.metadata["blocklisted"] = True if spec.status_code == NO_RESPONSE: - flow.intercept() + #flow.intercept() if flow.killable: flow.kill() else: logging.error( - "Cannot kill flow, not killable: %s, error: %s", flow.request.pretty_url, flow.error + "Cannot kill flow, not killable: %s", flow.request.pretty_url ) else: flow.response = http.Response.make( From e6ae0ae279d556a2426e289194b608239a893cc4 Mon Sep 17 00:00:00 2001 From: "kirill.turutin" Date: Mon, 7 Aug 2023 10:55:56 +0600 Subject: [PATCH 4/4] tmp revert delayed sending page timings --- scripts/browsertime/browser-data.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/browsertime/browser-data.js b/scripts/browsertime/browser-data.js index aff84cf129..7e6840c2b6 100644 --- a/scripts/browsertime/browser-data.js +++ b/scripts/browsertime/browser-data.js @@ -225,6 +225,12 @@ function submitPageInfo(page_timings, action = 'page_info') { function postPageTimings(){ submitPageInfo(pageTimings(), 'page_info'); } +function delayForPaintAndPostPageTimings(){ + requestAnimationFrame(() => { + requestIdleCallback(postPageTimings, { timeout: 500 }); + }); +} + function handleClose(){ if (window.closeIsHandled == true) { return true }; window.closeIsHandled = true; @@ -232,7 +238,7 @@ function handleClose(){ } observeAndSaveFirstInputDelay(); -window.addEventListener('load', postPageTimings); +window.addEventListener('load', delayForPaintAndPostPageTimings); window.addEventListener('beforeunload', handleClose); window.addEventListener('unload', handleClose);