chore(deps): Update playwright to 1.50.0 - #15164

Merged
mydea merged 13 commits into
developfrom
fn/update-playwright
Jan 28, 2025
Merged

chore(deps): Update playwright to 1.50.0#15164
mydea merged 13 commits into
developfrom
fn/update-playwright

Conversation

@mydea

Copy link
Copy Markdown
Member

Also align to use the same version everywhere, tilde-restricted.

@mydeamydea self-assigned this Jan 27, 2025
@codecov

codecovBot commented Jan 27, 2025

Copy link
Copy Markdown

❌ 3 Tests Failed:

Tests completedFailedPassedSkipped
4513448294
View the top 3 failed tests by shortest run time
tracing/browserTracingIntegration/http-timings/test.tsshouldcreatefetchspanswithhttptiming @firefox
Stack Traces | 10.3s run time
test.ts:7:11shouldcreatefetchspanswithhttptiming @firefox
tracing/browserTracingIntegration/interactions/test.tsshouldcaptureinteractiontransaction. @firefox
Stack Traces | 30.1s run time
test.ts:11:11shouldcaptureinteractiontransaction. @firefox
tracing/browserTracingIntegration/interactions/test.tsshouldcreateonlyonetransactionperinteraction @firefox
Stack Traces | 30.1s run time
test.ts:50:11shouldcreateonlyonetransactionperinteraction @firefox

To view more test analytics, go to the Test Analytics Dashboard
📢 Thoughts on this report? Let us know!

@mydea

Copy link
Copy Markdown
MemberAuthor

Hmm, looking some more into this 😬 it seems that Firefox has finally implemented keepalive in 133 (Playwright 1.50.0 uses 134). And apparently, it handles this a bit funky. It seems to not be inspectable/blocked in playwright :/ Not quite sure what is going on there. I looked into a regular Sentry app in firefox, and what I noticed is that sentyr requests do not show up in the network tab. However, they do seem to get send. This is "fixed" if I remove the keepalive: true flag. So my suspicion is that Firefox somehow handles keepalive requests separately (as they are kind of background requests) which maybe also conflicts with Playwright 🤔

@mydea

Copy link
Copy Markdown
MemberAuthor

transportOptions: {
fetchOptions: {
// See: https://github.com/microsoft/playwright/issues/34497
keepalive: false,

@mydeamydeaJan 27, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important note: This is apparently a bug in playwright/firefox 🤔 I opened an issue here: microsoft/playwright#34497 but this seems to fix it. I tried to reproduce this in a regular FF instance, and it seems that Sentry data is correctly sent, but cannot be inspected. Possibly this interferes with PW abilities to intercept stuff too.

@github-actions

github-actionsBot commented Jan 27, 2025

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser23.06 KB+0.02%+4 B 🔺
@sentry/browser - with treeshaking flags22.95 KB+0.02%+4 B 🔺
@sentry/browser (incl. Tracing)35.79 KB+0.01%+3 B 🔺
@sentry/browser (incl. Tracing, Replay)72.58 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags66.13 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay with Canvas)76.83 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay, Feedback)89.32 KB+0.01%+4 B 🔺
@sentry/browser (incl. Feedback)39.74 KB+0.01%+4 B 🔺
@sentry/browser (incl. sendFeedback)27.69 KB+0.02%+4 B 🔺
@sentry/browser (incl. FeedbackAsync)32.47 KB+0.02%+4 B 🔺
@sentry/react25.73 KB+0.02%+4 B 🔺
@sentry/react (incl. Tracing)38.56 KB+0.01%+3 B 🔺
@sentry/vue27.16 KB+0.02%+4 B 🔺
@sentry/vue (incl. Tracing)37.51 KB+0.02%+5 B 🔺
@sentry/svelte23.18 KB+0.02%+4 B 🔺
CDN Bundle24.27 KB+0.02%+3 B 🔺
CDN Bundle (incl. Tracing)35.92 KB+0.02%+4 B 🔺
CDN Bundle (incl. Tracing, Replay)70.54 KB+0.01%+6 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback)75.68 KB+0.01%+5 B 🔺
CDN Bundle - uncompressed70.95 KB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing) - uncompressed106.58 KB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing, Replay) - uncompressed217.43 KB+0.01%+14 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed230 KB+0.01%+14 B 🔺
@sentry/nextjs (client)38.66 KB+0.01%+3 B 🔺
@sentry/sveltekit (client)36.3 KB+0.01%+3 B 🔺
@sentry/node156.39 KB-0.01%-1 B 🔽
@sentry/node - without tracing97.48 KB--
@sentry/aws-serverless106.94 KB--

View base workflow run

