External Protocol launch behaviour is inconsistent for uninstalled protocols after they've been remembered
Reported by
ecatchp...@unit2games.com,
Apr 26 2018
|
|||||
Issue descriptionUserAgent: 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).
,
Apr 27 2018
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...!!
,
Apr 30 2018
Thanks for the triage - I've put together a basic test case here https://unit2ed.github.io/chromium837185/index.html
,
Apr 30 2018
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
,
May 18 2018
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!
,
May 29 2018
|
|||||
►
Sign in to add a comment |
|||||
Comment 1 by susan.boorgula@chromium.org
, Apr 27 2018