| ... | @@ -1601,7 +1601,7 @@ describe("PreviewManager", () => { | ... | @@ -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 | withManager((manager) => | 1605 | withManager((manager) => |
| 1606 | Effect.gen(function* () { | 1606 | Effect.gen(function* () { |
| 1607 | const makeWebContents = (id: number) => { | 1607 | const makeWebContents = (id: number) => { |
| ... | @@ -1650,6 +1650,16 @@ describe("PreviewManager", () => { | ... | @@ -1650,6 +1650,16 @@ describe("PreviewManager", () => { |
| 1650 | yield* manager.registerWebview("tab_scheme", 42); | 1650 | yield* manager.registerWebview("tab_scheme", 42); |
| 1651 | yield* Effect.yieldNow; | 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 | yield* manager.setColorScheme("tab_scheme", "dark"); | 1663 | yield* manager.setColorScheme("tab_scheme", "dark"); |
| 1654 | | 1664 | |
| 1655 | expect(first.sendCommand).toHaveBeenCalledWith("Emulation.setEmulatedMedia", { | 1665 | expect(first.sendCommand).toHaveBeenCalledWith("Emulation.setEmulatedMedia", { |
| ... | @@ -1662,6 +1672,10 @@ describe("PreviewManager", () => { | ... | @@ -1662,6 +1672,10 @@ describe("PreviewManager", () => { |
| 1662 | yield* manager.registerWebview("tab_scheme", 43); | 1672 | yield* manager.registerWebview("tab_scheme", 43); |
| 1663 | yield* Effect.yieldNow; | 1673 | yield* Effect.yieldNow; |
| 1664 | | 1674 | |
| | 1675 | expect(replacement.sendCommand).toHaveBeenCalledWith( |
| | 1676 | "Emulation.setDefaultBackgroundColorOverride", |
| | 1677 | opaqueBase, |
| | 1678 | ); |
| 1665 | expect(replacement.sendCommand).toHaveBeenCalledWith("Emulation.setEmulatedMedia", { | 1679 | expect(replacement.sendCommand).toHaveBeenCalledWith("Emulation.setEmulatedMedia", { |
| 1666 | features: [{ name: "prefers-color-scheme", value: "dark" }], | 1680 | features: [{ name: "prefers-color-scheme", value: "dark" }], |
| 1667 | }); | 1681 | }); |