Skip to content

feat(devices): add Galaxy Z Fold and Galaxy Z Flip device families#40988

Open
dimkin-eu wants to merge 2 commits into
microsoft:mainfrom
dimkin-eu:add-galaxy-z-fold-flip
Open

feat(devices): add Galaxy Z Fold and Galaxy Z Flip device families#40988
dimkin-eu wants to merge 2 commits into
microsoft:mainfrom
dimkin-eu:add-galaxy-z-fold-flip

Conversation

@dimkin-eu
Copy link
Copy Markdown
Contributor

Summary

Add device descriptors for the Galaxy Z Fold 6 / 7 and Galaxy Z Flip 6 / 7 generations to deviceDescriptorsSource.json. Each device gets four entries — the inner (unfolded) display and the cover (external/folded) display, each with portrait + landscape variants — per the naming convention agreed in #40917.

Devices added

8 devices × portrait + landscape = 16 entries, all defaultBrowserType: chromium:

Device screen scale Display
Galaxy Z Fold 6 928×1080 2 inner
Galaxy Z Fold 6 Cover 484×1188 2 cover
Galaxy Z Fold 7 984×1092 2 inner
Galaxy Z Fold 7 Cover 360×840 3 cover
Galaxy Z Flip 6 360×880 3 inner
Galaxy Z Flip 6 Cover 360×374 2 cover
Galaxy Z Flip 7 360×840 3 inner
Galaxy Z Flip 7 Cover 474×524 2 cover

Every row above satisfies physical = screen × scale exactly — no rounding drift.

Browser-chrome subtraction for the viewport values follows the existing Pixel 7 entry's chrome math (76 px portrait / 52 + 52 landscape).

User-Agent string

UA pattern matches the existing Galaxy entries in this file:

Mozilla/5.0 (Linux; Android 10; <model>) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.22 Mobile Safari/537.36

Model codes used: SM-F956U (Fold 6), SM-F966U (Fold 7), SM-F741U (Flip 6), SM-F761U (Flip 7).

Android 10 matches Chrome's User-Agent Reduction freeze. Ref: https://privacysandbox.google.com/protections/user-agent

The Chrome version segment is auto-normalised by doclint to whatever Chromium version Playwright currently bundles.

Sources

  • Galaxy Z Fold 7 inner displayyesviz.com: 984×1092 / DPR 2.
  • Galaxy Z Flip 7 inner displayyesviz.com: 360×840 / DPR 3.
  • All cover screens + Z Fold 6 inner + Z Flip 6 inner — yesviz doesn't cover these. Each device's physical panel resolution is taken from its Wikipedia page, then divided by a DPR that makes both CSS dimensions exact integers:

Reviewers with real-device access may want to confirm the DPR choices on actual hardware (especially the cover screens) — happy to update with measured numbers if anyone runs a quick check.

Add portrait and landscape descriptors for the Galaxy Z Fold 6 / 7 and
Galaxy Z Flip 6 / 7 generations, with both inner (unfolded) and cover
(folded/external) displays per the naming convention agreed in microsoft#40917:

  Galaxy Z Fold 6              928x1080  scale 2     (inner)
  Galaxy Z Fold 6 Cover        484x1188  scale 2     (cover)
  Galaxy Z Fold 7              984x1092  scale 2     (inner)
  Galaxy Z Fold 7 Cover        360x840   scale 3     (cover)
  Galaxy Z Flip 6              360x880   scale 3     (inner)
  Galaxy Z Flip 6 Cover        360x374   scale 2     (cover)
  Galaxy Z Flip 7              360x840   scale 3     (inner)
  Galaxy Z Flip 7 Cover        474x524   scale 2     (cover)

Every value above satisfies `physical == screen × scale` exactly, with
no rounding drift.

