fix(har timing): record connect timing for proxied connections - #32855

Merged
Simon Knott (Skn0tt) merged 4 commits into
microsoft:mainfrom
Skn0tt:http-proxy-har-timing-connect
Oct 7, 2024
Merged

fix(har timing): record connect timing for proxied connections#32855
Simon Knott (Skn0tt) merged 4 commits into
microsoft:mainfrom
Skn0tt:http-proxy-har-timing-connect

Conversation

@Skn0tt

@Skn0ttSimon Knott (Skn0tt) commented Sep 27, 2024

Copy link
Copy Markdown
Contributor

Fixes a bug discovered in #32647. When using http proxy, the connect event isn't emitted so we don't populate tcpConnectionAt. The updated version of https-proxy-agent emits a proxyConnect as a replacement, so this PR updates and listens to that event.
For socks proxies, the on("socket") event is emitted once the SOCKS connection is established, which is the equivalent of having a TCP connection available.

@Skn0ttSimon Knott (Skn0tt) changed the title fix(har timing): record 'connect' timing for http proxyfix(har timing): record 'connect' timing for proxied connectionsSep 27, 2024
@Skn0ttSimon Knott (Skn0tt) changed the title fix(har timing): record 'connect' timing for proxied connectionsfix(har timing): record connect timing for proxied connectionsSep 27, 2024
@github-actions

This comment has been minimized.

Comment threadpackages/playwright-core/src/server/fetch.ts Outdated
Co-authored-by: Max Schmitt <max@schmitt.mx>
Signed-off-by: Simon Knott <info@simonknott.de>
@github-actions

This comment has been minimized.

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 1"

1 flaky⚠️ [chromium] › components/splitView.spec.tsx:35:5 › should render sidebar first

36416 passed, 757 skipped
✔️✔️✔️

Merge workflow run.

@dgozman

Copy link
Copy Markdown
Collaborator

Do we have to upgrade the deps? I am always wary of introducing regressions.

@Skn0tt

Simon Knott (Skn0tt) commented Sep 27, 2024

Copy link
Copy Markdown
ContributorAuthor

For SOCKS proxy we don't, but for HTTP proxy yes. The proxyConnect event was only added in 6.1.0 and without it we have no way of knowing when the proxy started the connection.

If we don't want to update, another alternative would be leave things as is for the HTTP proxy and set connect: -1.

@Skn0tt

Copy link
Copy Markdown
ContributorAuthor

Could you give this another look Dmitry Gozman (@dgozman)?

@Skn0tt
Simon Knott (Skn0tt) merged commit de4a4d1 into microsoft:mainOct 7, 2024
Simon Knott (Skn0tt) added a commit that referenced this pull request Oct 8, 2024
…ons" (#32989)
Reverts #32855. This broke two tests on main, and we
don't yet know how to fix it other than downgrading.
Simon Knott (Skn0tt) added a commit that referenced this pull request Oct 8, 2024
…ns" (#32855) (#33003)
This reapplies what we reverted in
#32989.
Max and me debugged this, and found that the test failures come from
SOCKS proxy now preferring IPv6 over IPv4. We've updated the tests and
made sure that this doesn't mask any breaking change.
I'm enabling CQ1 to make sure we don't oversee any other CI failures.
Dmitry Gozman (dgozman) added a commit to dgozman/playwright that referenced this pull request Jan 29, 2025
Dmitry Gozman (dgozman) added a commit to dgozman/playwright that referenced this pull request Jan 29, 2025
Dmitry Gozman (dgozman) added a commit that referenced this pull request Jan 29, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Skn0tt@dgozman@mxschmitt
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(har timing): record connect timing for proxied connections - #32855

Merged
Simon Knott (Skn0tt) merged 4 commits into
microsoft:mainfrom
Skn0tt:http-proxy-har-timing-connect
Oct 7, 2024
Merged

fix(har timing): record connect timing for proxied connections#32855
Simon Knott (Skn0tt) merged 4 commits into
microsoft:mainfrom
Skn0tt:http-proxy-har-timing-connect

Conversation

@Skn0tt

@Skn0ttSimon Knott (Skn0tt) commented Sep 27, 2024

