| ... | ... | @@ -1601,7 +1601,7 @@ describe("PreviewManager", () => { |
| 1601 | 1601 | ), |
| 1602 | 1602 | ); |
| 1603 | 1603 | |
| 1604 | | effectIt.effect("emulates prefers-color-scheme and re-applies it across webview swaps", () => |
| 1604 | effectIt.effect("re-applies opaque base and color scheme across webview swaps", () => |
| 1605 | 1605 | withManager((manager) => |
| 1606 | 1606 | Effect.gen(function* () { |
| 1607 | 1607 | const makeWebContents = (id: number) => { |
| ... | ... | @@ -1650,6 +1650,16 @@ describe("PreviewManager", () => { |
| 1650 | 1650 | yield* manager.registerWebview("tab_scheme", 42); |
| 1651 | 1651 | yield* Effect.yieldNow; |
| 1652 | 1652 | |
| 1653 | // Guests start with a transparent base; dark-scheme pages need an opaque |
| 1654 | // one or Chromium skips their dark canvas. |
| 1655 | const opaqueBase = { |
| 1656 | color: { r: 255, g: 255, b: 255, a: 1 }, |
| 1657 | }; |
| 1658 | expect(first.sendCommand).toHaveBeenCalledWith( |
| 1659 | "Emulation.setDefaultBackgroundColorOverride", |
| 1660 | opaqueBase, |
| 1661 | ); |
| 1662 | |
| 1653 | 1663 | yield* manager.setColorScheme("tab_scheme", "dark"); |
| 1654 | 1664 | |
| 1655 | 1665 | expect(first.sendCommand).toHaveBeenCalledWith("Emulation.setEmulatedMedia", { |
| ... | ... | @@ -1662,6 +1672,10 @@ describe("PreviewManager", () => { |
| 1662 | 1672 | yield* manager.registerWebview("tab_scheme", 43); |
| 1663 | 1673 | yield* Effect.yieldNow; |
| 1664 | 1674 | |
| 1675 | expect(replacement.sendCommand).toHaveBeenCalledWith( |
| 1676 | "Emulation.setDefaultBackgroundColorOverride", |
| 1677 | opaqueBase, |
| 1678 | ); |
| 1665 | 1679 | expect(replacement.sendCommand).toHaveBeenCalledWith("Emulation.setEmulatedMedia", { |
| 1666 | 1680 | features: [{ name: "prefers-color-scheme", value: "dark" }], |
| 1667 | 1681 | }); |