Sources
  - Galaxy Z Fold 7 inner: yesviz.com (984x1092 / DPR 2).
  - Galaxy Z Flip 7 inner: yesviz.com (360x840 / DPR 3).
  - All other CSS values derived from physical panel resolutions
    published on each device's Wikipedia page (Samsung Galaxy Z Fold 6 /
    Z Fold 7 / Z Flip 6 / Z Flip 7), divided by a DPR that makes both
    dimensions exact integers.
  - Browser-chrome offsets follow the existing Pixel 7 entry
    (76 px portrait / 52 + 52 landscape).

UA strings use Android 10 to match Chrome User-Agent Reduction
(https://privacysandbox.google.com/protections/user-agent). The
Chrome 149.0.7827.22 segment will be auto-normalised by doclint to
whatever Chromium version Playwright currently bundles.
@github-actions
Copy link
Copy Markdown
Contributor

Test results for "MCP"

7181 passed, 1113 skipped


Merge workflow run.

@Skn0tt
Copy link
Copy Markdown
Member

Skn0tt commented May 26, 2026

Lint is failing, can you run npm run build?

@github-actions
Copy link
Copy Markdown
Contributor

Test results for "tests 1"

129 failed
❌ [playwright-test] › list-mode.spec.ts:200 › should list tests once @ubuntu-latest-node26
❌ [playwright-test] › reporter-dot.spec.ts:50 › created › render unexpected after retry @ubuntu-latest-node26
❌ [playwright-test] › reporter-dot.spec.ts:65 › created › render flaky @ubuntu-latest-node26
❌ [playwright-test] › reporter-dot.spec.ts:50 › merged › render unexpected after retry @ubuntu-latest-node26
❌ [playwright-test] › reporter-dot.spec.ts:65 › merged › render flaky @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:26 › created › should render expected @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:53 › created › should render unexpected @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:73 › created › should render thrown error as element @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:95 › created › should render TypeError as element with correct type @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:144 › created › should render stdout @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:169 › created › should render stdout without ansi escapes @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:191 › created › should render, by default, character data as CDATA sections @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:213 › created › should render skipped @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:233 › created › should report skipped due to sharding @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:262 › created › should not render projects if they dont exist @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:288 › created › should render projects @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:323 › created › should includeProjectInTestName @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:350 › created › should render existing attachments, but not missing ones @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:415 › created › should render annotations to custom testcase properties @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:434 › created › should render built-in annotations to testcase properties @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:453 › created › should render all annotations to testcase value based properties, if requested @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:488 › created › should not embed attachments to a custom testcase property, if not explicitly requested @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:621 › created › testsuites time is test run wall time @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:637 › created › should emit flakyFailure for flaky tests when includeRetries is enabled @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:669 › created › should not include retries by default @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:688 › created › should emit rerunFailure for permanent failures when includeRetries is enabled @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:26 › merged › should render expected @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:53 › merged › should render unexpected @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:73 › merged › should render thrown error as element @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:95 › merged › should render TypeError as element with correct type @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:144 › merged › should render stdout @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:169 › merged › should render stdout without ansi escapes @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:191 › merged › should render, by default, character data as CDATA sections @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:213 › merged › should render skipped @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:233 › merged › should report skipped due to sharding @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:262 › merged › should not render projects if they dont exist @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:288 › merged › should render projects @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:323 › merged › should includeProjectInTestName @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:415 › merged › should render annotations to custom testcase properties @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:434 › merged › should render built-in annotations to testcase properties @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:453 › merged › should render all annotations to testcase value based properties, if requested @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:488 › merged › should not embed attachments to a custom testcase property, if not explicitly requested @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:621 › merged › testsuites time is test run wall time @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:637 › merged › should emit flakyFailure for flaky tests when includeRetries is enabled @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:669 › merged › should not include retries by default @ubuntu-latest-node26
❌ [playwright-test] › reporter-junit.spec.ts:688 › merged › should emit rerunFailure for permanent failures when includeRetries is enabled @ubuntu-latest-node26
❌ [playwright-test] › reporter-line.spec.ts:252 › onTestPaused › pause at end @ubuntu-latest-node26
❌ [playwright-test] › reporter-line.spec.ts:291 › onTestPaused › pause at end - error in teardown @ubuntu-latest-node26
❌ [playwright-test] › reporter-line.spec.ts:339 › onTestPaused › pause on error @ubuntu-latest-node26
❌ [playwright-test] › reporter-list.spec.ts:58 › created › render steps @ubuntu-latest-node26
❌ [playwright-test] › reporter-list.spec.ts:94 › created › render steps inline @ubuntu-latest-node26
❌ [playwright-test] › reporter-list.spec.ts:178 › created › render retries @ubuntu-latest-node26
❌ [playwright-test] › reporter-list.spec.ts:198 › created › should truncate long test names @ubuntu-latest-node26
❌ [playwright-test] › reporter-list.spec.ts:291 › created › print stdio @ubuntu-latest-node26
❌ [playwright-test] › reporter-list.spec.ts:336 › created › should update test status row only when TTY has not scrolled @ubuntu-latest-node26
❌ [playwright-test] › reporter-list.spec.ts:396 › created › should update test status row only within configured TTY height @ubuntu-latest-node26
❌ [playwright-test] › reporter-list.spec.ts:58 › merged › render steps @ubuntu-latest-node26
❌ [playwright-test] › reporter-list.spec.ts:94 › merged › render steps inline @ubuntu-latest-node26
❌ [playwright-test] › reporter-list.spec.ts:178 › merged › render retries @ubuntu-latest-node26
❌ [playwright-test] › reporter-list.spec.ts:198 › merged › should truncate long test names @ubuntu-latest-node26
❌ [playwright-test] › reporter-list.spec.ts:291 › merged › print stdio @ubuntu-latest-node26
❌ [playwright-test] › reporter-list.spec.ts:336 › merged › should update test status row only when TTY has not scrolled @ubuntu-latest-node26
❌ [playwright-test] › reporter-list.spec.ts:396 › merged › should update test status row only within configured TTY height @ubuntu-latest-node26
❌ [playwright-test] › reporter-list.spec.ts:451 › onTestPaused › pause at end @ubuntu-latest-node26
❌ [playwright-test] › reporter-list.spec.ts:481 › onTestPaused › pause at end - error in teardown @ubuntu-latest-node26
❌ [playwright-test] › reporter-list.spec.ts:527 › onTestPaused › pause on error @ubuntu-latest-node26
❌ [playwright-test] › reporter.spec.ts:128 › created › should work with custom reporter @ubuntu-latest-node26
❌ [playwright-test] › reporter.spec.ts:167 › created › should work without a file extension @ubuntu-latest-node26
❌ [playwright-test] › reporter.spec.ts:192 › created › should report onEnd after global teardown @ubuntu-latest-node26
❌ [playwright-test] › reporter.spec.ts:226 › created › should load reporter from node_modules @ubuntu-latest-node26
❌ [playwright-test] › reporter.spec.ts:274 › created › should report forbid-only error to reporter @ubuntu-latest-node26
❌ [playwright-test] › reporter.spec.ts:297 › created › should report no-tests error to reporter @ubuntu-latest-node26
❌ [playwright-test] › reporter.spec.ts:316 › created › should report require error to reporter @ubuntu-latest-node26
❌ [playwright-test] › reporter.spec.ts:339 › created › should report global setup error to reporter @ubuntu-latest-node26
❌ [playwright-test] › reporter.spec.ts:466 › created › test and step error should have code snippet @ubuntu-latest-node26
❌ [playwright-test] › reporter.spec.ts:523 › created › onError should have code snippet @ubuntu-latest-node26
❌ [playwright-test] › reporter.spec.ts:128 › merged › should work with custom reporter @ubuntu-latest-node26
❌ [playwright-test] › reporter.spec.ts:167 › merged › should work without a file extension @ubuntu-latest-node26
❌ [playwright-test] › reporter.spec.ts:226 › merged › should load reporter from node_modules @ubuntu-latest-node26
❌ [playwright-test] › reporter.spec.ts:274 › merged › should report forbid-only error to reporter @ubuntu-latest-node26
❌ [playwright-test] › reporter.spec.ts:297 › merged › should report no-tests error to reporter @ubuntu-latest-node26
❌ [playwright-test] › reporter.spec.ts:316 › merged › should report require error to reporter @ubuntu-latest-node26
❌ [playwright-test] › reporter.spec.ts:339 › merged › should report global setup error to reporter @ubuntu-latest-node26
❌ [playwright-test] › reporter.spec.ts:466 › merged › test and step error should have code snippet @ubuntu-latest-node26
❌ [playwright-test] › reporter.spec.ts:523 › merged › onError should have code snippet @ubuntu-latest-node26
❌ [playwright-test] › reporter.spec.ts:732 › tests skipped in serial mode receive onTestBegin/onTestEnd @ubuntu-latest-node26
❌ [playwright-test] › retry.spec.ts:118 › should retry timeout @ubuntu-latest-node26
❌ [playwright-test] › retry.spec.ts:148 › should retry unexpected pass @ubuntu-latest-node26
❌ [playwright-test] › retry.spec.ts:164 › should not retry expected failure @ubuntu-latest-node26
❌ [playwright-test] › retry.spec.ts:184 › should retry unhandled rejection @ubuntu-latest-node26
❌ [playwright-test] › retry.spec.ts:203 › should retry beforeAll failure @ubuntu-latest-node26
❌ [playwright-test] › retry.spec.ts:224 › should retry worker fixture setup failure @ubuntu-latest-node26
❌ [playwright-test] › reporter-blob.spec.ts:89 › should call methods in right order @ubuntu-latest-node26
❌ [playwright-test] › reporter-blob.spec.ts:426 › merge into list report by default @ubuntu-latest-node26
❌ [playwright-test] › reporter-blob.spec.ts:1058 › preserve stdout and stderr @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:115 › should report api step hierarchy @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:160 › should report before hooks step error @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:190 › should not report nested after hooks @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:288 › should report expect step locations @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:312 › should report custom expect steps @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:483 › should mark step as failed when soft expect fails @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:520 › should nest steps based on zones @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:596 › should not mark page.close as failed when page.click fails @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:644 › should not propagate errors from within toPass @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:672 › should show final toPass error @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:699 › should propagate nested soft errors @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:743 › should not propagate nested hard errors @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:787 › should step w/o box @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:820 › should step w/ box @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:853 › should soft step w/ box @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:886 › should not generate dupes for named expects @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:922 › step inside toPass @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:970 › library API call inside toPass @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:1019 › library API call inside expect.poll @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:1072 › web assertion inside expect.poll @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:1125 › should report expect steps @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:1175 › should report api steps @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:1264 › should report api step failure @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:1303 › should show nice stacks for locators @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:1337 › should allow passing location to test.step @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:1386 › should show tracing.group nested inside test.step @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:1427 › calls from waitForEvent callback should be under its parent step @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:1482 › reading network request / response should not be listed as step @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:1521 › calls from page.route callback should be under its parent step @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:1566 › test.step.skip should work @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:1604 › skip test.step.skip body @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:1633 › step.skip should work at runtime @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:1728 › show api calls inside expects @ubuntu-latest-node26
❌ [playwright-test] › test-step.spec.ts:1792 › should box fixtures @ubuntu-latest-node26

2 flaky ⚠️ [playwright-test] › ui-mode-test-progress.spec.ts:24 › should update trace live `@windows-latest-node20`
⚠️ [playwright-test] › ui-mode-trace.spec.ts:185 › should show snapshots for steps `@windows-latest-node20`

43797 passed, 861 skipped


Merge workflow run.

@dimkin-eu
Copy link
Copy Markdown
Contributor Author

dimkin-eu commented May 26, 2026

@Skn0tt , done — added b0d2caf with the regenerated types files. Should clear the "tree is dirty" lint failure.

Sign up for free to 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