Copy link
Copy Markdown
Contributor

Fixes a bug discovered in #32647. When using http proxy, the connect event isn't emitted so we don't populate tcpConnectionAt. The updated version of https-proxy-agent emits a proxyConnect as a replacement, so this PR updates and listens to that event.
For socks proxies, the on("socket") event is emitted once the SOCKS connection is established, which is the equivalent of having a TCP connection available.

@Skn0ttSimon Knott (Skn0tt) changed the title fix(har timing): record 'connect' timing for http proxyfix(har timing): record 'connect' timing for proxied connectionsSep 27, 2024
@Skn0ttSimon Knott (Skn0tt) changed the title fix(har timing): record 'connect' timing for proxied connectionsfix(har timing): record connect timing for proxied connectionsSep 27, 2024
@github-actions

This comment has been minimized.

Comment threadpackages/playwright-core/src/server/fetch.ts Outdated
Co-authored-by: Max Schmitt <max@schmitt.mx>
Signed-off-by: Simon Knott <info@simonknott.de>
@github-actions

This comment has been minimized.

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 1"

1 flaky⚠️ [chromium] › components/splitView.spec.tsx:35:5 › should render sidebar first

36416 passed, 757 skipped
✔️✔️✔️

Merge workflow run.

@dgozman

Copy link
Copy Markdown
Collaborator

Do we have to upgrade the deps? I am always wary of introducing regressions.

@Skn0tt

Simon Knott (Skn0tt) commented Sep 27, 2024

Copy link
Copy Markdown
ContributorAuthor

For SOCKS proxy we don't, but for HTTP proxy yes. The proxyConnect event was only added in 6.1.0 and without it we have no way of knowing when the proxy started the connection.

If we don't want to update, another alternative would be leave things as is for the HTTP proxy and set connect: -1.

@Skn0tt

Copy link
Copy Markdown
ContributorAuthor

Could you give this another look Dmitry Gozman (@dgozman)?

@Skn0tt
Simon Knott (Skn0tt) merged commit de4a4d1 into microsoft:mainOct 7, 2024
Simon Knott (Skn0tt) added a commit that referenced this pull request Oct 8, 2024
…ons" (#32989)
Reverts #32855. This broke two tests on main, and we
don't yet know how to fix it other than downgrading.
Simon Knott (Skn0tt) added a commit that referenced this pull request Oct 8, 2024
…ns" (#32855) (#33003)
This reapplies what we reverted in
#32989.
Max and me debugged this, and found that the test failures come from
SOCKS proxy now preferring IPv6 over IPv4. We've updated the tests and
made sure that this doesn't mask any breaking change.
I'm enabling CQ1 to make sure we don't oversee any other CI failures.
Dmitry Gozman (dgozman) added a commit to dgozman/playwright that referenced this pull request Jan 29, 2025
Dmitry Gozman (dgozman) added a commit to dgozman/playwright that referenced this pull request Jan 29, 2025
Dmitry Gozman (dgozman) added a commit that referenced this pull request Jan 29, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Skn0tt@dgozman@mxschmitt
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(har timing): record connect timing for proxied connections - #32855

Merged
Simon Knott (Skn0tt) merged 4 commits into
microsoft:mainfrom
Skn0tt:http-proxy-har-timing-connect
Oct 7, 2024
Merged

fix(har timing): record connect timing for proxied connections#32855
Simon Knott (Skn0tt) merged 4 commits into
microsoft:mainfrom
Skn0tt:http-proxy-har-timing-connect

Conversation

@Skn0tt

@Skn0ttSimon Knott (Skn0tt) commented Sep 27, 2024

Copy link
Copy Markdown
Contributor

Fixes a bug discovered in #32647. When using http proxy, the connect event isn't emitted so we don't populate tcpConnectionAt. The updated version of https-proxy-agent emits a proxyConnect as a replacement, so this PR updates and listens to that event.
For socks proxies, the on("socket") event is emitted once the SOCKS connection is established, which is the equivalent of having a TCP connection available.