@mydea
mydea marked this pull request as ready for review January 27, 2025 12:44
@mydea
mydea requested a review from a team as a code ownerJanuary 27, 2025 12:44
data: {
'browser.script.invoker': 'BUTTON#clickme.onclick',
'browser.script.invoker_type': 'event-listener',
'code.filepath': 'https://example.com/path/to/script.js',

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is new, but seems correct to me!

data: {
'browser.script.invoker': 'BUTTON#clickme.onclick',
'browser.script.invoker_type': 'event-listener',
'code.filepath': 'https://example.com/path/to/script.js',

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is new, but seems correct to me!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably came from the browser version bump 🤔

// renderTime is 0 because we don't return the `Timing-Allow-Origin` header
// and the image is loaded from a 3rd party origin
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBe(0);
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBeGreaterThan(0);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Lms24 are these changes correct? 😅

@Lms24Lms24Jan 27, 2025

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this change can be attributed to browsers now exposing renderTime even without the timing-allow-origin header: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceElementTiming/renderTime#cross-origin_image_render_time

Which makes me think that we can probably merge both tests in this file. Feel free to do in this PR, otherwise I can also do it in a follow-up PR.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, I see. I'll merge these then, apparently that changed in chromium versions here!

// renderTime is 0 because we don't return the `Timing-Allow-Origin` header
// and the image is loaded from a 3rd party origin
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBe(0);
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBeGreaterThan(0);

@Lms24Lms24Jan 27, 2025

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this change can be attributed to browsers now exposing renderTime even without the timing-allow-origin header: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceElementTiming/renderTime#cross-origin_image_render_time

Which makes me think that we can probably merge both tests in this file. Feel free to do in this PR, otherwise I can also do it in a follow-up PR.

if (process.env.CI) {
console.log('::endgroup::');
}
return paths.map(p => `${path.dirname(p)}/`);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was a bit buggy - e.g. if one dirname was suites/tracing/metrics/web-vitals/test.ts, it would have made it to suites/tracing/metrics/web-vitals, which then in turn also matches e.g. web-vitals-cls etc. dirs. Now, it should be stricter in that regard.

return paths.map(p => path.dirname(p));
}

function logError(error: unknown) {

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

was not used

try {
const content = fs.readFileSync(path.join(process.cwd(), testPath, 'test.ts'), 'utf-8');
const matches = content.match(/it\(|test\(|sentryTest\(/g);
const matches = content.match(/sentryTest\(/g);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we always use sentryTest, so no need to check others here IMHO

@mydea
mydeaforce-pushed the fn/update-playwright branch from b0b2f85 to 6865dc2CompareJanuary 28, 2025 13:14
@mydea
mydeaforce-pushed the fn/update-playwright branch from 6865dc2 to aaac579CompareJanuary 28, 2025 16:00
@mydea
mydea merged commit a27652f into developJan 28, 2025
@mydea
mydea deleted the fn/update-playwright branch January 28, 2025 16:59
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.

2 participants

@mydea@Lms24
, '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

chore(deps): Update playwright to 1.50.0 - #15164

Merged
mydea merged 13 commits into
developfrom
fn/update-playwright
Jan 28, 2025
Merged

chore(deps): Update playwright to 1.50.0#15164
mydea merged 13 commits into
developfrom
fn/update-playwright

Conversation

@mydea

Copy link
Copy Markdown
Member

Also align to use the same version everywhere, tilde-restricted.

@mydeamydea self-assigned this Jan 27, 2025
@codecov

codecovBot commented Jan 27, 2025

Copy link
Copy Markdown

❌ 3 Tests Failed:

Tests completedFailedPassedSkipped
4513448294
View the top 3 failed tests by shortest run time
tracing/browserTracingIntegration/http-timings/test.tsshouldcreatefetchspanswithhttptiming @firefox
Stack Traces | 10.3s run time
test.ts:7:11shouldcreatefetchspanswithhttptiming @firefox
tracing/browserTracingIntegration/interactions/test.tsshouldcaptureinteractiontransaction. @firefox
Stack Traces | 30.1s run time
test.ts:11:11shouldcaptureinteractiontransaction. @firefox
tracing/browserTracingIntegration/interactions/test.tsshouldcreateonlyonetransactionperinteraction @firefox
Stack Traces | 30.1s run time
test.ts:50:11shouldcreateonlyonetransactionperinteraction @firefox

To view more test analytics, go to the Test Analytics Dashboard
📢 Thoughts on this report? Let us know!

@mydea

Copy link
Copy Markdown
MemberAuthor

Hmm, looking some more into this 😬 it seems that Firefox has finally implemented keepalive in 133 (Playwright 1.50.0 uses 134). And apparently, it handles this a bit funky. It seems to not be inspectable/blocked in playwright :/ Not quite sure what is going on there. I looked into a regular Sentry app in firefox, and what I noticed is that sentyr requests do not show up in the network tab. However, they do seem to get send. This is "fixed" if I remove the keepalive: true flag. So my suspicion is that Firefox somehow handles keepalive requests separately (as they are kind of background requests) which maybe also conflicts with Playwright 🤔

@mydea

Copy link
Copy Markdown
MemberAuthor

transportOptions: {
fetchOptions: {
// See: https://github.com/microsoft/playwright/issues/34497
keepalive: false,

@mydeamydeaJan 27, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important note: This is apparently a bug in playwright/firefox 🤔 I opened an issue here: microsoft/playwright#34497 but this seems to fix it. I tried to reproduce this in a regular FF instance, and it seems that Sentry data is correctly sent, but cannot be inspected. Possibly this interferes with PW abilities to intercept stuff too.

@github-actions

github-actionsBot commented Jan 27, 2025

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser23.06 KB+0.02%+4 B 🔺
@sentry/browser - with treeshaking flags22.95 KB+0.02%+4 B 🔺
@sentry/browser (incl. Tracing)35.79 KB+0.01%+3 B 🔺
@sentry/browser (incl. Tracing, Replay)72.58 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags66.13 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay with Canvas)76.83 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay, Feedback)89.32 KB+0.01%+4 B 🔺
@sentry/browser (incl. Feedback)39.74 KB+0.01%+4 B 🔺
@sentry/browser (incl. sendFeedback)27.69 KB+0.02%+4 B 🔺
@sentry/browser (incl. FeedbackAsync)32.47 KB+0.02%+4 B 🔺
@sentry/react25.73 KB+0.02%+4 B 🔺
@sentry/react (incl. Tracing)38.56 KB+0.01%+3 B 🔺
@sentry/vue27.16 KB+0.02%+4 B 🔺
@sentry/vue (incl. Tracing)37.51 KB+0.02%+5 B 🔺
@sentry/svelte23.18 KB+0.02%+4 B 🔺
CDN Bundle24.27 KB+0.02%+3 B 🔺
CDN Bundle (incl. Tracing)35.92 KB+0.02%+4 B 🔺
CDN Bundle (incl. Tracing, Replay)70.54 KB+0.01%+6 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback)75.68 KB+0.01%+5 B 🔺
CDN Bundle - uncompressed70.95 KB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing) - uncompressed106.58 KB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing, Replay) - uncompressed217.43 KB+0.01%+14 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed230 KB+0.01%+14 B 🔺
@sentry/nextjs (client)38.66 KB+0.01%+3 B 🔺
@sentry/sveltekit (client)36.3 KB+0.01%+3 B 🔺
@sentry/node156.39 KB-0.01%-1 B 🔽
@sentry/node - without tracing97.48 KB--
@sentry/aws-serverless106.94 KB--

View base workflow run

@mydea
mydea marked this pull request as ready for review January 27, 2025 12:44
@mydea
mydea requested a review from a team as a code ownerJanuary 27, 2025 12:44
data: {
'browser.script.invoker': 'BUTTON#clickme.onclick',
'browser.script.invoker_type': 'event-listener',
'code.filepath': 'https://example.com/path/to/script.js',

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is new, but seems correct to me!

data: {
'browser.script.invoker': 'BUTTON#clickme.onclick',
'browser.script.invoker_type': 'event-listener',
'code.filepath': 'https://example.com/path/to/script.js',

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is new, but seems correct to me!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably came from the browser version bump 🤔

// renderTime is 0 because we don't return the `Timing-Allow-Origin` header
// and the image is loaded from a 3rd party origin
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBe(0);
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBeGreaterThan(0);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Lms24 are these changes correct? 😅

@Lms24Lms24Jan 27, 2025

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this change can be attributed to browsers now exposing renderTime even without the timing-allow-origin header: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceElementTiming/renderTime#cross-origin_image_render_time

Which makes me think that we can probably merge both tests in this file. Feel free to do in this PR, otherwise I can also do it in a follow-up PR.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, I see. I'll merge these then, apparently that changed in chromium versions here!

// renderTime is 0 because we don't return the `Timing-Allow-Origin` header
// and the image is loaded from a 3rd party origin
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBe(0);
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBeGreaterThan(0);

@Lms24Lms24Jan 27, 2025

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this change can be attributed to browsers now exposing renderTime even without the timing-allow-origin header: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceElementTiming/renderTime#cross-origin_image_render_time

Which makes me think that we can probably merge both tests in this file. Feel free to do in this PR, otherwise I can also do it in a follow-up PR.

if (process.env.CI) {
console.log('::endgroup::');
}
return paths.map(p => `${path.dirname(p)}/`);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was a bit buggy - e.g. if one dirname was suites/tracing/metrics/web-vitals/test.ts, it would have made it to suites/tracing/metrics/web-vitals, which then in turn also matches e.g. web-vitals-cls etc. dirs. Now, it should be stricter in that regard.

return paths.map(p => path.dirname(p));
}

function logError(error: unknown) {

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

was not used

try {
const content = fs.readFileSync(path.join(process.cwd(), testPath, 'test.ts'), 'utf-8');
const matches = content.match(/it\(|test\(|sentryTest\(/g);
const matches = content.match(/sentryTest\(/g);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we always use sentryTest, so no need to check others here IMHO

@mydea
mydeaforce-pushed the fn/update-playwright branch from b0b2f85 to 6865dc2CompareJanuary 28, 2025 13:14
@mydea
mydeaforce-pushed the fn/update-playwright branch from 6865dc2 to aaac579CompareJanuary 28, 2025 16:00
@mydea
mydea merged commit a27652f into developJan 28, 2025
@mydea
mydea deleted the fn/update-playwright branch January 28, 2025 16:59
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.

2 participants

@mydea@Lms24
, '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

chore(deps): Update playwright to 1.50.0 - #15164

Merged
mydea merged 13 commits into
developfrom
fn/update-playwright
Jan 28, 2025
Merged

chore(deps): Update playwright to 1.50.0#15164
mydea merged 13 commits into
developfrom
fn/update-playwright

Conversation

@mydea

Copy link
Copy Markdown
Member

Also align to use the same version everywhere, tilde-restricted.

@mydeamydea self-assigned this Jan 27, 2025
@codecov

codecovBot commented Jan 27, 2025

Copy link
Copy Markdown

❌ 3 Tests Failed:

Tests completedFailedPassedSkipped
4513448294
View the top 3 failed tests by shortest run time
tracing/browserTracingIntegration/http-timings/test.tsshouldcreatefetchspanswithhttptiming @firefox
Stack Traces | 10.3s run time
test.ts:7:11shouldcreatefetchspanswithhttptiming @firefox
tracing/browserTracingIntegration/interactions/test.tsshouldcaptureinteractiontransaction. @firefox
Stack Traces | 30.1s run time
test.ts:11:11shouldcaptureinteractiontransaction. @firefox
tracing/browserTracingIntegration/interactions/test.tsshouldcreateonlyonetransactionperinteraction @firefox
Stack Traces | 30.1s run time
test.ts:50:11shouldcreateonlyonetransactionperinteraction @firefox

To view more test analytics, go to the Test Analytics Dashboard
📢 Thoughts on this report? Let us know!

@mydea

Copy link
Copy Markdown
MemberAuthor

Hmm, looking some more into this 😬 it seems that Firefox has finally implemented keepalive in 133 (Playwright 1.50.0 uses 134). And apparently, it handles this a bit funky. It seems to not be inspectable/blocked in playwright :/ Not quite sure what is going on there. I looked into a regular Sentry app in firefox, and what I noticed is that sentyr requests do not show up in the network tab. However, they do seem to get send. This is "fixed" if I remove the keepalive: true flag. So my suspicion is that Firefox somehow handles keepalive requests separately (as they are kind of background requests) which maybe also conflicts with Playwright 🤔

@mydea

Copy link
Copy Markdown
MemberAuthor

transportOptions: {
fetchOptions: {
// See: https://github.com/microsoft/playwright/issues/34497
keepalive: false,

@mydeamydeaJan 27, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important note: This is apparently a bug in playwright/firefox 🤔 I opened an issue here: microsoft/playwright#34497 but this seems to fix it. I tried to reproduce this in a regular FF instance, and it seems that Sentry data is correctly sent, but cannot be inspected. Possibly this interferes with PW abilities to intercept stuff too.

@github-actions

github-actionsBot commented Jan 27, 2025

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser23.06 KB+0.02%+4 B 🔺
@sentry/browser - with treeshaking flags22.95 KB+0.02%+4 B 🔺
@sentry/browser (incl. Tracing)35.79 KB+0.01%+3 B 🔺
@sentry/browser (incl. Tracing, Replay)72.58 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags66.13 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay with Canvas)76.83 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay, Feedback)89.32 KB+0.01%+4 B 🔺
@sentry/browser (incl. Feedback)39.74 KB+0.01%+4 B 🔺
@sentry/browser (incl. sendFeedback)27.69 KB+0.02%+4 B 🔺
@sentry/browser (incl. FeedbackAsync)32.47 KB+0.02%+4 B 🔺
@sentry/react25.73 KB+0.02%+4 B 🔺
@sentry/react (incl. Tracing)38.56 KB+0.01%+3 B 🔺
@sentry/vue27.16 KB+0.02%+4 B 🔺
@sentry/vue (incl. Tracing)37.51 KB+0.02%+5 B 🔺
@sentry/svelte23.18 KB+0.02%+4 B 🔺
CDN Bundle24.27 KB+0.02%+3 B 🔺
CDN Bundle (incl. Tracing)35.92 KB+0.02%+4 B 🔺
CDN Bundle (incl. Tracing, Replay)70.54 KB+0.01%+6 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback)75.68 KB+0.01%+5 B 🔺
CDN Bundle - uncompressed70.95 KB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing) - uncompressed106.58 KB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing, Replay) - uncompressed217.43 KB+0.01%+14 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed230 KB+0.01%+14 B 🔺
@sentry/nextjs (client)38.66 KB+0.01%+3 B 🔺
@sentry/sveltekit (client)36.3 KB+0.01%+3 B 🔺
@sentry/node156.39 KB-0.01%-1 B 🔽
@sentry/node - without tracing97.48 KB--
@sentry/aws-serverless106.94 KB--

View base workflow run

@mydea
mydea marked this pull request as ready for review January 27, 2025 12:44
@mydea
mydea requested a review from a team as a code ownerJanuary 27, 2025 12:44
data: {
'browser.script.invoker': 'BUTTON#clickme.onclick',
'browser.script.invoker_type': 'event-listener',
'code.filepath': 'https://example.com/path/to/script.js',

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is new, but seems correct to me!

data: {
'browser.script.invoker': 'BUTTON#clickme.onclick',
'browser.script.invoker_type': 'event-listener',
'code.filepath': 'https://example.com/path/to/script.js',

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is new, but seems correct to me!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably came from the browser version bump 🤔

// renderTime is 0 because we don't return the `Timing-Allow-Origin` header
// and the image is loaded from a 3rd party origin
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBe(0);
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBeGreaterThan(0);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Lms24 are these changes correct? 😅

@Lms24Lms24Jan 27, 2025

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this change can be attributed to browsers now exposing renderTime even without the timing-allow-origin header: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceElementTiming/renderTime#cross-origin_image_render_time

Which makes me think that we can probably merge both tests in this file. Feel free to do in this PR, otherwise I can also do it in a follow-up PR.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, I see. I'll merge these then, apparently that changed in chromium versions here!

// renderTime is 0 because we don't return the `Timing-Allow-Origin` header
// and the image is loaded from a 3rd party origin
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBe(0);
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBeGreaterThan(0);

@Lms24Lms24Jan 27, 2025

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this change can be attributed to browsers now exposing renderTime even without the timing-allow-origin header: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceElementTiming/renderTime#cross-origin_image_render_time

Which makes me think that we can probably merge both tests in this file. Feel free to do in this PR, otherwise I can also do it in a follow-up PR.

if (process.env.CI) {
console.log('::endgroup::');
}
return paths.map(p => `${path.dirname(p)}/`);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was a bit buggy - e.g. if one dirname was suites/tracing/metrics/web-vitals/test.ts, it would have made it to suites/tracing/metrics/web-vitals, which then in turn also matches e.g. web-vitals-cls etc. dirs. Now, it should be stricter in that regard.

return paths.map(p => path.dirname(p));
}

function logError(error: unknown) {

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

was not used

try {
const content = fs.readFileSync(path.join(process.cwd(), testPath, 'test.ts'), 'utf-8');
const matches = content.match(/it\(|test\(|sentryTest\(/g);
const matches = content.match(/sentryTest\(/g);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we always use sentryTest, so no need to check others here IMHO

@mydea
mydeaforce-pushed the fn/update-playwright branch from b0b2f85 to 6865dc2CompareJanuary 28, 2025 13:14
@mydea
mydeaforce-pushed the fn/update-playwright branch from 6865dc2 to aaac579CompareJanuary 28, 2025 16:00
@mydea
mydea merged commit a27652f into developJan 28, 2025
@mydea
mydea deleted the fn/update-playwright branch January 28, 2025 16:59
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.

2 participants

@mydea@Lms24
, '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

chore(deps): Update playwright to 1.50.0 - #15164

Merged
mydea merged 13 commits into
developfrom
fn/update-playwright
Jan 28, 2025
Merged

chore(deps): Update playwright to 1.50.0#15164
mydea merged 13 commits into
developfrom
fn/update-playwright

Conversation

@mydea

Copy link
Copy Markdown
Member

Also align to use the same version everywhere, tilde-restricted.

@mydeamydea self-assigned this Jan 27, 2025
@codecov

codecovBot commented Jan 27, 2025

Copy link
Copy Markdown

❌ 3 Tests Failed:

Tests completedFailedPassedSkipped
4513448294
View the top 3 failed tests by shortest run time
tracing/browserTracingIntegration/http-timings/test.tsshouldcreatefetchspanswithhttptiming @firefox
Stack Traces | 10.3s run time
test.ts:7:11shouldcreatefetchspanswithhttptiming @firefox
tracing/browserTracingIntegration/interactions/test.tsshouldcaptureinteractiontransaction. @firefox
Stack Traces | 30.1s run time
test.ts:11:11shouldcaptureinteractiontransaction. @firefox
tracing/browserTracingIntegration/interactions/test.tsshouldcreateonlyonetransactionperinteraction @firefox
Stack Traces | 30.1s run time
test.ts:50:11shouldcreateonlyonetransactionperinteraction @firefox

To view more test analytics, go to the Test Analytics Dashboard
📢 Thoughts on this report? Let us know!

@mydea

Copy link
Copy Markdown
MemberAuthor

Hmm, looking some more into this 😬 it seems that Firefox has finally implemented keepalive in 133 (Playwright 1.50.0 uses 134). And apparently, it handles this a bit funky. It seems to not be inspectable/blocked in playwright :/ Not quite sure what is going on there. I looked into a regular Sentry app in firefox, and what I noticed is that sentyr requests do not show up in the network tab. However, they do seem to get send. This is "fixed" if I remove the keepalive: true flag. So my suspicion is that Firefox somehow handles keepalive requests separately (as they are kind of background requests) which maybe also conflicts with Playwright 🤔

@mydea

Copy link
Copy Markdown
MemberAuthor

transportOptions: {
fetchOptions: {
// See: https://github.com/microsoft/playwright/issues/34497
keepalive: false,

@mydeamydeaJan 27, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important note: This is apparently a bug in playwright/firefox 🤔 I opened an issue here: microsoft/playwright#34497 but this seems to fix it. I tried to reproduce this in a regular FF instance, and it seems that Sentry data is correctly sent, but cannot be inspected. Possibly this interferes with PW abilities to intercept stuff too.

@github-actions

github-actionsBot commented Jan 27, 2025

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser23.06 KB+0.02%+4 B 🔺
@sentry/browser - with treeshaking flags22.95 KB+0.02%+4 B 🔺
@sentry/browser (incl. Tracing)35.79 KB+0.01%+3 B 🔺
@sentry/browser (incl. Tracing, Replay)72.58 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags66.13 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay with Canvas)76.83 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay, Feedback)89.32 KB+0.01%+4 B 🔺
@sentry/browser (incl. Feedback)39.74 KB+0.01%+4 B 🔺
@sentry/browser (incl. sendFeedback)27.69 KB+0.02%+4 B 🔺
@sentry/browser (incl. FeedbackAsync)32.47 KB+0.02%+4 B 🔺
@sentry/react25.73 KB+0.02%+4 B 🔺
@sentry/react (incl. Tracing)38.56 KB+0.01%+3 B 🔺
@sentry/vue27.16 KB+0.02%+4 B 🔺
@sentry/vue (incl. Tracing)37.51 KB+0.02%+5 B 🔺
@sentry/svelte23.18 KB+0.02%+4 B 🔺
CDN Bundle24.27 KB+0.02%+3 B 🔺
CDN Bundle (incl. Tracing)35.92 KB+0.02%+4 B 🔺
CDN Bundle (incl. Tracing, Replay)70.54 KB+0.01%+6 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback)75.68 KB+0.01%+5 B 🔺
CDN Bundle - uncompressed70.95 KB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing) - uncompressed106.58 KB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing, Replay) - uncompressed217.43 KB+0.01%+14 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed230 KB+0.01%+14 B 🔺
@sentry/nextjs (client)38.66 KB+0.01%+3 B 🔺
@sentry/sveltekit (client)36.3 KB+0.01%+3 B 🔺
@sentry/node156.39 KB-0.01%-1 B 🔽
@sentry/node - without tracing97.48 KB--
@sentry/aws-serverless106.94 KB--

View base workflow run

@mydea
mydea marked this pull request as ready for review January 27, 2025 12:44
@mydea
mydea requested a review from a team as a code ownerJanuary 27, 2025 12:44
data: {
'browser.script.invoker': 'BUTTON#clickme.onclick',
'browser.script.invoker_type': 'event-listener',
'code.filepath': 'https://example.com/path/to/script.js',

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is new, but seems correct to me!

data: {
'browser.script.invoker': 'BUTTON#clickme.onclick',
'browser.script.invoker_type': 'event-listener',
'code.filepath': 'https://example.com/path/to/script.js',

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is new, but seems correct to me!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably came from the browser version bump 🤔

// renderTime is 0 because we don't return the `Timing-Allow-Origin` header
// and the image is loaded from a 3rd party origin
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBe(0);
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBeGreaterThan(0);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Lms24 are these changes correct? 😅

@Lms24Lms24Jan 27, 2025

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this change can be attributed to browsers now exposing renderTime even without the timing-allow-origin header: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceElementTiming/renderTime#cross-origin_image_render_time

Which makes me think that we can probably merge both tests in this file. Feel free to do in this PR, otherwise I can also do it in a follow-up PR.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, I see. I'll merge these then, apparently that changed in chromium versions here!

// renderTime is 0 because we don't return the `Timing-Allow-Origin` header
// and the image is loaded from a 3rd party origin
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBe(0);
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBeGreaterThan(0);

@Lms24Lms24Jan 27, 2025

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this change can be attributed to browsers now exposing renderTime even without the timing-allow-origin header: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceElementTiming/renderTime#cross-origin_image_render_time

Which makes me think that we can probably merge both tests in this file. Feel free to do in this PR, otherwise I can also do it in a follow-up PR.

if (process.env.CI) {
console.log('::endgroup::');
}
return paths.map(p => `${path.dirname(p)}/`);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was a bit buggy - e.g. if one dirname was suites/tracing/metrics/web-vitals/test.ts, it would have made it to suites/tracing/metrics/web-vitals, which then in turn also matches e.g. web-vitals-cls etc. dirs. Now, it should be stricter in that regard.

return paths.map(p => path.dirname(p));
}

function logError(error: unknown) {

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

was not used

try {
const content = fs.readFileSync(path.join(process.cwd(), testPath, 'test.ts'), 'utf-8');
const matches = content.match(/it\(|test\(|sentryTest\(/g);
const matches = content.match(/sentryTest\(/g);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we always use sentryTest, so no need to check others here IMHO

@mydea
mydeaforce-pushed the fn/update-playwright branch from b0b2f85 to 6865dc2CompareJanuary 28, 2025 13:14
@mydea
mydeaforce-pushed the fn/update-playwright branch from 6865dc2 to aaac579CompareJanuary 28, 2025 16:00
@mydea
mydea merged commit a27652f into developJan 28, 2025
@mydea
mydea deleted the fn/update-playwright branch January 28, 2025 16:59
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.

2 participants

@mydea@Lms24
, '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

chore(deps): Update playwright to 1.50.0 - #15164

Merged
mydea merged 13 commits into
developfrom
fn/update-playwright
Jan 28, 2025
Merged

chore(deps): Update playwright to 1.50.0#15164
mydea merged 13 commits into
developfrom
fn/update-playwright

Conversation

@mydea

Copy link
Copy Markdown
Member

Also align to use the same version everywhere, tilde-restricted.

@mydeamydea self-assigned this Jan 27, 2025
@codecov

codecovBot commented Jan 27, 2025

Copy link
Copy Markdown

❌ 3 Tests Failed:

Tests completedFailedPassedSkipped
4513448294
View the top 3 failed tests by shortest run time
tracing/browserTracingIntegration/http-timings/test.tsshouldcreatefetchspanswithhttptiming @firefox
Stack Traces | 10.3s run time
test.ts:7:11shouldcreatefetchspanswithhttptiming @firefox
tracing/browserTracingIntegration/interactions/test.tsshouldcaptureinteractiontransaction. @firefox
Stack Traces | 30.1s run time
test.ts:11:11shouldcaptureinteractiontransaction. @firefox
tracing/browserTracingIntegration/interactions/test.tsshouldcreateonlyonetransactionperinteraction @firefox
Stack Traces | 30.1s run time
test.ts:50:11shouldcreateonlyonetransactionperinteraction @firefox

To view more test analytics, go to the Test Analytics Dashboard
📢 Thoughts on this report? Let us know!

@mydea

Copy link
Copy Markdown
MemberAuthor

Hmm, looking some more into this 😬 it seems that Firefox has finally implemented keepalive in 133 (Playwright 1.50.0 uses 134). And apparently, it handles this a bit funky. It seems to not be inspectable/blocked in playwright :/ Not quite sure what is going on there. I looked into a regular Sentry app in firefox, and what I noticed is that sentyr requests do not show up in the network tab. However, they do seem to get send. This is "fixed" if I remove the keepalive: true flag. So my suspicion is that Firefox somehow handles keepalive requests separately (as they are kind of background requests) which maybe also conflicts with Playwright 🤔

@mydea

Copy link
Copy Markdown
MemberAuthor

transportOptions: {
fetchOptions: {
// See: https://github.com/microsoft/playwright/issues/34497
keepalive: false,

@mydeamydeaJan 27, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important note: This is apparently a bug in playwright/firefox 🤔 I opened an issue here: microsoft/playwright#34497 but this seems to fix it. I tried to reproduce this in a regular FF instance, and it seems that Sentry data is correctly sent, but cannot be inspected. Possibly this interferes with PW abilities to intercept stuff too.

@github-actions

github-actionsBot commented Jan 27, 2025

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser23.06 KB+0.02%+4 B 🔺
@sentry/browser - with treeshaking flags22.95 KB+0.02%+4 B 🔺
@sentry/browser (incl. Tracing)35.79 KB+0.01%+3 B 🔺
@sentry/browser (incl. Tracing, Replay)72.58 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags66.13 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay with Canvas)76.83 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay, Feedback)89.32 KB+0.01%+4 B 🔺
@sentry/browser (incl. Feedback)39.74 KB+0.01%+4 B 🔺
@sentry/browser (incl. sendFeedback)27.69 KB+0.02%+4 B 🔺
@sentry/browser (incl. FeedbackAsync)32.47 KB+0.02%+4 B 🔺
@sentry/react25.73 KB+0.02%+4 B 🔺
@sentry/react (incl. Tracing)38.56 KB+0.01%+3 B 🔺
@sentry/vue27.16 KB+0.02%+4 B 🔺
@sentry/vue (incl. Tracing)37.51 KB+0.02%+5 B 🔺
@sentry/svelte23.18 KB+0.02%+4 B 🔺
CDN Bundle24.27 KB+0.02%+3 B 🔺
CDN Bundle (incl. Tracing)35.92 KB+0.02%+4 B 🔺
CDN Bundle (incl. Tracing, Replay)70.54 KB+0.01%+6 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback)75.68 KB+0.01%+5 B 🔺
CDN Bundle - uncompressed70.95 KB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing) - uncompressed106.58 KB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing, Replay) - uncompressed217.43 KB+0.01%+14 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed230 KB+0.01%+14 B 🔺
@sentry/nextjs (client)38.66 KB+0.01%+3 B 🔺
@sentry/sveltekit (client)36.3 KB+0.01%+3 B 🔺
@sentry/node156.39 KB-0.01%-1 B 🔽
@sentry/node - without tracing97.48 KB--
@sentry/aws-serverless106.94 KB--

View base workflow run

@mydea
mydea marked this pull request as ready for review January 27, 2025 12:44
@mydea
mydea requested a review from a team as a code ownerJanuary 27, 2025 12:44
data: {
'browser.script.invoker': 'BUTTON#clickme.onclick',
'browser.script.invoker_type': 'event-listener',
'code.filepath': 'https://example.com/path/to/script.js',

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is new, but seems correct to me!

data: {
'browser.script.invoker': 'BUTTON#clickme.onclick',
'browser.script.invoker_type': 'event-listener',
'code.filepath': 'https://example.com/path/to/script.js',

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is new, but seems correct to me!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably came from the browser version bump 🤔

// renderTime is 0 because we don't return the `Timing-Allow-Origin` header
// and the image is loaded from a 3rd party origin
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBe(0);
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBeGreaterThan(0);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Lms24 are these changes correct? 😅

@Lms24Lms24Jan 27, 2025

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this change can be attributed to browsers now exposing renderTime even without the timing-allow-origin header: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceElementTiming/renderTime#cross-origin_image_render_time

Which makes me think that we can probably merge both tests in this file. Feel free to do in this PR, otherwise I can also do it in a follow-up PR.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, I see. I'll merge these then, apparently that changed in chromium versions here!

// renderTime is 0 because we don't return the `Timing-Allow-Origin` header
// and the image is loaded from a 3rd party origin
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBe(0);
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBeGreaterThan(0);

@Lms24Lms24Jan 27, 2025

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this change can be attributed to browsers now exposing renderTime even without the timing-allow-origin header: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceElementTiming/renderTime#cross-origin_image_render_time

Which makes me think that we can probably merge both tests in this file. Feel free to do in this PR, otherwise I can also do it in a follow-up PR.

if (process.env.CI) {
console.log('::endgroup::');
}
return paths.map(p => `${path.dirname(p)}/`);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was a bit buggy - e.g. if one dirname was suites/tracing/metrics/web-vitals/test.ts, it would have made it to suites/tracing/metrics/web-vitals, which then in turn also matches e.g. web-vitals-cls etc. dirs. Now, it should be stricter in that regard.

return paths.map(p => path.dirname(p));
}

function logError(error: unknown) {

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

was not used

try {
const content = fs.readFileSync(path.join(process.cwd(), testPath, 'test.ts'), 'utf-8');
const matches = content.match(/it\(|test\(|sentryTest\(/g);
const matches = content.match(/sentryTest\(/g);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we always use sentryTest, so no need to check others here IMHO

@mydea
mydeaforce-pushed the fn/update-playwright branch from b0b2f85 to 6865dc2CompareJanuary 28, 2025 13:14
@mydea
mydeaforce-pushed the fn/update-playwright branch from 6865dc2 to aaac579CompareJanuary 28, 2025 16:00
@mydea
mydea merged commit a27652f into developJan 28, 2025
@mydea
mydea deleted the fn/update-playwright branch January 28, 2025 16:59
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.

2 participants

@mydea@Lms24
, '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

chore(deps): Update playwright to 1.50.0 - #15164

Merged
mydea merged 13 commits into
developfrom
fn/update-playwright
Jan 28, 2025
Merged

chore(deps): Update playwright to 1.50.0#15164
mydea merged 13 commits into
developfrom
fn/update-playwright

Conversation

@mydea

Copy link
Copy Markdown
Member

Also align to use the same version everywhere, tilde-restricted.

@mydeamydea self-assigned this Jan 27, 2025
@codecov

codecovBot commented Jan 27, 2025

Copy link
Copy Markdown

❌ 3 Tests Failed:

Tests completedFailedPassedSkipped
4513448294
View the top 3 failed tests by shortest run time
tracing/browserTracingIntegration/http-timings/test.tsshouldcreatefetchspanswithhttptiming @firefox
Stack Traces | 10.3s run time
test.ts:7:11shouldcreatefetchspanswithhttptiming @firefox
tracing/browserTracingIntegration/interactions/test.tsshouldcaptureinteractiontransaction. @firefox
Stack Traces | 30.1s run time
test.ts:11:11shouldcaptureinteractiontransaction. @firefox
tracing/browserTracingIntegration/interactions/test.tsshouldcreateonlyonetransactionperinteraction @firefox
Stack Traces | 30.1s run time
test.ts:50:11shouldcreateonlyonetransactionperinteraction @firefox

To view more test analytics, go to the Test Analytics Dashboard
📢 Thoughts on this report? Let us know!

@mydea

Copy link
Copy Markdown
MemberAuthor

Hmm, looking some more into this 😬 it seems that Firefox has finally implemented keepalive in 133 (Playwright 1.50.0 uses 134). And apparently, it handles this a bit funky. It seems to not be inspectable/blocked in playwright :/ Not quite sure what is going on there. I looked into a regular Sentry app in firefox, and what I noticed is that sentyr requests do not show up in the network tab. However, they do seem to get send. This is "fixed" if I remove the keepalive: true flag. So my suspicion is that Firefox somehow handles keepalive requests separately (as they are kind of background requests) which maybe also conflicts with Playwright 🤔

@mydea

Copy link
Copy Markdown
MemberAuthor

transportOptions: {
fetchOptions: {
// See: https://github.com/microsoft/playwright/issues/34497
keepalive: false,

@mydeamydeaJan 27, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important note: This is apparently a bug in playwright/firefox 🤔 I opened an issue here: microsoft/playwright#34497 but this seems to fix it. I tried to reproduce this in a regular FF instance, and it seems that Sentry data is correctly sent, but cannot be inspected. Possibly this interferes with PW abilities to intercept stuff too.

@github-actions

github-actionsBot commented Jan 27, 2025

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser23.06 KB+0.02%+4 B 🔺
@sentry/browser - with treeshaking flags22.95 KB+0.02%+4 B 🔺
@sentry/browser (incl. Tracing)35.79 KB+0.01%+3 B 🔺
@sentry/browser (incl. Tracing, Replay)72.58 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags66.13 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay with Canvas)76.83 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay, Feedback)89.32 KB+0.01%+4 B 🔺
@sentry/browser (incl. Feedback)39.74 KB+0.01%+4 B 🔺
@sentry/browser (incl. sendFeedback)27.69 KB+0.02%+4 B 🔺
@sentry/browser (incl. FeedbackAsync)32.47 KB+0.02%+4 B 🔺
@sentry/react25.73 KB+0.02%+4 B 🔺
@sentry/react (incl. Tracing)38.56 KB+0.01%+3 B 🔺
@sentry/vue27.16 KB+0.02%+4 B 🔺
@sentry/vue (incl. Tracing)37.51 KB+0.02%+5 B 🔺
@sentry/svelte23.18 KB+0.02%+4 B 🔺
CDN Bundle24.27 KB+0.02%+3 B 🔺
CDN Bundle (incl. Tracing)35.92 KB+0.02%+4 B 🔺
CDN Bundle (incl. Tracing, Replay)70.54 KB+0.01%+6 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback)75.68 KB+0.01%+5 B 🔺
CDN Bundle - uncompressed70.95 KB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing) - uncompressed106.58 KB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing, Replay) - uncompressed217.43 KB+0.01%+14 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed230 KB+0.01%+14 B 🔺
@sentry/nextjs (client)38.66 KB+0.01%+3 B 🔺
@sentry/sveltekit (client)36.3 KB+0.01%+3 B 🔺
@sentry/node156.39 KB-0.01%-1 B 🔽
@sentry/node - without tracing97.48 KB--
@sentry/aws-serverless106.94 KB--

View base workflow run

@mydea
mydea marked this pull request as ready for review January 27, 2025 12:44
@mydea
mydea requested a review from a team as a code ownerJanuary 27, 2025 12:44
data: {
'browser.script.invoker': 'BUTTON#clickme.onclick',
'browser.script.invoker_type': 'event-listener',
'code.filepath': 'https://example.com/path/to/script.js',

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is new, but seems correct to me!

data: {
'browser.script.invoker': 'BUTTON#clickme.onclick',
'browser.script.invoker_type': 'event-listener',
'code.filepath': 'https://example.com/path/to/script.js',

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is new, but seems correct to me!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably came from the browser version bump 🤔

// renderTime is 0 because we don't return the `Timing-Allow-Origin` header
// and the image is loaded from a 3rd party origin
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBe(0);
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBeGreaterThan(0);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Lms24 are these changes correct? 😅

@Lms24Lms24Jan 27, 2025

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this change can be attributed to browsers now exposing renderTime even without the timing-allow-origin header: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceElementTiming/renderTime#cross-origin_image_render_time

Which makes me think that we can probably merge both tests in this file. Feel free to do in this PR, otherwise I can also do it in a follow-up PR.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, I see. I'll merge these then, apparently that changed in chromium versions here!

// renderTime is 0 because we don't return the `Timing-Allow-Origin` header
// and the image is loaded from a 3rd party origin
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBe(0);
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBeGreaterThan(0);

@Lms24Lms24Jan 27, 2025

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this change can be attributed to browsers now exposing renderTime even without the timing-allow-origin header: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceElementTiming/renderTime#cross-origin_image_render_time

Which makes me think that we can probably merge both tests in this file. Feel free to do in this PR, otherwise I can also do it in a follow-up PR.

if (process.env.CI) {
console.log('::endgroup::');
}
return paths.map(p => `${path.dirname(p)}/`);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was a bit buggy - e.g. if one dirname was suites/tracing/metrics/web-vitals/test.ts, it would have made it to suites/tracing/metrics/web-vitals, which then in turn also matches e.g. web-vitals-cls etc. dirs. Now, it should be stricter in that regard.

return paths.map(p => path.dirname(p));
}

function logError(error: unknown) {

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

was not used

try {
const content = fs.readFileSync(path.join(process.cwd(), testPath, 'test.ts'), 'utf-8');
const matches = content.match(/it\(|test\(|sentryTest\(/g);
const matches = content.match(/sentryTest\(/g);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we always use sentryTest, so no need to check others here IMHO

@mydea
mydeaforce-pushed the fn/update-playwright branch from b0b2f85 to 6865dc2CompareJanuary 28, 2025 13:14
@mydea
mydeaforce-pushed the fn/update-playwright branch from 6865dc2 to aaac579CompareJanuary 28, 2025 16:00
@mydea
mydea merged commit a27652f into developJan 28, 2025
@mydea
mydea deleted the fn/update-playwright branch January 28, 2025 16:59
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.

2 participants

@mydea@Lms24
, '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

chore(deps): Update playwright to 1.50.0 - #15164

Merged
mydea merged 13 commits into
developfrom
fn/update-playwright
Jan 28, 2025
Merged

chore(deps): Update playwright to 1.50.0#15164
mydea merged 13 commits into
developfrom
fn/update-playwright

Conversation

@mydea

Copy link
Copy Markdown
Member

Also align to use the same version everywhere, tilde-restricted.

@mydeamydea self-assigned this Jan 27, 2025
@codecov

codecovBot commented Jan 27, 2025

Copy link
Copy Markdown

❌ 3 Tests Failed:

Tests completedFailedPassedSkipped
4513448294
View the top 3 failed tests by shortest run time
tracing/browserTracingIntegration/http-timings/test.tsshouldcreatefetchspanswithhttptiming @firefox
Stack Traces | 10.3s run time
test.ts:7:11shouldcreatefetchspanswithhttptiming @firefox
tracing/browserTracingIntegration/interactions/test.tsshouldcaptureinteractiontransaction. @firefox
Stack Traces | 30.1s run time
test.ts:11:11shouldcaptureinteractiontransaction. @firefox
tracing/browserTracingIntegration/interactions/test.tsshouldcreateonlyonetransactionperinteraction @firefox
Stack Traces | 30.1s run time
test.ts:50:11shouldcreateonlyonetransactionperinteraction @firefox

To view more test analytics, go to the Test Analytics Dashboard
📢 Thoughts on this report? Let us know!

@mydea

Copy link
Copy Markdown
MemberAuthor

Hmm, looking some more into this 😬 it seems that Firefox has finally implemented keepalive in 133 (Playwright 1.50.0 uses 134). And apparently, it handles this a bit funky. It seems to not be inspectable/blocked in playwright :/ Not quite sure what is going on there. I looked into a regular Sentry app in firefox, and what I noticed is that sentyr requests do not show up in the network tab. However, they do seem to get send. This is "fixed" if I remove the keepalive: true flag. So my suspicion is that Firefox somehow handles keepalive requests separately (as they are kind of background requests) which maybe also conflicts with Playwright 🤔

@mydea

Copy link
Copy Markdown
MemberAuthor

transportOptions: {
fetchOptions: {
// See: https://github.com/microsoft/playwright/issues/34497
keepalive: false,

@mydeamydeaJan 27, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important note: This is apparently a bug in playwright/firefox 🤔 I opened an issue here: microsoft/playwright#34497 but this seems to fix it. I tried to reproduce this in a regular FF instance, and it seems that Sentry data is correctly sent, but cannot be inspected. Possibly this interferes with PW abilities to intercept stuff too.

@github-actions

github-actionsBot commented Jan 27, 2025

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser23.06 KB+0.02%+4 B 🔺
@sentry/browser - with treeshaking flags22.95 KB+0.02%+4 B 🔺
@sentry/browser (incl. Tracing)35.79 KB+0.01%+3 B 🔺
@sentry/browser (incl. Tracing, Replay)72.58 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags66.13 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay with Canvas)76.83 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay, Feedback)89.32 KB+0.01%+4 B 🔺
@sentry/browser (incl. Feedback)39.74 KB+0.01%+4 B 🔺
@sentry/browser (incl. sendFeedback)27.69 KB+0.02%+4 B 🔺
@sentry/browser (incl. FeedbackAsync)32.47 KB+0.02%+4 B 🔺
@sentry/react25.73 KB+0.02%+4 B 🔺
@sentry/react (incl. Tracing)38.56 KB+0.01%+3 B 🔺
@sentry/vue27.16 KB+0.02%+4 B 🔺
@sentry/vue (incl. Tracing)37.51 KB+0.02%+5 B 🔺
@sentry/svelte23.18 KB+0.02%+4 B 🔺
CDN Bundle24.27 KB+0.02%+3 B 🔺
CDN Bundle (incl. Tracing)35.92 KB+0.02%+4 B 🔺
CDN Bundle (incl. Tracing, Replay)70.54 KB+0.01%+6 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback)75.68 KB+0.01%+5 B 🔺
CDN Bundle - uncompressed70.95 KB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing) - uncompressed106.58 KB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing, Replay) - uncompressed217.43 KB+0.01%+14 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed230 KB+0.01%+14 B 🔺
@sentry/nextjs (client)38.66 KB+0.01%+3 B 🔺
@sentry/sveltekit (client)36.3 KB+0.01%+3 B 🔺
@sentry/node156.39 KB-0.01%-1 B 🔽
@sentry/node - without tracing97.48 KB--
@sentry/aws-serverless106.94 KB--

View base workflow run

@mydea
mydea marked this pull request as ready for review January 27, 2025 12:44
@mydea
mydea requested a review from a team as a code ownerJanuary 27, 2025 12:44
data: {
'browser.script.invoker': 'BUTTON#clickme.onclick',
'browser.script.invoker_type': 'event-listener',
'code.filepath': 'https://example.com/path/to/script.js',

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is new, but seems correct to me!

data: {
'browser.script.invoker': 'BUTTON#clickme.onclick',
'browser.script.invoker_type': 'event-listener',
'code.filepath': 'https://example.com/path/to/script.js',

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is new, but seems correct to me!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably came from the browser version bump 🤔

// renderTime is 0 because we don't return the `Timing-Allow-Origin` header
// and the image is loaded from a 3rd party origin
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBe(0);
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBeGreaterThan(0);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Lms24 are these changes correct? 😅

@Lms24Lms24Jan 27, 2025

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this change can be attributed to browsers now exposing renderTime even without the timing-allow-origin header: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceElementTiming/renderTime#cross-origin_image_render_time

Which makes me think that we can probably merge both tests in this file. Feel free to do in this PR, otherwise I can also do it in a follow-up PR.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, I see. I'll merge these then, apparently that changed in chromium versions here!

// renderTime is 0 because we don't return the `Timing-Allow-Origin` header
// and the image is loaded from a 3rd party origin
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBe(0);
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBeGreaterThan(0);

@Lms24Lms24Jan 27, 2025

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this change can be attributed to browsers now exposing renderTime even without the timing-allow-origin header: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceElementTiming/renderTime#cross-origin_image_render_time

Which makes me think that we can probably merge both tests in this file. Feel free to do in this PR, otherwise I can also do it in a follow-up PR.

if (process.env.CI) {
console.log('::endgroup::');
}
return paths.map(p => `${path.dirname(p)}/`);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was a bit buggy - e.g. if one dirname was suites/tracing/metrics/web-vitals/test.ts, it would have made it to suites/tracing/metrics/web-vitals, which then in turn also matches e.g. web-vitals-cls etc. dirs. Now, it should be stricter in that regard.

return paths.map(p => path.dirname(p));
}

function logError(error: unknown) {

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

was not used

try {
const content = fs.readFileSync(path.join(process.cwd(), testPath, 'test.ts'), 'utf-8');
const matches = content.match(/it\(|test\(|sentryTest\(/g);
const matches = content.match(/sentryTest\(/g);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we always use sentryTest, so no need to check others here IMHO

@mydea
mydeaforce-pushed the fn/update-playwright branch from b0b2f85 to 6865dc2CompareJanuary 28, 2025 13:14
@mydea
mydeaforce-pushed the fn/update-playwright branch from 6865dc2 to aaac579CompareJanuary 28, 2025 16:00
@mydea
mydea merged commit a27652f into developJan 28, 2025
@mydea
mydea deleted the fn/update-playwright branch January 28, 2025 16:59
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.

2 participants

@mydea@Lms24
, '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

chore(deps): Update playwright to 1.50.0 - #15164

Merged
mydea merged 13 commits into
developfrom
fn/update-playwright
Jan 28, 2025
Merged

chore(deps): Update playwright to 1.50.0#15164
mydea merged 13 commits into
developfrom
fn/update-playwright

Conversation

@mydea

Copy link
Copy Markdown
Member

Also align to use the same version everywhere, tilde-restricted.

@mydeamydea self-assigned this Jan 27, 2025
@codecov

codecovBot commented Jan 27, 2025

Copy link
Copy Markdown

❌ 3 Tests Failed:

Tests completedFailedPassedSkipped
4513448294
View the top 3 failed tests by shortest run time
tracing/browserTracingIntegration/http-timings/test.tsshouldcreatefetchspanswithhttptiming @firefox
Stack Traces | 10.3s run time
test.ts:7:11shouldcreatefetchspanswithhttptiming @firefox
tracing/browserTracingIntegration/interactions/test.tsshouldcaptureinteractiontransaction. @firefox
Stack Traces | 30.1s run time
test.ts:11:11shouldcaptureinteractiontransaction. @firefox
tracing/browserTracingIntegration/interactions/test.tsshouldcreateonlyonetransactionperinteraction @firefox
Stack Traces | 30.1s run time
test.ts:50:11shouldcreateonlyonetransactionperinteraction @firefox

To view more test analytics, go to the Test Analytics Dashboard
📢 Thoughts on this report? Let us know!

@mydea

Copy link
Copy Markdown
MemberAuthor

Hmm, looking some more into this 😬 it seems that Firefox has finally implemented keepalive in 133 (Playwright 1.50.0 uses 134). And apparently, it handles this a bit funky. It seems to not be inspectable/blocked in playwright :/ Not quite sure what is going on there. I looked into a regular Sentry app in firefox, and what I noticed is that sentyr requests do not show up in the network tab. However, they do seem to get send. This is "fixed" if I remove the keepalive: true flag. So my suspicion is that Firefox somehow handles keepalive requests separately (as they are kind of background requests) which maybe also conflicts with Playwright 🤔

@mydea

Copy link
Copy Markdown
MemberAuthor

transportOptions: {
fetchOptions: {
// See: https://github.com/microsoft/playwright/issues/34497
keepalive: false,

@mydeamydeaJan 27, 2025

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important note: This is apparently a bug in playwright/firefox 🤔 I opened an issue here: microsoft/playwright#34497 but this seems to fix it. I tried to reproduce this in a regular FF instance, and it seems that Sentry data is correctly sent, but cannot be inspected. Possibly this interferes with PW abilities to intercept stuff too.

@github-actions

github-actionsBot commented Jan 27, 2025

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser23.06 KB+0.02%+4 B 🔺
@sentry/browser - with treeshaking flags22.95 KB+0.02%+4 B 🔺
@sentry/browser (incl. Tracing)35.79 KB+0.01%+3 B 🔺
@sentry/browser (incl. Tracing, Replay)72.58 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags66.13 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay with Canvas)76.83 KB+0.01%+4 B 🔺
@sentry/browser (incl. Tracing, Replay, Feedback)89.32 KB+0.01%+4 B 🔺
@sentry/browser (incl. Feedback)39.74 KB+0.01%+4 B 🔺
@sentry/browser (incl. sendFeedback)27.69 KB+0.02%+4 B 🔺
@sentry/browser (incl. FeedbackAsync)32.47 KB+0.02%+4 B 🔺
@sentry/react25.73 KB+0.02%+4 B 🔺
@sentry/react (incl. Tracing)38.56 KB+0.01%+3 B 🔺
@sentry/vue27.16 KB+0.02%+4 B 🔺
@sentry/vue (incl. Tracing)37.51 KB+0.02%+5 B 🔺
@sentry/svelte23.18 KB+0.02%+4 B 🔺
CDN Bundle24.27 KB+0.02%+3 B 🔺
CDN Bundle (incl. Tracing)35.92 KB+0.02%+4 B 🔺
CDN Bundle (incl. Tracing, Replay)70.54 KB+0.01%+6 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback)75.68 KB+0.01%+5 B 🔺
CDN Bundle - uncompressed70.95 KB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing) - uncompressed106.58 KB+0.02%+14 B 🔺
CDN Bundle (incl. Tracing, Replay) - uncompressed217.43 KB+0.01%+14 B 🔺
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed230 KB+0.01%+14 B 🔺
@sentry/nextjs (client)38.66 KB+0.01%+3 B 🔺
@sentry/sveltekit (client)36.3 KB+0.01%+3 B 🔺
@sentry/node156.39 KB-0.01%-1 B 🔽
@sentry/node - without tracing97.48 KB--
@sentry/aws-serverless106.94 KB--

View base workflow run

@mydea
mydea marked this pull request as ready for review January 27, 2025 12:44
@mydea
mydea requested a review from a team as a code ownerJanuary 27, 2025 12:44
data: {
'browser.script.invoker': 'BUTTON#clickme.onclick',
'browser.script.invoker_type': 'event-listener',
'code.filepath': 'https://example.com/path/to/script.js',

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is new, but seems correct to me!

data: {
'browser.script.invoker': 'BUTTON#clickme.onclick',
'browser.script.invoker_type': 'event-listener',
'code.filepath': 'https://example.com/path/to/script.js',

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is new, but seems correct to me!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably came from the browser version bump 🤔

// renderTime is 0 because we don't return the `Timing-Allow-Origin` header
// and the image is loaded from a 3rd party origin
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBe(0);
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBeGreaterThan(0);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Lms24 are these changes correct? 😅

@Lms24Lms24Jan 27, 2025

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this change can be attributed to browsers now exposing renderTime even without the timing-allow-origin header: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceElementTiming/renderTime#cross-origin_image_render_time

Which makes me think that we can probably merge both tests in this file. Feel free to do in this PR, otherwise I can also do it in a follow-up PR.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, I see. I'll merge these then, apparently that changed in chromium versions here!

// renderTime is 0 because we don't return the `Timing-Allow-Origin` header
// and the image is loaded from a 3rd party origin
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBe(0);
expect(eventData.contexts?.trace?.data?.['lcp.renderTime']).toBeGreaterThan(0);

@Lms24Lms24Jan 27, 2025

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this change can be attributed to browsers now exposing renderTime even without the timing-allow-origin header: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceElementTiming/renderTime#cross-origin_image_render_time

Which makes me think that we can probably merge both tests in this file. Feel free to do in this PR, otherwise I can also do it in a follow-up PR.

if (process.env.CI) {
console.log('::endgroup::');
}
return paths.map(p => `${path.dirname(p)}/`);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was a bit buggy - e.g. if one dirname was suites/tracing/metrics/web-vitals/test.ts, it would have made it to suites/tracing/metrics/web-vitals, which then in turn also matches e.g. web-vitals-cls etc. dirs. Now, it should be stricter in that regard.

return paths.map(p => path.dirname(p));
}

function logError(error: unknown) {

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

was not used

try {
const content = fs.readFileSync(path.join(process.cwd(), testPath, 'test.ts'), 'utf-8');
const matches = content.match(/it\(|test\(|sentryTest\(/g);
const matches = content.match(/sentryTest\(/g);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we always use sentryTest, so no need to check others here IMHO

@mydea
mydeaforce-pushed the fn/update-playwright branch from b0b2f85 to 6865dc2CompareJanuary 28, 2025 13:14
@mydea
mydeaforce-pushed the fn/update-playwright branch from 6865dc2 to aaac579CompareJanuary 28, 2025 16:00
@mydea
mydea merged commit a27652f into developJan 28, 2025
@mydea
mydea deleted the fn/update-playwright branch January 28, 2025 16:59
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.

2 participants

@mydea@Lms24