Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(launcher): disable component extensions #4704

Merged

Conversation

aslushnikov
Copy link
Contributor

Chrome has a set of component extensions - e.g. CryptoTokenExtension
that helps with 2FA.

These extensions are loaded regardless of the --disable-extensions
flag we already pass. To disable these extensions, we need to pass additional
--disable-component-extensions-with-background-pages flag.

Fix #4300

Chrome has a set of component extensions - e.g. CryptoTokenExtension
that helps with 2FA.

These extensions are loaded regardless of the `--disable-extensions`
flag we already pass. To disable these extensions, we need to pass additional
`--disable-component-extensions-with-background-pages` flag.

Fix puppeteer#4300
@googlebot
Copy link

Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

📝 Please visit https://cla.developers.google.com/ to sign.

Once you've signed (or fixed any issues), please reply here (e.g. I signed it!) and we'll verify it.


What to do if you already signed the CLA

Individual signers
Corporate signers

ℹ️ Googlers: Go here for more info.

@aslushnikov
Copy link
Contributor Author

I signed it!

@googlebot
Copy link

CLAs look good, thanks!

ℹ️ Googlers: Go here for more info.

@JoelEinbinder
Copy link
Contributor

Why?

@aslushnikov
Copy link
Contributor Author

aslushnikov commented Jul 14, 2019

@JoelEinbinder context: #3694 (comment)

Long story short: these extensions add background pages, so it becomes impossible to wait for the background page of my extension.

@JoelEinbinder
Copy link
Contributor

Presumably these extensions do something. Disabling them because it makes our API easier to use sounds to me like you are "fixing" this problem at the wrong layer.

@aslushnikov
Copy link
Contributor Author

Presumably these extensions do something.

@JoelEinbinder They don't do anything important from the WebPlatform point of view. They do provide some enhanced UserAgent experience, but we already compromise it in many ways in favor of a pleasant automation, e.g. disabling keychains, phishing protection, translation e.t.c.

@JoelEinbinder
Copy link
Contributor

Let's add a test

@aslushnikov
Copy link
Contributor Author

Let's add a test

@JoelEinbinder I don't know any reliable way to check that this extension doesn't load; any suggestion?

@JoelEinbinder
Copy link
Contributor

JoelEinbinder commented Jul 15, 2019 via email

@aslushnikov
Copy link
Contributor Author

Have a test with our own extension. Verify that there are no other
extensions once that one loads?

This won't work reliably - the order of background page loading is not guaranteed. There's no event I'm aware of that we can subscribe to that happens when all extension background pages are loaded.

@JoelEinbinder
Copy link
Contributor

Have a test with our own extension. Verify that there are no other
extensions once that one loads?

This won't work reliably - the order of background page loading is not guaranteed. There's no event I'm aware of that we can subscribe to that happens when all extension background pages are loaded.

I'm fine with a test that succeeds reliably but might give false positives if it starts failing.

We are implicitly telling users to rely on the fact that no extensions will be in the browser besides the ones they added. Having a test codifies this as the intended behavior.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

backgroundpage.on('console') not working
3 participants