@Skn0ttSimon Knott (Skn0tt) changed the title fix(har timing): record 'connect' timing for http proxyfix(har timing): record 'connect' timing for proxied connectionsSep 27, 2024
@Skn0ttSimon Knott (Skn0tt) changed the title fix(har timing): record 'connect' timing for proxied connectionsfix(har timing): record connect timing for proxied connectionsSep 27, 2024
@github-actions

This comment has been minimized.

Comment threadpackages/playwright-core/src/server/fetch.ts Outdated
Co-authored-by: Max Schmitt <max@schmitt.mx>
Signed-off-by: Simon Knott <info@simonknott.de>
@github-actions

This comment has been minimized.

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 1"

1 flaky⚠️ [chromium] › components/splitView.spec.tsx:35:5 › should render sidebar first

36416 passed, 757 skipped
✔️✔️✔️

Merge workflow run.

@dgozman

Copy link
Copy Markdown
Collaborator

Do we have to upgrade the deps? I am always wary of introducing regressions.

@Skn0tt

Simon Knott (Skn0tt) commented Sep 27, 2024

Copy link
Copy Markdown
ContributorAuthor

For SOCKS proxy we don't, but for HTTP proxy yes. The proxyConnect event was only added in 6.1.0 and without it we have no way of knowing when the proxy started the connection.

If we don't want to update, another alternative would be leave things as is for the HTTP proxy and set connect: -1.

@Skn0tt

Copy link
Copy Markdown
ContributorAuthor

Could you give this another look Dmitry Gozman (@dgozman)?

@Skn0tt
Simon Knott (Skn0tt) merged commit de4a4d1 into microsoft:mainOct 7, 2024
Simon Knott (Skn0tt) added a commit that referenced this pull request Oct 8, 2024
…ons" (#32989)
Reverts #32855. This broke two tests on main, and we
don't yet know how to fix it other than downgrading.
Simon Knott (Skn0tt) added a commit that referenced this pull request Oct 8, 2024
…ns" (#32855) (#33003)
This reapplies what we reverted in
#32989.
Max and me debugged this, and found that the test failures come from
SOCKS proxy now preferring IPv6 over IPv4. We've updated the tests and
made sure that this doesn't mask any breaking change.
I'm enabling CQ1 to make sure we don't oversee any other CI failures.
Dmitry Gozman (dgozman) added a commit to dgozman/playwright that referenced this pull request Jan 29, 2025
Dmitry Gozman (dgozman) added a commit to dgozman/playwright that referenced this pull request Jan 29, 2025
Dmitry Gozman (dgozman) added a commit that referenced this pull request Jan 29, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Skn0tt@dgozman@mxschmitt
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(har timing): record connect timing for proxied connections - #32855

Merged
Simon Knott (Skn0tt) merged 4 commits into
microsoft:mainfrom
Skn0tt:http-proxy-har-timing-connect
Oct 7, 2024
Merged

fix(har timing): record connect timing for proxied connections#32855
Simon Knott (Skn0tt) merged 4 commits into
microsoft:mainfrom
Skn0tt:http-proxy-har-timing-connect

Conversation

@Skn0tt

@Skn0ttSimon Knott (Skn0tt) commented Sep 27, 2024

Copy link
Copy Markdown
Contributor

Fixes a bug discovered in #32647. When using http proxy, the connect event isn't emitted so we don't populate tcpConnectionAt. The updated version of https-proxy-agent emits a proxyConnect as a replacement, so this PR updates and listens to that event.
For socks proxies, the on("socket") event is emitted once the SOCKS connection is established, which is the equivalent of having a TCP connection available.

@Skn0ttSimon Knott (Skn0tt) changed the title fix(har timing): record 'connect' timing for http proxyfix(har timing): record 'connect' timing for proxied connectionsSep 27, 2024
@Skn0ttSimon Knott (Skn0tt) changed the title fix(har timing): record 'connect' timing for proxied connectionsfix(har timing): record connect timing for proxied connectionsSep 27, 2024
@github-actions

This comment has been minimized.

Comment threadpackages/playwright-core/src/server/fetch.ts Outdated
Co-authored-by: Max Schmitt <max@schmitt.mx>
Signed-off-by: Simon Knott <info@simonknott.de>
@github-actions

