From 85d14a8e1bc198a93a3e55c83604896af8592a8c Mon Sep 17 00:00:00 2001 From: Patrick Hulce Date: Mon, 21 May 2018 14:24:00 -0700 Subject: [PATCH 1/2] extension: expose URL shim --- lighthouse-core/lib/url-shim.js | 1 + lighthouse-extension/gulpfile.js | 5 +++++ lighthouse-extension/test/extension-test.js | 5 +++++ 3 files changed, 11 insertions(+) diff --git a/lighthouse-core/lib/url-shim.js b/lighthouse-core/lib/url-shim.js index b2aeca30c5e8..9bb0b5c6690b 100644 --- a/lighthouse-core/lib/url-shim.js +++ b/lighthouse-core/lib/url-shim.js @@ -132,6 +132,7 @@ class URLShim extends URL { } } +URLShim.URL = URL; URLShim.URLSearchParams = (typeof self !== 'undefined' && self.URLSearchParams) || require('url').URLSearchParams; diff --git a/lighthouse-extension/gulpfile.js b/lighthouse-extension/gulpfile.js index 9c9e724b5cb9..c8d5f7709e0c 100644 --- a/lighthouse-extension/gulpfile.js +++ b/lighthouse-extension/gulpfile.js @@ -141,6 +141,11 @@ gulp.task('browserify-lighthouse', () => { bundle = bundle.require(artifact, {expose: artifact.replace(corePath, './')}); }); + // browerify's url shim doesn't work with .URL in node_modules, so expose our own + // @see https://github.com/GoogleChrome/lighthouse/issues/5273 + const pathToURLShim = require.resolve('../lighthouse-core/lib/url-shim.js'); + bundle = bundle.require(pathToURLShim, {expose: 'url'}); + // Inject the new browserified contents back into our gulp pipeline file.contents = bundle.bundle(); })) diff --git a/lighthouse-extension/test/extension-test.js b/lighthouse-extension/test/extension-test.js index 957424e112dd..b0cf7e7bf0f2 100644 --- a/lighthouse-extension/test/extension-test.js +++ b/lighthouse-extension/test/extension-test.js @@ -170,4 +170,9 @@ describe('Lighthouse chrome extension', function() { const errors = auditErrors.filter(item => item.debugString.includes('Audit error:')); assert.deepStrictEqual(errors, [], 'Audit errors found within the report'); }); + + it('should pass the is-crawlable audit', async () => { + // this audit has regressed in the extension twice, so make sure it passes + assert.ok(await extensionPage.$('#is-crawlable.lh-audit--pass'), 'did not pass is-crawlable'); + }); }); From 968e157d53bd0a9ca2bd72f81a191b8041eb26a2 Mon Sep 17 00:00:00 2001 From: Paul Irish Date: Wed, 23 May 2018 14:15:20 -0700 Subject: [PATCH 2/2] update comment --- lighthouse-extension/gulpfile.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lighthouse-extension/gulpfile.js b/lighthouse-extension/gulpfile.js index c8d5f7709e0c..8a7e0d5f2ef5 100644 --- a/lighthouse-extension/gulpfile.js +++ b/lighthouse-extension/gulpfile.js @@ -141,7 +141,8 @@ gulp.task('browserify-lighthouse', () => { bundle = bundle.require(artifact, {expose: artifact.replace(corePath, './')}); }); - // browerify's url shim doesn't work with .URL in node_modules, so expose our own + // browerify's url shim doesn't work with .URL in node_modules, + // and within robots-parser, it does `var URL = require('url').URL`, so we expose our own. // @see https://github.com/GoogleChrome/lighthouse/issues/5273 const pathToURLShim = require.resolve('../lighthouse-core/lib/url-shim.js'); bundle = bundle.require(pathToURLShim, {expose: 'url'});