diff --git a/.github/workflows/devtools.yml b/.github/workflows/devtools.yml index 3c0cbfc98826..cb3a4b6c1e77 100644 --- a/.github/workflows/devtools.yml +++ b/.github/workflows/devtools.yml @@ -105,6 +105,10 @@ jobs: - name: Download depot tools run: bash $GITHUB_WORKSPACE/lighthouse/core/test/devtools-tests/download-depot-tools.sh + # Since Ubuntu 23, dev builds of Chromium need this. + # https://chromium.googlesource.com/chromium/src/+/main/docs/security/apparmor-userns-restrictions.md + - run: sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 + - name: Load build artifacts id: devtools-build-artifacts uses: actions/cache@v3 diff --git a/core/gather/gatherers/inspector-issues.js b/core/gather/gatherers/inspector-issues.js index 8f4d949c979b..e3ea6b4b9e9e 100644 --- a/core/gather/gatherers/inspector-issues.js +++ b/core/gather/gatherers/inspector-issues.js @@ -79,6 +79,7 @@ class InspectorIssues extends BaseGatherer { propertyRuleIssue: [], quirksModeIssue: [], cookieIssue: [], + selectElementAccessibilityIssue: [], sharedArrayBufferIssue: [], sharedDictionaryIssue: [], stylesheetLoadingIssue: [], diff --git a/core/test/gather/gatherers/inspector-issues-test.js b/core/test/gather/gatherers/inspector-issues-test.js index 562363977dc6..6da02e520201 100644 --- a/core/test/gather/gatherers/inspector-issues-test.js +++ b/core/test/gather/gatherers/inspector-issues-test.js @@ -79,7 +79,7 @@ function mockBlockedByResponse(details) { code: 'BlockedByResponseIssue', details: { blockedByResponseIssueDetails: { - request: {requestId: '1'}, + request: {requestId: '1', url: 'https://example.com/1'}, reason: 'CorpNotSameOrigin', ...details, }, @@ -177,9 +177,9 @@ describe('getArtifact', () => { it('handles multiple types of inspector issues', async () => { const gatherer = new InspectorIssues(); gatherer._issues = [ - mockMixedContent({request: {requestId: '1'}}), - mockCookie({request: {requestId: '2'}}), - mockBlockedByResponse({request: {requestId: '3'}}), + mockMixedContent({request: {requestId: '1', url: 'https://example.com/1'}}), + mockCookie({request: {requestId: '2', url: 'https://example.com/2'}}), + mockBlockedByResponse({request: {requestId: '3', url: 'https://example.com/3'}}), mockHeavyAd(), mockCSP(), mockDeprecation('AuthorizationCoveredByWildcard'), @@ -199,13 +199,13 @@ describe('getArtifact', () => { expect(artifact).toEqual({ mixedContentIssue: [{ - request: {requestId: '1'}, + request: {requestId: '1', url: 'https://example.com/1'}, resolutionStatus: 'MixedContentBlocked', insecureURL: 'https://example.com', mainResourceURL: 'https://example.com', }], cookieIssue: [{ - request: {requestId: '2'}, + request: {requestId: '2', url: 'https://example.com/2'}, cookie: { name: 'name', path: 'path', @@ -217,7 +217,7 @@ describe('getArtifact', () => { }], bounceTrackingIssue: [], blockedByResponseIssue: [{ - request: {requestId: '3'}, + request: {requestId: '3', url: 'https://example.com/3'}, reason: 'CorpNotSameOrigin', }], heavyAdIssue: [{ @@ -249,6 +249,7 @@ describe('getArtifact', () => { navigatorUserAgentIssue: [], propertyRuleIssue: [], quirksModeIssue: [], + selectElementAccessibilityIssue: [], sharedArrayBufferIssue: [], sharedDictionaryIssue: [], federatedAuthRequestIssue: [], @@ -260,12 +261,12 @@ describe('getArtifact', () => { it('dedupe by request id', async () => { const gatherer = new InspectorIssues(); gatherer._issues = [ - mockMixedContent({request: {requestId: '1'}}), - mockMixedContent({request: {requestId: '2'}}), - mockCookie({request: {requestId: '3'}}), - mockCookie({request: {requestId: '4'}}), - mockBlockedByResponse({request: {requestId: '5'}}), - mockBlockedByResponse({request: {requestId: '6'}}), + mockMixedContent({request: {requestId: '1', url: 'https://example.com/1'}}), + mockMixedContent({request: {requestId: '2', url: 'https://example.com/2'}}), + mockCookie({request: {requestId: '3', url: 'https://example.com/3'}}), + mockCookie({request: {requestId: '4', url: 'https://example.com/4'}}), + mockBlockedByResponse({request: {requestId: '5', url: 'https://example.com/5'}}), + mockBlockedByResponse({request: {requestId: '6', url: 'https://example.com/6'}}), ]; const devtoolsLog = networkRecordsToDevtoolsLog([ mockRequest({requestId: '1'}), @@ -282,13 +283,13 @@ describe('getArtifact', () => { expect(artifact).toEqual({ mixedContentIssue: [{ - request: {requestId: '1'}, + request: {requestId: '1', url: 'https://example.com/1'}, resolutionStatus: 'MixedContentBlocked', insecureURL: 'https://example.com', mainResourceURL: 'https://example.com', }], cookieIssue: [{ - request: {requestId: '3'}, + request: {requestId: '3', url: 'https://example.com/3'}, cookie: { name: 'name', path: 'path', @@ -300,7 +301,7 @@ describe('getArtifact', () => { }], bounceTrackingIssue: [], blockedByResponseIssue: [{ - request: {requestId: '5'}, + request: {requestId: '5', url: 'https://example.com/5'}, reason: 'CorpNotSameOrigin', }], heavyAdIssue: [], @@ -315,6 +316,7 @@ describe('getArtifact', () => { navigatorUserAgentIssue: [], propertyRuleIssue: [], quirksModeIssue: [], + selectElementAccessibilityIssue: [], sharedArrayBufferIssue: [], sharedDictionaryIssue: [], federatedAuthRequestIssue: [], diff --git a/package.json b/package.json index 9d24ee5df1a5..f335feb451b6 100644 --- a/package.json +++ b/package.json @@ -187,7 +187,7 @@ "chrome-launcher": "^1.1.2", "configstore": "^5.0.1", "csp_evaluator": "1.1.1", - "devtools-protocol": "0.0.1312386", + "devtools-protocol": "0.0.1402036", "enquirer": "^2.3.6", "http-link-header": "^1.1.1", "intl-messageformat": "^10.5.3", @@ -211,8 +211,8 @@ "yargs-parser": "^21.0.0" }, "resolutions": { - "puppeteer/**/devtools-protocol": "0.0.1312386", - "puppeteer-core/**/devtools-protocol": "0.0.1312386" + "puppeteer/**/devtools-protocol": "0.0.1402036", + "puppeteer-core/**/devtools-protocol": "0.0.1402036" }, "repository": "GoogleChrome/lighthouse", "keywords": [ diff --git a/third-party/chromium-synchronization/inspector-issueAdded-types-test.js b/third-party/chromium-synchronization/inspector-issueAdded-types-test.js index be9934e4966c..54bd64129ba6 100644 --- a/third-party/chromium-synchronization/inspector-issueAdded-types-test.js +++ b/third-party/chromium-synchronization/inspector-issueAdded-types-test.js @@ -50,6 +50,7 @@ Array [ "navigatorUserAgentIssueDetails", "propertyRuleIssueDetails", "quirksModeIssueDetails", + "selectElementAccessibilityIssueDetails", "sharedArrayBufferIssueDetails", "sharedDictionaryIssueDetails", "stylesheetLoadingIssueDetails", diff --git a/types/artifacts.d.ts b/types/artifacts.d.ts index 19ae925055fa..b750f568180e 100644 --- a/types/artifacts.d.ts +++ b/types/artifacts.d.ts @@ -544,6 +544,7 @@ declare module Artifacts { propertyRuleIssue: Crdp.Audits.PropertyRuleIssueDetails[], quirksModeIssue: Crdp.Audits.QuirksModeIssueDetails[]; cookieIssue: Crdp.Audits.CookieIssueDetails[]; + selectElementAccessibilityIssue: Crdp.Audits.SelectElementAccessibilityIssueDetails[]; sharedArrayBufferIssue: Crdp.Audits.SharedArrayBufferIssueDetails[]; sharedDictionaryIssue: Crdp.Audits.SharedDictionaryIssueDetails[]; stylesheetLoadingIssue: Crdp.Audits.StylesheetLoadingIssueDetails[]; diff --git a/yarn.lock b/yarn.lock index f83ab8d1193d..08e58b05aa7b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2931,10 +2931,10 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= -devtools-protocol@0.0.1312386, devtools-protocol@0.0.1367902: - version "0.0.1312386" - resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1312386.tgz#5ab824d6f1669ec6c6eb0fba047e73601d969052" - integrity sha512-DPnhUXvmvKT2dFA/j7B+riVLUt9Q6RKJlcppojL5CoRywJJKLDYnRlw0gTFKfgDPHP5E04UoB71SxoJlVZy8FA== +devtools-protocol@0.0.1367902, devtools-protocol@0.0.1402036: + version "0.0.1402036" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1402036.tgz#6f55044daed0ae5f0ec5c80c834b7b8edc822441" + integrity sha512-JwAYQgEvm3yD45CHB+RmF5kMbWtXBaOGwuxa87sZogHcLCv8c/IqnThaoQ1y60d7pXWjSKWQphPEc+1rAScVdg== diff-sequences@^28.0.2: version "28.0.2"