This comment has been minimized.

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 1"

1 flaky⚠️ [chromium] › components/splitView.spec.tsx:35:5 › should render sidebar first

36416 passed, 757 skipped
✔️✔️✔️

Merge workflow run.

@dgozman

Copy link
Copy Markdown
Collaborator

Do we have to upgrade the deps? I am always wary of introducing regressions.

@Skn0tt

Simon Knott (Skn0tt) commented Sep 27, 2024

Copy link
Copy Markdown
ContributorAuthor

For SOCKS proxy we don't, but for HTTP proxy yes. The proxyConnect event was only added in 6.1.0 and without it we have no way of knowing when the proxy started the connection.

If we don't want to update, another alternative would be leave things as is for the HTTP proxy and set connect: -1.

@Skn0tt

Copy link
Copy Markdown
ContributorAuthor

Could you give this another look Dmitry Gozman (@dgozman)?

@Skn0tt
Simon Knott (Skn0tt) merged commit de4a4d1 into microsoft:mainOct 7, 2024
Simon Knott (Skn0tt) added a commit that referenced this pull request Oct 8, 2024
…ons" (#32989)
Reverts #32855. This broke two tests on main, and we
don't yet know how to fix it other than downgrading.
Simon Knott (Skn0tt) added a commit that referenced this pull request Oct 8, 2024
…ns" (#32855) (#33003)
This reapplies what we reverted in
#32989.
Max and me debugged this, and found that the test failures come from
SOCKS proxy now preferring IPv6 over IPv4. We've updated the tests and
made sure that this doesn't mask any breaking change.
I'm enabling CQ1 to make sure we don't oversee any other CI failures.
Dmitry Gozman (dgozman) added a commit to dgozman/playwright that referenced this pull request Jan 29, 2025
Dmitry Gozman (dgozman) added a commit to dgozman/playwright that referenced this pull request Jan 29, 2025
Dmitry Gozman (dgozman) added a commit that referenced this pull request Jan 29, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Skn0tt@dgozman@mxschmitt
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(har timing): record connect timing for proxied connections - #32855

Merged
Simon Knott (Skn0tt) merged 4 commits into
microsoft:mainfrom
Skn0tt:http-proxy-har-timing-connect
Oct 7, 2024
Merged

fix(har timing): record connect timing for proxied connections#32855
Simon Knott (Skn0tt) merged 4 commits into
microsoft:mainfrom
Skn0tt:http-proxy-har-timing-connect

Conversation

@Skn0tt

@Skn0ttSimon Knott (Skn0tt) commented Sep 27, 2024

Copy link
Copy Markdown
Contributor

Fixes a bug discovered in #32647. When using http proxy, the connect event isn't emitted so we don't populate tcpConnectionAt. The updated version of https-proxy-agent emits a proxyConnect as a replacement, so this PR updates and listens to that event.
For socks proxies, the on("socket") event is emitted once the SOCKS connection is established, which is the equivalent of having a TCP connection available.

@Skn0ttSimon Knott (Skn0tt) changed the title fix(har timing): record 'connect' timing for http proxyfix(har timing): record 'connect' timing for proxied connectionsSep 27, 2024
@Skn0ttSimon Knott (Skn0tt) changed the title fix(har timing): record 'connect' timing for proxied connectionsfix(har timing): record connect timing for proxied connectionsSep 27, 2024
@github-actions

This comment has been minimized.

Comment threadpackages/playwright-core/src/server/fetch.ts Outdated
Co-authored-by: Max Schmitt <max@schmitt.mx>
Signed-off-by: Simon Knott <info@simonknott.de>
@github-actions

This comment has been minimized.

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 1"

1 flaky⚠️ [chromium] › components/splitView.spec.tsx:35:5 › should render sidebar first

36416 passed, 757 skipped
✔️✔️✔️

Merge workflow run.

@dgozman

Copy link
Copy Markdown
Collaborator

Do we have to upgrade the deps? I am always wary of introducing regressions.

@Skn0tt

Simon Knott (Skn0tt) commented Sep 27, 2024

