ChromeDevTools / devtools-protocol

Chrome DevTools Protocol
https://chromedevtools.github.io/devtools-protocol/
BSD 3-Clause "New" or "Revised" License
1.15k stars 226 forks source link

When using --headless, Page.interstitialShown event isn't returned #168

Closed vbanos closed 4 years ago

vbanos commented 5 years ago

Greeting from the Internet Archive, we are using the devtools protocol extensively at our Brozzler browser based web crawler https://github.com/internetarchive/brozzler

We have been using chromium with a DISPLAY (no headless) for a long time and we expect to see the event Page.interstitialShown on certain cases. Now, we try to use --headless and we see that the event is not returned. On the contrary, when using --headless --disable-gpu, the event is returned as expected. This seems like a --headless bug.

We see this problem using Ubuntu 16.04 and the following browser versions:

JoelEinbinder commented 5 years ago

It is very bizarre that disabling the GPU would change whether or not the interstitial is being shown. Do you have an example page where this occurs?

@caseq

vbanos commented 5 years ago

Sure. http://vbanos.gr/401.php The code for this page is just:

<?php
header("HTTP/1.1 401 Unauthorized");
header('WWW-Authenticate: Basic realm="Test"');
header('Content-type: text/html');

When I access it using --headless -disable-gpu I get the following events:

[2019-05-18 15:18:18,421: WARNING/ForkPoolWorker-3] ServiceWorker.workerRegistrationUpdated
[2019-05-18 15:18:18,422: WARNING/ForkPoolWorker-3] ServiceWorker.workerVersionUpdated
[2019-05-18 15:18:18,423: WARNING/ForkPoolWorker-3] Runtime.executionContextCreated
[2019-05-18 15:18:18,434: WARNING/ForkPoolWorker-3] Page.frameStartedLoading
[2019-05-18 15:18:18,434: WARNING/ForkPoolWorker-3] Runtime.executionContextDestroyed
[2019-05-18 15:18:18,435: WARNING/ForkPoolWorker-3] Runtime.executionContextsCleared
[2019-05-18 15:18:18,435: WARNING/ForkPoolWorker-3] Page.frameNavigated
[2019-05-18 15:18:18,436: WARNING/ForkPoolWorker-3] Runtime.executionContextCreated
[2019-05-18 15:18:18,436: WARNING/ForkPoolWorker-3] Page.loadEventFired
[2019-05-18 15:18:18,436: WARNING/ForkPoolWorker-3] Page.frameStoppedLoading
[2019-05-18 15:18:18,437: WARNING/ForkPoolWorker-3] Page.domContentEventFired
[2019-05-18 15:18:18,627: WARNING/ForkPoolWorker-3] Network.requestWillBeSent
[2019-05-18 15:18:19,307: WARNING/ForkPoolWorker-3] Page.interstitialShown

When I access it with just --headless I get the following events:

[2019-05-18 15:20:49,557: WARNING/ForkPoolWorker-4] ServiceWorker.workerRegistrationUpdated
[2019-05-18 15:20:49,558: WARNING/ForkPoolWorker-4] ServiceWorker.workerVersionUpdated
[2019-05-18 15:20:49,560: WARNING/ForkPoolWorker-4] Runtime.executionContextCreated
[2019-05-18 15:20:49,567: WARNING/ForkPoolWorker-4] Page.frameStartedLoading
[2019-05-18 15:20:49,568: WARNING/ForkPoolWorker-4] Runtime.executionContextDestroyed
[2019-05-18 15:20:49,568: WARNING/ForkPoolWorker-4] Runtime.executionContextsCleared
[2019-05-18 15:20:49,569: WARNING/ForkPoolWorker-4] Page.frameNavigated
[2019-05-18 15:20:49,570: WARNING/ForkPoolWorker-4] Runtime.executionContextCreated
[2019-05-18 15:20:49,570: WARNING/ForkPoolWorker-4] Page.loadEventFired
[2019-05-18 15:20:49,571: WARNING/ForkPoolWorker-4] Page.frameStoppedLoading
[2019-05-18 15:20:49,571: WARNING/ForkPoolWorker-4] Page.domContentEventFired
[2019-05-18 15:20:49,760: WARNING/ForkPoolWorker-4] Network.requestWillBeSent
[2019-05-18 15:20:50,080: WARNING/ForkPoolWorker-4] Network.responseReceived
[2019-05-18 15:20:50,091: WARNING/ForkPoolWorker-4] Page.frameStartedLoading
[2019-05-18 15:20:50,091: WARNING/ForkPoolWorker-4] Runtime.executionContextDestroyed
[2019-05-18 15:20:50,092: WARNING/ForkPoolWorker-4] Runtime.executionContextsCleared
[2019-05-18 15:20:50,092: WARNING/ForkPoolWorker-4] Page.frameNavigated
[2019-05-18 15:20:50,093: WARNING/ForkPoolWorker-4] Runtime.executionContextCreated
[2019-05-18 15:20:50,094: WARNING/ForkPoolWorker-4] Network.loadingFinished
[2019-05-18 15:20:50,094: WARNING/ForkPoolWorker-4] Page.loadEventFired
[2019-05-18 15:20:50,095: WARNING/ForkPoolWorker-4] Page.frameStoppedLoading
[2019-05-18 15:20:50,095: WARNING/ForkPoolWorker-4] Page.domContentEventFired
[2019-05-18 15:20:50,456: WARNING/ForkPoolWorker-4] Page.frameStartedLoading
[2019-05-18 15:20:50,456: WARNING/ForkPoolWorker-4] Runtime.executionContextDestroyed
[2019-05-18 15:20:50,457: WARNING/ForkPoolWorker-4] Runtime.executionContextsCleared
[2019-05-18 15:20:50,457: WARNING/ForkPoolWorker-4] Page.frameNavigated
[2019-05-18 15:20:50,458: WARNING/ForkPoolWorker-4] Runtime.executionContextCreated
[2019-05-18 15:20:50,458: WARNING/ForkPoolWorker-4] Page.loadEventFired
[2019-05-18 15:20:50,459: WARNING/ForkPoolWorker-4] Page.frameStoppedLoading
[2019-05-18 15:20:50,459: WARNING/ForkPoolWorker-4] Page.domContentEventFired
vbanos commented 5 years ago

Hi @JoelEinbinder , can I do something to help move forward with this? Thank you!

TimvdLippe commented 4 years ago

This repository is related to Chrome DevTools Protocol, but does not track issues regarding its definition or implementation. If you want to file an issue for the Chrome DevTools Protocol, please open an issue on https://crbug.com under component: Platform>DevTools>Platform. Thanks in advance!