From dcccf6d66c76d3046a398b153a62925f0a19171c Mon Sep 17 00:00:00 2001 From: Connor Clark Date: Fri, 19 Oct 2018 00:56:52 -0700 Subject: [PATCH] core: save HTMLElement.p.matches function to avoid conflict (#6283) --- .../test/fixtures/dobetterweb/dbw_tester.html | 17 +++++++++++++++++ lighthouse-core/gather/driver.js | 3 ++- lighthouse-core/lib/page-functions.js | 2 +- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/lighthouse-cli/test/fixtures/dobetterweb/dbw_tester.html b/lighthouse-cli/test/fixtures/dobetterweb/dbw_tester.html index e8df9bdcc62a..3e04e239da90 100644 --- a/lighthouse-cli/test/fixtures/dobetterweb/dbw_tester.html +++ b/lighthouse-cli/test/fixtures/dobetterweb/dbw_tester.html @@ -108,6 +108,23 @@ + + + + + + + +

Do better web tester page

Hi there! diff --git a/lighthouse-core/gather/driver.js b/lighthouse-core/gather/driver.js index 9859907bb961..34c886b9134e 100644 --- a/lighthouse-core/gather/driver.js +++ b/lighthouse-core/gather/driver.js @@ -1191,7 +1191,8 @@ class Driver { async cacheNatives() { await this.evaluateScriptOnNewDocument(`window.__nativePromise = Promise; window.__nativeError = Error; - window.__nativeURL = URL;`); + window.__nativeURL = URL; + window.__ElementMatches = Element.prototype.matches;`); } /** diff --git a/lighthouse-core/lib/page-functions.js b/lighthouse-core/lib/page-functions.js index d3be4d512d84..fea4e6f7c622 100644 --- a/lighthouse-core/lib/page-functions.js +++ b/lighthouse-core/lib/page-functions.js @@ -90,7 +90,7 @@ function getElementsInDocument(selector) { /** @param {NodeListOf} nodes */ const _findAllElements = nodes => { for (let i = 0, el; el = nodes[i]; ++i) { - if (!selector || el.matches(selector)) { + if (!selector || window.__ElementMatches.call(el, selector)) { results.push(el); } // If the element has a shadow root, dig deeper.