We ran into this same issue where suddenly chrome protocol stopped working correctly, but Edge still worked fine with it. What we found is that our protocol was sending a set of parameters such as the following:
MyProtocolHandler://value1=test&valueURL=http://myService.com/service.asmx&valueName=Test
What we found is that chrome would wipe out the colon that was in the valueURL reading the string as the following:
MyProtocolHandler://value1=test&valueURL=http//myService.com/service.asmx&valueName=Test
The corruption of the URL in the set of values caused our program to fail to run correctly. The solution is likely related to maxisam comment asking if you encoded the URL. In our case, encoding the URL value for that parameter appears to have worked correctly.