Copy link
Copy Markdown
ContributorAuthor

For SOCKS proxy we don't, but for HTTP proxy yes. The proxyConnect event was only added in 6.1.0 and without it we have no way of knowing when the proxy started the connection.

If we don't want to update, another alternative would be leave things as is for the HTTP proxy and set connect: -1.

@Skn0tt

Copy link
Copy Markdown
ContributorAuthor

Could you give this another look Dmitry Gozman (@dgozman)?

@Skn0tt
Simon Knott (Skn0tt) merged commit de4a4d1 into microsoft:mainOct 7, 2024
Simon Knott (Skn0tt) added a commit that referenced this pull request Oct 8, 2024
…ons" (#32989)
Reverts #32855. This broke two tests on main, and we
don't yet know how to fix it other than downgrading.
Simon Knott (Skn0tt) added a commit that referenced this pull request Oct 8, 2024
…ns" (#32855) (#33003)
This reapplies what we reverted in
#32989.
Max and me debugged this, and found that the test failures come from
SOCKS proxy now preferring IPv6 over IPv4. We've updated the tests and
made sure that this doesn't mask any breaking change.
I'm enabling CQ1 to make sure we don't oversee any other CI failures.
Dmitry Gozman (dgozman) added a commit to dgozman/playwright that referenced this pull request Jan 29, 2025
Dmitry Gozman (dgozman) added a commit to dgozman/playwright that referenced this pull request Jan 29, 2025
Dmitry Gozman (dgozman) added a commit that referenced this pull request Jan 29, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Skn0tt@dgozman@mxschmitt
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(har timing): record connect timing for proxied connections - #32855

Merged
Simon Knott (Skn0tt) merged 4 commits into
microsoft:mainfrom
Skn0tt:http-proxy-har-timing-connect
Oct 7, 2024
Merged

fix(har timing): record connect timing for proxied connections#32855
Simon Knott (Skn0tt) merged 4 commits into
microsoft:mainfrom
Skn0tt:http-proxy-har-timing-connect

Conversation

@Skn0tt

@Skn0ttSimon Knott (Skn0tt) commented Sep 27, 2024

Copy link
Copy Markdown
Contributor

Fixes a bug discovered in #32647. When using http proxy, the connect event isn't emitted so we don't populate tcpConnectionAt. The updated version of https-proxy-agent emits a proxyConnect as a replacement, so this PR updates and listens to that event.
For socks proxies, the on("socket") event is emitted once the SOCKS connection is established, which is the equivalent of having a TCP connection available.

@Skn0ttSimon Knott (Skn0tt) changed the title fix(har timing): record 'connect' timing for http proxyfix(har timing): record 'connect' timing for proxied connectionsSep 27, 2024
@Skn0ttSimon Knott (Skn0tt) changed the title fix(har timing): record 'connect' timing for proxied connectionsfix(har timing): record connect timing for proxied connectionsSep 27, 2024
@github-actions

This comment has been minimized.

Comment threadpackages/playwright-core/src/server/fetch.ts Outdated
Co-authored-by: Max Schmitt <max@schmitt.mx>
Signed-off-by: Simon Knott <info@simonknott.de>
@github-actions

This comment has been minimized.

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 1"

1 flaky⚠️ [chromium] › components/splitView.spec.tsx:35:5 › should render sidebar first

36416 passed, 757 skipped
✔️✔️✔️

Merge workflow run.

@dgozman

Copy link
Copy Markdown
Collaborator

Do we have to upgrade the deps? I am always wary of introducing regressions.

@Skn0tt

Simon Knott (Skn0tt) commented Sep 27, 2024

Copy link
Copy Markdown
ContributorAuthor

For SOCKS proxy we don't, but for HTTP proxy yes. The proxyConnect event was only added in 6.1.0 and without it we have no way of knowing when the proxy started the connection.

If we don't want to update, another alternative would be leave things as is for the HTTP proxy and set connect: -1.

@Skn0tt

Copy link
Copy Markdown
ContributorAuthor

Could you give this another look Dmitry Gozman (@dgozman)?

