New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 837185 link

Starred by 2 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 3
Type: Bug



Sign in to add a comment

External Protocol launch behaviour is inconsistent for uninstalled protocols after they've been remembered

Reported by ecatchp...@unit2games.com, Apr 26 2018

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36

Steps to reproduce the problem:
1. Register an external protocol, eg test://
2. Trigger that from chrome, eg test://foo
3. Check the "Remember my choice"
4. Click Launch
5. Unregister the protocol (eg by deleting the registry key for it)
6. Trigger the protocol from chrome again
7. Notice that the Windows "You'll need a new app to open this" dialog is triggered

What is the expected behavior?
Chrome should produce the normal behaviour for triggering an unregistered protocol, which is to do nothing, and not try to launch  the protocol.

What went wrong?
Chrome tried to launch the protocol even though it doesn't exist and produced inconsistent behaviour with the protocol having never been remembered before.

Did this work before? No 

Chrome version: 66.0.3359.117  Channel: stable
OS Version: 10.0
Flash Version: 

This is happening because Chrome records whether the protocol is BLOCK or DONT_BLOCK after the "Remember my choice" is ticked, but if the protocol has never been seen before, or the user had ticked "Remember my choice", then the first thing it does is validate whether the protocol exists. If the protocol doesn't exist, then Chrome does nothing at all and the protocol silently fails.

We are using the "Chrome does nothing at all" behaviour to detect whether the protocol exists (in lieu of a proper JS API for this) and trigger an Download Installer dialog on the webpage. We use onBlur() to find out when the browser has defocussed, meaning that our app ran successfully (see https://github.com/ismailhabib/custom-protocol-detection/blob/master/protocolcheck.js). However, the Windows "You'll need a new app to open this" dialog also triggers this defocus behaviour. This means that any user who uninstalls our app (and therefore the protocol), and ticked "Remember my choice", will never be presented with the Download Installer dialog ever again.

We believe we have a workaround, which is to alter the Chrome Preferences file in %localappdata% during our app's uninstall process, but we feel that altering a user's Chrome files is morally dubious & unreliable, and would much prefer consistent behaviour from the external protocol handler (even better would be a JS API to find out if handlers exist, or an error result if the protocol failed, but that seems like a much more complicated feature request).
 
Labels: Needs-Triage-M66
Cc: krajshree@chromium.org
Components: Blink>HTML>CustomHandlers
Labels: Triaged-ET Needs-Feedback
ecatchpole@ - Thanks for filing the issue...!!

Could you please provide a sample test file/url to test the issue from TE-end.
This will help us in triaging the issue further.

Thanks...!!
Thanks for the triage - I've put together a basic test case here https://unit2ed.github.io/chromium837185/index.html
Project Member

Comment 4 by sheriffbot@chromium.org, Apr 30 2018

Labels: -Needs-Feedback
Thank you for providing more feedback. Adding the requester to the cc list.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: M-68 FoundIn-68 Target-68
Status: Untriaged (was: Unconfirmed)
Able to reproduce the issue on chrome reported version 66.0.3359.117 and latest stable# 66.0.3359.181 and latest chrome# 68.0.3433.0 using Windows-10. As this issue is seen from M-60(60.03112.0), hence considering this issue as Non-Regression and  marking it as Untriage.
Note: Issue is specific to Windows.

Thanks!

Comment 6 by tkent@chromium.org, May 29 2018

Labels: -Pri-2 -M-68 Pri-3
Status: Available (was: Untriaged)

Sign in to add a comment