Fix Playwright browser download failures in Copilot engine firewall#16775
Fix Playwright browser download failures in Copilot engine firewall#16775
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot create new domain set playwright with those domains and make sure this set is added when playwright is used. |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot Recompile |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Created Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
Recompiled all 152 workflows successfully. No changes were produced because the workflows were already compiled with the correct Playwright domains in the previous commit (7a6cc12). Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
@copilot merge main and recompile |
There was a problem hiding this comment.
Pull request overview
This pull request fixes Playwright browser download failures in Copilot and Codex engine workflows by adding support for Playwright-specific download domains. The firewall was blocking access to cdn.playwright.dev and playwright.download.prss.microsoft.com, which prevented the Playwright MCP server from initializing. These domains were already present in ClaudeDefaultDomains but missing from Copilot and Codex configurations.
Changes:
- Added
PlaywrightDomainsconstant with the two required domains - Implemented
extractPlaywrightDomainsfunction to detect Playwright tool configuration - Integrated Playwright domain extraction into the domain merging pipeline
- Added comprehensive test coverage for the new functionality
- Updated generated workflow lock files with the Playwright domains in alphabetical order
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
pkg/workflow/domains.go |
Added PlaywrightDomains constant and extractPlaywrightDomains function; integrated into mergeDomainsWithNetworkToolsAndRuntimes |
pkg/workflow/http_mcp_domains_test.go |
Added test suite for Playwright domain extraction and engine integration (contains critical bug in expected values) |
.github/workflows/slide-deck-maintainer.lock.yml |
Updated firewall domain list to include Playwright domains in alphabetical order |
.github/workflows/docs-noob-tester.lock.yml |
Updated firewall domain list to include Playwright domains in alphabetical order |
Comments suppressed due to low confidence (2)
pkg/workflow/http_mcp_domains_test.go:257
- The expected domain order in this test is incorrect. When sorted alphabetically, "cdn.playwright.dev" should come before "playwright.download.prss.microsoft.com" since 'c' comes before 'p'. The expected slice should be: []string{"cdn.playwright.dev", "playwright.download.prss.microsoft.com"}
expected: []string{"playwright.download.prss.microsoft.com", "cdn.playwright.dev"},
pkg/workflow/http_mcp_domains_test.go:264
- The expected domain order in this test is incorrect. When sorted alphabetically, "cdn.playwright.dev" should come before "playwright.download.prss.microsoft.com" since 'c' comes before 'p'. The expected slice should be: []string{"cdn.playwright.dev", "playwright.download.prss.microsoft.com"}
expected: []string{"playwright.download.prss.microsoft.com", "cdn.playwright.dev"},
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| expected: []string{"playwright.download.prss.microsoft.com", "cdn.playwright.dev"}, | ||
| }, | ||
| { | ||
| name: "playwright tool with empty config", | ||
| tools: map[string]any{ | ||
| "playwright": map[string]any{}, | ||
| }, | ||
| expected: []string{"playwright.download.prss.microsoft.com", "cdn.playwright.dev"}, | ||
| }, | ||
| { | ||
| name: "playwright tool with null config", | ||
| tools: map[string]any{ | ||
| "playwright": nil, | ||
| }, | ||
| expected: []string{"playwright.download.prss.microsoft.com", "cdn.playwright.dev"}, |
There was a problem hiding this comment.
The expected domain order in this test is incorrect. When sorted alphabetically, "cdn.playwright.dev" should come before "playwright.download.prss.microsoft.com" since 'c' comes before 'p'. The expected slice should be: []string{"cdn.playwright.dev", "playwright.download.prss.microsoft.com"}
This issue also appears in the following locations of the same file:
- line 257
- line 264
| expected: []string{"playwright.download.prss.microsoft.com", "cdn.playwright.dev"}, | |
| }, | |
| { | |
| name: "playwright tool with empty config", | |
| tools: map[string]any{ | |
| "playwright": map[string]any{}, | |
| }, | |
| expected: []string{"playwright.download.prss.microsoft.com", "cdn.playwright.dev"}, | |
| }, | |
| { | |
| name: "playwright tool with null config", | |
| tools: map[string]any{ | |
| "playwright": nil, | |
| }, | |
| expected: []string{"playwright.download.prss.microsoft.com", "cdn.playwright.dev"}, | |
| expected: []string{"cdn.playwright.dev", "playwright.download.prss.microsoft.com"}, | |
| }, | |
| { | |
| name: "playwright tool with empty config", | |
| tools: map[string]any{ | |
| "playwright": map[string]any{}, | |
| }, | |
| expected: []string{"cdn.playwright.dev", "playwright.download.prss.microsoft.com"}, | |
| }, | |
| { | |
| name: "playwright tool with null config", | |
| tools: map[string]any{ | |
| "playwright": nil, | |
| }, | |
| expected: []string{"cdn.playwright.dev", "playwright.download.prss.microsoft.com"}, |
…t-configuration # Conflicts: # .github/workflows/docs-noob-tester.lock.yml # .github/workflows/slide-deck-maintainer.lock.yml
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Merged main and recompiled all 152 workflows. The merge conflicts in lock files were resolved, and the recompiled workflows now include both the Playwright domains (cdn.playwright.dev, playwright.download.prss.microsoft.com) and the updated firewall version (v0.20.1) from main. Commits: 158db79 (merge), 30dc12d (fix conflicts) Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
Hey This PR violates the core contribution workflow for this repository: According to CONTRIBUTING.md, this project explicitly prohibits traditional pull requests. The contribution process requires:
This PR was created directly without an approved issue/plan, which bypasses the required agentic workflow. From CONTRIBUTING.md:
While the technical implementation looks solid (adds Playwright domains, includes tests, focused changes), the process violation is a blocker. Next steps:
|
extractPlaywrightDomainsfunction to detect and include Playwright domainsPlaywrightDomainsconstant following same pattern as engine domain setsOriginal prompt
🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.