@Skn0tt
Simon Knott (Skn0tt) merged commit de4a4d1 into microsoft:mainOct 7, 2024
Simon Knott (Skn0tt) added a commit that referenced this pull request Oct 8, 2024
…ons" (#32989)
Reverts #32855. This broke two tests on main, and we
don't yet know how to fix it other than downgrading.
Simon Knott (Skn0tt) added a commit that referenced this pull request Oct 8, 2024
…ns" (#32855) (#33003)
This reapplies what we reverted in
#32989.
Max and me debugged this, and found that the test failures come from
SOCKS proxy now preferring IPv6 over IPv4. We've updated the tests and
made sure that this doesn't mask any breaking change.
I'm enabling CQ1 to make sure we don't oversee any other CI failures.
Dmitry Gozman (dgozman) added a commit to dgozman/playwright that referenced this pull request Jan 29, 2025
Dmitry Gozman (dgozman) added a commit to dgozman/playwright that referenced this pull request Jan 29, 2025
Dmitry Gozman (dgozman) added a commit that referenced this pull request Jan 29, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Skn0tt@dgozman@mxschmitt
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(har timing): record connect timing for proxied connections - #32855

Merged
Simon Knott (Skn0tt) merged 4 commits into
microsoft:mainfrom
Skn0tt:http-proxy-har-timing-connect
Oct 7, 2024
Merged

fix(har timing): record connect timing for proxied connections#32855
Simon Knott (Skn0tt) merged 4 commits into
microsoft:mainfrom
Skn0tt:http-proxy-har-timing-connect

Conversation

@Skn0tt

@Skn0ttSimon Knott (Skn0tt) commented Sep 27, 2024

Copy link
Copy Markdown
Contributor

Fixes a bug discovered in #32647. When using http proxy, the connect event isn't emitted so we don't populate tcpConnectionAt. The updated version of https-proxy-agent emits a proxyConnect as a replacement, so this PR updates and listens to that event.
For socks proxies, the on("socket") event is emitted once the SOCKS connection is established, which is the equivalent of having a TCP connection available.

@Skn0ttSimon Knott (Skn0tt) changed the title fix(har timing): record 'connect' timing for http proxyfix(har timing): record 'connect' timing for proxied connectionsSep 27, 2024
@Skn0ttSimon Knott (Skn0tt) changed the title fix(har timing): record 'connect' timing for proxied connectionsfix(har timing): record connect timing for proxied connectionsSep 27, 2024
@github-actions

This comment has been minimized.

Comment threadpackages/playwright-core/src/server/fetch.ts Outdated
Co-authored-by: Max Schmitt <max@schmitt.mx>
Signed-off-by: Simon Knott <info@simonknott.de>
@github-actions

This comment has been minimized.

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 1"

1 flaky⚠️ [chromium] › components/splitView.spec.tsx:35:5 › should render sidebar first

36416 passed, 757 skipped
✔️✔️✔️

Merge workflow run.

@dgozman

Copy link
Copy Markdown
Collaborator

Do we have to upgrade the deps? I am always wary of introducing regressions.

@Skn0tt

Simon Knott (Skn0tt) commented Sep 27, 2024

Copy link
Copy Markdown
ContributorAuthor

For SOCKS proxy we don't, but for HTTP proxy yes. The proxyConnect event was only added in 6.1.0 and without it we have no way of knowing when the proxy started the connection.

If we don't want to update, another alternative would be leave things as is for the HTTP proxy and set connect: -1.

@Skn0tt

Copy link
Copy Markdown
ContributorAuthor

Could you give this another look Dmitry Gozman (@dgozman)?

@Skn0tt
Simon Knott (Skn0tt) merged commit de4a4d1 into microsoft:mainOct 7, 2024
Simon Knott (Skn0tt) added a commit that referenced this pull request Oct 8, 2024
…ons" (#32989)
Reverts #32855. This broke two tests on main, and we
don't yet know how to fix it other than downgrading.
Simon Knott (Skn0tt) added a commit that referenced this pull request Oct 8, 2024
…ns" (#32855) (#33003)
This reapplies what we reverted in
#32989.
Max and me debugged this, and found that the test failures come from
SOCKS proxy now preferring IPv6 over IPv4. We've updated the tests and
made sure that this doesn't mask any breaking change.
I'm enabling CQ1 to make sure we don't oversee any other CI failures.
Dmitry Gozman (dgozman) added a commit to dgozman/playwright that referenced this pull request Jan 29, 2025
Dmitry Gozman (dgozman) added a commit to dgozman/playwright that referenced this pull request Jan 29, 2025
Dmitry Gozman (dgozman) added a commit that referenced this pull request Jan 29, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Skn0tt@dgozman@mxschmitt
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(har timing): record connect timing for proxied connections - #32855

