From 1a77afbe05422d631c2c8bc7f7e273ad9beb652d Mon Sep 17 00:00:00 2001 From: Patrick Hulce Date: Fri, 5 Jan 2018 14:11:36 -0800 Subject: [PATCH] core(screenshots): fix getParsedImage of null --- lighthouse-core/audits/screenshot-thumbnails.js | 10 +++++++--- .../gather/gatherers/viewport-dimensions.js | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lighthouse-core/audits/screenshot-thumbnails.js b/lighthouse-core/audits/screenshot-thumbnails.js index 383744c5eb28..9d589e19265e 100644 --- a/lighthouse-core/audits/screenshot-thumbnails.js +++ b/lighthouse-core/audits/screenshot-thumbnails.js @@ -78,9 +78,12 @@ class ScreenshotThumbnails extends Audit { ]).then(([speedline, ttfi, ttci]) => { const thumbnails = []; const analyzedFrames = speedline.frames.filter(frame => !frame.isProgressInterpolated()); + const maxFrameTime = + speedline.complete || + Math.max(...speedline.frames.map(frame => frame.getTimeStamp() - speedline.beginning)); // Find thumbnails to cover the full range of the trace (max of last visual change and time // to interactive). - const timelineEnd = Math.max(speedline.complete, ttfi.rawValue, ttci.rawValue); + const timelineEnd = Math.max(maxFrameTime, ttfi.rawValue, ttci.rawValue); for (let i = 1; i <= NUMBER_OF_THUMBNAILS; i++) { const targetTimestamp = speedline.beginning + timelineEnd * i / NUMBER_OF_THUMBNAILS; @@ -98,8 +101,9 @@ class ScreenshotThumbnails extends Audit { const imageData = frameForTimestamp.getParsedImage(); const thumbnailImageData = ScreenshotThumbnails.scaleImageToThumbnail(imageData); - const base64Data = cachedThumbnails.get(frameForTimestamp) || - jpeg.encode(thumbnailImageData, 90).data.toString('base64'); + const base64Data = + cachedThumbnails.get(frameForTimestamp) || + jpeg.encode(thumbnailImageData, 90).data.toString('base64'); cachedThumbnails.set(frameForTimestamp, base64Data); thumbnails.push({ diff --git a/lighthouse-core/gather/gatherers/viewport-dimensions.js b/lighthouse-core/gather/gatherers/viewport-dimensions.js index b1ec549dd3a1..74520bb3a7ef 100644 --- a/lighthouse-core/gather/gatherers/viewport-dimensions.js +++ b/lighthouse-core/gather/gatherers/viewport-dimensions.js @@ -31,7 +31,7 @@ class ViewportDimensions extends Gatherer { afterPass(options) { const driver = options.driver; - return driver.evaluateAsync(`(${getViewportDimensions.toString()}())`) + return driver.evaluateAsync(`(${getViewportDimensions.toString()}())`, {useIsolation: true}) .then(dimensions => { const allNumeric = Object.keys(dimensions).every(key => Number.isFinite(dimensions[key]));