Closed Bug 1701155 Opened 4 years ago Closed 3 years ago

Executing commands for certain CDP domains fail when Fission (site-isolation) is enabled

Categories

(Remote Protocol :: CDP, defect, P3)

Firefox 89
defect

Tracking

(Fission Milestone:Future)

RESOLVED DUPLICATE of bug 1706353
Fission Milestone Future

People

(Reporter: cantgetright82, Unassigned)

References

Details

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36

Steps to reproduce:

  • have a stackoverflow page open in firefox
  • connect puppeteer to already running Firefox
  • call await browser.pages()

Actual results:

(node:11380) UnhandledPromiseRejectionWarning: Error: Protocol error (Page.getFrameTree): can't access property "domWindow", bc.docShell is null _getFrameDetails@chrome://remote/content/cdp/domains/content/Page.jsm:424:7
getFrames@chrome://remote/content/cdp/domains/content/Page.jsm:158:21
getFrames@chrome://remote/content/cdp/domains/content/Page.jsm:164:23
getFrameTree@chrome://remote/content/cdp/domains/content/Page.jsm:173:18
execute@chrome://remote/content/cdp/domains/DomainCache.jsm:101:25
receiveMessage@chrome://remote/content/cdp/sessions/ContentProcessSession.jsm:84:45

Expected results:

I would expect to not get an exception.
As soon as offending tabs are closed, brower.pages() functions normally.
It seems some sites do not have this problem while others do.

I did some more testing:

Tabs that will not throw exception:
nos.nl
volkskrant.nl
cnn.com

Tabs will throw exception:
nu.nl
ad.nl
foxnews.com

From what I can see, support for Firefox is still experimental. I'm not sure how can we tell if the reported issue is a problem in Firefox or something that can be fixed upstream in Puppeteer.

Henrik, could you please advise here? Should this issue live in bugzilla - is there a specific component for this - or in github?

Flags: needinfo?(hskupin)

I assume that you are running with Firefox Nightly? Which version of Puppeteer are you using? The problem here looks like to be related to our site isolation work in Firefox, which is expected to be broken with the partial CDP implementation as long as bug 1555711 hasn't been fixed. By default we turn off the Firefox preference fission.autostart, but maybe that's not the case for you, given that you manually started Firefox. Please check by opening about:config and searching for that pref. Turn it off and restart Firefox. It should work then.

Component: Untriaged → CDP
Flags: needinfo?(hskupin) → needinfo?(cantgetright82)
Product: Firefox → Remote Protocol

(In reply to Henrik Skupin (:whimboo) [⌚️UTC+1] from comment #3)

I assume that you are running with Firefox Nightly? Which version of Puppeteer are you using? The problem here looks like to be related to our site isolation work in Firefox, which is expected to be broken with the partial CDP implementation as long as bug 1555711 hasn't been fixed. By default we turn off the Firefox preference fission.autostart, but maybe that's not the case for you, given that you manually started Firefox. Please check by opening about:config and searching for that pref. Turn it off and restart Firefox. It should work then.

Very good call. Thanks for a well written response!

Flags: needinfo?(cantgetright82)
Status: UNCONFIRMED → RESOLVED
Closed: 4 years ago
Resolution: --- → WORKSFORME

Sorry, I've made a mistake. The bug to reference is actually bug 1600054. Right now it's not clear if we can make the Remote Agent compatible to our site-isolation feature (Fission). That means as long as that isn't the case this preference needs to keep turned off. Puppeteer itself does it when its launcher starts Firefox.

Thanks for letting us know that this preference fixed it for you!

As such let me re-title the bug so it applies to all CDP specific commands, and make it dependent on bug 1600054.

Status: RESOLVED → REOPENED
Depends on: remote-fission
Ever confirmed: true
Resolution: WORKSFORME → ---
Summary: puppeteer browser.pages() fails on when certain websites are open → Executing commands for certain CDP domains fail when Fission (site-isolation) is enabled

(In reply to Henrik Skupin (:whimboo) [⌚️UTC+1] from comment #5)

Right now it's not clear if we can make the Remote Agent compatible to our site-isolation feature (Fission). That means as long as that isn't the case this preference needs to keep turned off. Puppeteer itself does it when its launcher starts Firefox.

In that case, I will move this bug to the "Fission Future" milestone for Fission's post-MVP work.

Fission Milestone: --- → Future

The puppeteer launcher disables fission when starting Firefox (https://github.com/puppeteer/puppeteer/blob/d70f60e0619b8659d191fa492e3db4bc221ae982/src/node/Launcher.ts#L514).

Considering that some users might still use the CDP support outside of Puppeteer, we should keep this as a defect, but given that Fission support for CDP commands is not a priority at the moment, setting P3/S3.

Severity: -- → S3
Priority: -- → P3

cantgetright82, are you still seeing issues on these sites with a recent Firefox Nightly build? If yes this might be related to bug 1706353 then. Thanks in advance for letting us know.

Flags: needinfo?(cantgetright82)

No reply from reporter. As such I assume that the problem still exists given that the failing sites are all requesting cross-origin headers. Marking as dupe of bug 1706353.

Status: REOPENED → RESOLVED
Closed: 4 years ago3 years ago
Flags: needinfo?(cantgetright82)
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.