Merged
Simon Knott (Skn0tt) merged 4 commits into
microsoft:mainfrom
Skn0tt:http-proxy-har-timing-connect
Oct 7, 2024
Merged

fix(har timing): record connect timing for proxied connections#32855
Simon Knott (Skn0tt) merged 4 commits into
microsoft:mainfrom
Skn0tt:http-proxy-har-timing-connect

Conversation

@Skn0tt

@Skn0ttSimon Knott (Skn0tt) commented Sep 27, 2024

Copy link
Copy Markdown
Contributor

Fixes a bug discovered in #32647. When using http proxy, the connect event isn't emitted so we don't populate tcpConnectionAt. The updated version of https-proxy-agent emits a proxyConnect as a replacement, so this PR updates and listens to that event.
For socks proxies, the on("socket") event is emitted once the SOCKS connection is established, which is the equivalent of having a TCP connection available.

@Skn0ttSimon Knott (Skn0tt) changed the title fix(har timing): record 'connect' timing for http proxyfix(har timing): record 'connect' timing for proxied connectionsSep 27, 2024
@Skn0ttSimon Knott (Skn0tt) changed the title fix(har timing): record 'connect' timing for proxied connectionsfix(har timing): record connect timing for proxied connectionsSep 27, 2024
@github-actions

This comment has been minimized.

Comment threadpackages/playwright-core/src/server/fetch.ts Outdated
Co-authored-by: Max Schmitt <max@schmitt.mx>
Signed-off-by: Simon Knott <info@simonknott.de>
@github-actions

This comment has been minimized.

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 1"

1 flaky⚠️ [chromium] › components/splitView.spec.tsx:35:5 › should render sidebar first

36416 passed, 757 skipped
✔️✔️✔️

Merge workflow run.

@dgozman

Copy link
Copy Markdown
Collaborator

Do we have to upgrade the deps? I am always wary of introducing regressions.

@Skn0tt

Simon Knott (Skn0tt) commented Sep 27, 2024

Copy link
Copy Markdown
ContributorAuthor

For SOCKS proxy we don't, but for HTTP proxy yes. The proxyConnect event was only added in 6.1.0 and without it we have no way of knowing when the proxy started the connection.

If we don't want to update, another alternative would be leave things as is for the HTTP proxy and set connect: -1.

@Skn0tt

Copy link
Copy Markdown
ContributorAuthor

Could you give this another look Dmitry Gozman (@dgozman)?

@Skn0tt
Simon Knott (Skn0tt) merged commit de4a4d1 into microsoft:mainOct 7, 2024
Simon Knott (Skn0tt) added a commit that referenced this pull request Oct 8, 2024
…ons" (#32989)
Reverts #32855. This broke two tests on main, and we
don't yet know how to fix it other than downgrading.
Simon Knott (Skn0tt) added a commit that referenced this pull request Oct 8, 2024
…ns" (#32855) (#33003)
This reapplies what we reverted in
#32989.
Max and me debugged this, and found that the test failures come from
SOCKS proxy now preferring IPv6 over IPv4. We've updated the tests and
made sure that this doesn't mask any breaking change.
I'm enabling CQ1 to make sure we don't oversee any other CI failures.
Dmitry Gozman (dgozman) added a commit to dgozman/playwright that referenced this pull request Jan 29, 2025
Dmitry Gozman (dgozman) added a commit to dgozman/playwright that referenced this pull request Jan 29, 2025
Dmitry Gozman (dgozman) added a commit that referenced this pull request Jan 29, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@Skn0tt@dgozman@mxschmitt