From 7cff2e01a4ece38bfa2e1e174fc1493af40ca239 Mon Sep 17 00:00:00 2001 From: Julien Neuhart Date: Mon, 26 Aug 2019 10:22:39 +0200 Subject: [PATCH] reducing memory footprint --- internal/pkg/printer/chrome.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/internal/pkg/printer/chrome.go b/internal/pkg/printer/chrome.go index 61b6911c..8003a7cd 100644 --- a/internal/pkg/printer/chrome.go +++ b/internal/pkg/printer/chrome.go @@ -83,6 +83,15 @@ func (p chromePrinter) Print(destination string) error { if err != nil { return err } + /* + close the browser context when done. + we're not using the "default" context + as it may timeout before actually closing + the browser context. + see: https://github.com/mafredri/cdp/issues/101#issuecomment-524533670 + */ + disposeBrowserContextArgs := target.NewDisposeBrowserContextArgs(newContextTarget.BrowserContextID) + defer devtClient.Target.DisposeBrowserContext(context.Background(), disposeBrowserContextArgs) // nolint: errcheck // create a new blank target with the new browser context. createTargetArgs := target. NewCreateTargetArgs("about:blank"). @@ -101,8 +110,14 @@ func (p chromePrinter) Print(destination string) error { // create a new CDP Client that uses newContextConn. targetClient := cdp.NewClient(newContextConn) closeTargetArgs := target.NewCloseTargetArgs(newTarget.TargetID) - // close the target when done. - defer targetClient.Target.CloseTarget(ctx, closeTargetArgs) // nolint: errcheck + /* + close the target when done. + we're not using the "default" context + as it may timeout before actually closing + the target. + see: https://github.com/mafredri/cdp/issues/101#issuecomment-524533670 + */ + defer targetClient.Target.CloseTarget(context.Background(), closeTargetArgs) // nolint: errcheck // enable all events. if err := p.enableEvents(ctx, targetClient); err != nil { return err