사실 edge뿐만 아니라 Chrome에서도 발생(whale에서는 발생하지 않는 것 같음)하는 현상이지만 Chrome에는 해결 정책이 아직까지 없다.
발생케이스는 edge브라우저를 띄워둔 상태에서 특정 프로그램에서 프로토콜을 호출하는 페이지를 열면 프로토콜이 1회는 정상적으로 호출된다.
그러나 열려있는 브라우저에 아무런 액션을 취하지 않고 프로그램에서 프로토콜 호출페이지를 다시 열면 프로토콜 호출이 무시가 되며,
웹페이지 콘솔로그에는 'Not allowed to launch 'xx://mode:~~~' because a user gesture is required.' 와 같은 에러로그가 찍힌다.
위 증상에 대한 조치가 edge브라우저에는 99버전에서 정책으로 나왔으며 정보는 아래와 같다.
정책명 : DoNotSilentlyBlockProtocolsFromOrigins
설명 : 플러드 방지 보호로 자동 차단할 수 없는 프로토콜 목록 정의
reg적용 예시
1. 레지스트리 편집기
경로 : HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge
문자열 값으로 추가 후 아래와 같이 설정
값 이름 : DoNotSilentlyBlockProtocolsFromOrigins
값 데이터 : [{"allowed_origins":["*"],"protocol":"ProtocolName"}]
아스테리스크는 도메인 설정부분으로 *은 전체, 특정 URL을 기입하면 해당 URL에서만 적용된다.
reg 파일과 bat파일은 추후 등록 예정...