Issue metadata
Sign in to add a comment
|
Chrome does not record anything in Preferences.protocol_handler.excluded_schemes JSON collection if latter is empty
Reported by
rteg...@gmail.com,
Jan 5 2018
|
||||||||||||||||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 Steps to reproduce the problem: 1. On Windows, register a custom protocol handler for the "mynotepad" protocol that invokes notepad.exe (see attached registerNotepadProtocolHandler.bat file). 2. On a web page with a button that invokes the custom protocol handler from the top window or an iframe using the URI "mynotepad:0", click on the button (see attached client2.html file). 3. On the ensuing interstitial "Open Notepad?" dialog, check the "Always open these types of links in the associated app" checkbox and click on the "Open Notepad" button. Notepad is launched as expected. 4. Open a new browser tab, or close browser and reopen browser, and in new browser tab, navigate to web page in step 2. 5. Click on "Launch Notepad" button as in step 2. What is the expected behavior? Notepad is launched directly without the interstitial "Open Notepad?" dialog. I.e. Chrome "remembers" the check box state. What went wrong? Interstitial "Open Notepad?" dialog ALWAYS appears. Basically what has gone wrong here is that the protocol_handler.excluded_schemes dictionary in the %LOCALAPPDATA%/Google/Chrome/User Data/Default/Preferences file was never updated by adding an "mynotepad":false entry if it was initially empty. It will be a big issue for an enterprise content management product for which I am responsible which uses this technique to launch a companion application from the web page. If the user has to deal with this interstitial dialog each and every time they log into our web page when using Chrome, we will receive lots of support calls regarding this undesirable behavior. Did this work before? Yes Worked with recent prior versions Chrome version: 63.0.3239.132 Channel: stable OS Version: 10.0 Flash Version: (1) Attached files: - registerNotepadProtocolHandler.bat: script to register notepad.exe as handler for "mynotepad" custom protocol - client2.html: simple web page with "Launch Notepad" button that can be used to reproduce problem. - WebPageScreenCapture_with_InterstitialDialog.png: screen capture of interstitial "Open Notepad?" dialog (2) Note that I used mynotepad/notepad.exe merely as a simple example that illustrates the problem: the problem is not specific to notepad. (3) I serve up http://localhost/client2.html on my Windows desktop computer from a cygwin bash shell using: python -m http.server --bind localhost 80 & (4) After shutting down Chrome and editing %LOCALAPPDATA%/Google/Chrome/User Data/Default/Preferences by adding an entry "mynotepad":false to the protocol_handler.excluded_schemes collection, I no longer observe the unwanted interstitial "Open Notepad?" dialog after restarting Chrome, navigating to client2.html, and clicking on the "Launch Notepad" button. Also, I noticed that once the excluded_schemes collection becomes non-empty, then the checkbox state on the interstitial dialog that appears the first time another external protocol scheme is encountered behaves correctly: "Chrome" remembers this setting by adding the appropriate entry to the excluded_schemes collection. So, I think the problem here is simply that Chrome does not behave correctly in the case where the excluded_schemes collection is initially empty: it does not add an entry to this collection as it should when the user checks the "Always oopen these types of links in the associated app" check box on the initial interstitial dialog.
,
Jan 5 2018
For what it is worth, 788431 appears to me to be the exact same issue.
,
Jan 8 2018
|
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by krajshree@chromium.org
, Jan 5 2018Components: Blink>HTML>CustomHandlers UI>Browser>Navigation
Labels: Needs-Triage-M63 Triaged-ET