Howdy,
Our web app is experiencing some very strange behaviour following some recent Chrome Updates.
We first saw the issue following the 60.0.3112.101 update and posted the update in the attached PDF which basically summised that the issue was related to the update process itself and was resolved by a hard reset of all chrome processes but as we could no longer replicate it, we were unable to investigate further.
We have since started seeing the issue again following the 61.0.3163.79 update and at present we are still able to replicate it. Now we have dug a little deeper it seems we can resolve the issue by closing Chrome, deleting the local state file (C:\Users\<username>\AppData\Local\Google\Chrome\User Data\Local State) and then re-opening chrome and browsing back to our app. This resolves the issue until the next time you restart chrome, at which point it returns, unless you repeat and delete the local state file again.
What are we doing?
When a user logs into our app, we automatically initiate a custom protocol URI request to send a message to a client app installed locally on the device, this then reports device information back to the server and the app periodically polls the server for the device information. The protocol request is triggered simply using a window.location='ourprotocol://blah' (but obviously wrapped in a load of success/failure handling JS).
What problem our we seeing?
The problem we are seeing post-update seems to be either:
1) Some form of conflict between the AJAX requests that poll for other information and those that poll for device info status (which happen at the same time) - we wondered whether the browser was seeing the protocol request as a "navigate away" and cancelling all subsequent requests OR
2) Some form of security issue with the requests being cancelled because they are not user-actioned.
However, neither of these really make sense when you consider that refreshing the local state file resolves the problem, which suggests this isn't either an app issue or a result of an actual change implemented in the newer version.
Symptoms:
Basically there are two requests happening at around the same time (application/list and get-device-info), both are showing as cancelled (in the same manner) as shown in the attached net-stat-log.txt. This results in failure for our app to load. One thing to note is that the protocol request IS permitted and DOES complete, meaning the client is triggered and device info sent, so if you refresh the page, our app has no need to do the second set of AJAX calls (only the application/list requests) which execute without issue.
Investigations so far:
It is intersting to note that we if switch the protocol launch method to launch in a hidden iframe by setting its location.href then we don't see the issue! I include this as a possible clue but at this stage, changing the product is not a viable solution as we have 400+ customer installations world-wide that we can't update without change control approval and remote access. (Please no comments on this, we are actively moving to a better deployment methodology so we can be more flexible!)
We have grabbed a copy of the Local State file from a machine experiencing the issue from when it was working and when it stopped, both of which are attached. We're not really sure what we should be looking for in here but it might offer someone an idea.
We are continuing our investigations but wanted to put this out to the wider community in the hope of getting some assistance as it makes no sense currently why a local state file could have such a heavy impact on browser behaviour
Any advice is much appreciated