diff --git a/src/networkIdleObservable.ts b/src/networkIdleObservable.ts
index cb2c692..bc43678 100644
--- a/src/networkIdleObservable.ts
+++ b/src/networkIdleObservable.ts
@@ -186,7 +186,7 @@ class ResourceLoadingIdleObservable {
(element instanceof HTMLImageElement && element.complete) ||
(element instanceof HTMLLinkElement && !element.href) ||
(element instanceof HTMLScriptElement && !element.src) ||
- (element instanceof HTMLIFrameElement && !element.src)
+ (element instanceof HTMLIFrameElement && (!element.src || element.src === 'about:blank'))
) {
return;
}
diff --git a/test/e2e/iframe3/index.html b/test/e2e/iframe3/index.html
new file mode 100644
index 0000000..b7a105d
--- /dev/null
+++ b/test/e2e/iframe3/index.html
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+ Hello world!
+
+
+
diff --git a/test/e2e/iframe3/index.spec.ts b/test/e2e/iframe3/index.spec.ts
new file mode 100644
index 0000000..7007f95
--- /dev/null
+++ b/test/e2e/iframe3/index.spec.ts
@@ -0,0 +1,20 @@
+import {test, expect} from '@playwright/test';
+
+import {FUDGE} from '../../util/constants';
+import {getEntries} from '../../util/entries';
+
+const PAGELOAD_DELAY = 200;
+
+test.describe('TTVC', () => {
+ test('an iframe with src="about:blank"', async ({page}) => {
+ await page.goto(`/test/iframe3?delay=${PAGELOAD_DELAY}`, {
+ waitUntil: 'networkidle',
+ });
+
+ const entries = await getEntries(page);
+
+ expect(entries.length).toBe(1);
+ expect(entries[0].duration).toBeGreaterThanOrEqual(PAGELOAD_DELAY);
+ expect(entries[0].duration).toBeLessThanOrEqual(PAGELOAD_DELAY + FUDGE);
+ });
+});