diff --git a/test/assets/grid-iframe-in-shadow.html b/test/assets/grid-iframe-in-shadow.html
new file mode 100644
index 0000000000..4649b27227
--- /dev/null
+++ b/test/assets/grid-iframe-in-shadow.html
@@ -0,0 +1,16 @@
+
+
diff --git a/test/chromium/oopif.spec.js b/test/chromium/oopif.spec.js
index 690a10571e..83e10f63ce 100644
--- a/test/chromium/oopif.spec.js
+++ b/test/chromium/oopif.spec.js
@@ -150,13 +150,12 @@ describe('OOPIF', function() {
expect(await countOOPIFs(browser)).toBe(1);
expect(intercepted).toBe(true);
});
- it.fail(CHROMIUM)('should take screenshot', async({browser, page, server}) => {
- // Screenshot differs on the bots, needs debugging.
+ it('should take screenshot', async({browser, page, server, golden}) => {
await page.setViewportSize({width: 500, height: 500});
await page.goto(server.PREFIX + '/dynamic-oopif.html');
expect(page.frames().length).toBe(2);
expect(await countOOPIFs(browser)).toBe(1);
- expect(await page.screenshot()).toBeGolden('screenshot-iframe.png');
+ expect(await page.screenshot()).toBeGolden(golden('screenshot-oopif.png'));
});
it('should load oopif iframes with subresources and request interception', async function({browser, page, server, context}) {
await page.route('**/*', route => route.continue());
diff --git a/test/golden-chromium/screenshot-iframe.png b/test/golden-chromium/screenshot-iframe.png
index 951e96f178..56aa8706bb 100644
Binary files a/test/golden-chromium/screenshot-iframe.png and b/test/golden-chromium/screenshot-iframe.png differ
diff --git a/test/golden-chromium/screenshot-oopif.png b/test/golden-chromium/screenshot-oopif.png
new file mode 100644
index 0000000000..56aa8706bb
Binary files /dev/null and b/test/golden-chromium/screenshot-oopif.png differ
diff --git a/test/golden-firefox/screenshot-iframe.png b/test/golden-firefox/screenshot-iframe.png
new file mode 100644
index 0000000000..541a25825c
Binary files /dev/null and b/test/golden-firefox/screenshot-iframe.png differ
diff --git a/test/golden-webkit/screenshot-iframe.png b/test/golden-webkit/screenshot-iframe.png
new file mode 100644
index 0000000000..868ab58ac9
Binary files /dev/null and b/test/golden-webkit/screenshot-iframe.png differ
diff --git a/test/screenshot.spec.js b/test/screenshot.spec.js
index 506cd122e8..77b64aa454 100644
--- a/test/screenshot.spec.js
+++ b/test/screenshot.spec.js
@@ -223,6 +223,11 @@ describe.skip(ffheadful)('Page.screenshot', function() {
expect(screenshot).toBeGolden(golden('screenshot-device-scale-factor.png'));
await context.close();
});
+ it('should work with iframe in shadow', async({browser, page, server, golden}) => {
+ await page.setViewportSize({width: 500, height: 500});
+ await page.goto(server.PREFIX + '/grid-iframe-in-shadow.html');
+ expect(await page.screenshot()).toBeGolden(golden('screenshot-iframe.png'));
+ });
});
describe.skip(ffheadful)('ElementHandle.screenshot', function() {