From 65b6981a8e66d0555b35f6f04af870bc742d1a0e Mon Sep 17 00:00:00 2001 From: Adam Argo Date: Fri, 10 May 2019 10:14:38 -0700 Subject: [PATCH] fixes race condition when EventLoad listener isn't removed prior to the next page loading (#281) --- pkg/drivers/cdp/document.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/drivers/cdp/document.go b/pkg/drivers/cdp/document.go index b860ba84..c6053dcc 100644 --- a/pkg/drivers/cdp/document.go +++ b/pkg/drivers/cdp/document.go @@ -704,8 +704,11 @@ func (doc *HTMLDocument) WaitForClassBySelectorAll(ctx context.Context, selector func (doc *HTMLDocument) WaitForNavigation(ctx context.Context) error { onEvent := make(chan struct{}) + var once sync.Once listener := func(_ context.Context, _ interface{}) { - close(onEvent) + once.Do(func() { + close(onEvent) + }) } defer doc.events.RemoveEventListener(events.EventLoad, listener)