1
0
mirror of https://github.com/MontFerret/ferret.git synced 2025-11-06 08:39:09 +02:00
This commit is contained in:
Tim Voronov
2018-11-22 11:44:05 -05:00
committed by GitHub
parent ee7a4a8354
commit 0f3af382a9
2 changed files with 22 additions and 2 deletions

View File

@@ -50,6 +50,14 @@ const (
ScreenshotFormatJPEG ScreenshotFormat = "jpeg"
)
func handleLoadError(logger *zerolog.Logger, client *cdp.Client) {
err := client.Page.Close(context.Background())
if err != nil {
logger.Warn().Timestamp().Err(err).Msg("unabled to close document on load error")
}
}
func IsScreenshotFormatValid(format string) bool {
value := ScreenshotFormat(format)
@@ -62,6 +70,8 @@ func LoadHTMLDocument(
client *cdp.Client,
url string,
) (*HTMLDocument, error) {
logger := logging.FromContext(ctx)
if conn == nil {
return nil, core.Error(core.ErrMissedArgument, "connection")
}
@@ -76,6 +86,8 @@ func LoadHTMLDocument(
err = waitForLoadEvent(ctx, client)
if err != nil {
handleLoadError(logger, client)
return nil, err
}
}
@@ -83,17 +95,17 @@ func LoadHTMLDocument(
node, err := getRootElement(ctx, client)
if err != nil {
handleLoadError(logger, client)
return nil, errors.Wrap(err, "failed to get root element")
}
broker, err := createEventBroker(client)
if err != nil {
handleLoadError(logger, client)
return nil, errors.Wrap(err, "failed to create event events")
}
logger := logging.FromContext(ctx)
rootElement, err := LoadElement(
ctx,
logger,
@@ -104,6 +116,10 @@ func LoadHTMLDocument(
)
if err != nil {
broker.Stop()
broker.Close()
handleLoadError(logger, client)
return nil, errors.Wrap(err, "failed to load root element")
}

View File

@@ -129,6 +129,10 @@ func (drv *Driver) GetDocument(ctx context.Context, targetURL values.String) (va
},
)
if err != nil {
return nil, err
}
return LoadHTMLDocument(ctx, conn, client, url)
}