Brave Software › Brave
List of URL patterns for which Chrome DevTools are allowed to be opened
Supported on Microsoft Windows 7 or later
What it does
This policy can be used to allow Chrome DevTools on specific URLs. Chrome DevTools availability is evaluated at the target level. URL patterns are matched against the URL of each target being inspected (such as the main frame of a page, an embedded subframe, an extension, or a web application). The resulting behavior depends on whether the DeveloperToolsAvailabilityBlocklist policy is also set. If this policy is set and DeveloperToolsAvailabilityBlocklist is not, a target's URL must match a pattern on this allowlist for Chrome DevTools to be allowed for that target. If a target's URL does not match this allowlist, Chrome DevTools will be blocked for that target (for example, a subframe whose URL is not on the allowlist cannot be inspected, but the main page remains inspectable if its URL is allowlisted). For information on the URL format, see https://support.google.com/chrome/a?p=url_blocklist_filter_format. If both this and the DeveloperToolsAvailabilityBlocklist policies are set, this allowlist takes precedence. If a target's URL matches a pattern on this allowlist, it will be allowed, even if it also matches a pattern in the blocklist. If a target's URL matches a pattern on this blocklist (but not the allowlist), it will be blocked. If a target's URL matches neither, the DeveloperToolsAvailability policy will be used as a fallback. If this policy is not set, the availability of Chrome DevTools is determined by the DeveloperToolsAvailabilityBlocklist and DeveloperToolsAvailability policies. Blanket host wildcards (i.e., "*" or "[*]") are not allowed; use the DeveloperToolsAvailability policy to enable the feature globally. This policy affects Chrome DevTools, direct Chrome DevTools Protocol (CDP) access (for instance, when launched with --remote-debugging-port or --remote-debugging-pipe), and Chrome DevTools Protocol (CDP) access via chrome.debugger APIs. Both this policy and the RemoteDebuggingAllowed policy apply: RemoteDebuggingAllowed controls whether remote debugging can start, while this policy restricts whether individual targets can be inspected even when remote debugging is running. This policy is limited to 1,000 entries. Example value: example.com https://ssl.server.com hosting.com/bad_path https://server:8080/path .exact.hostname.com file://*
What it writes
- Hive
- HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
- Registry key
Software\Policies\BraveSoftware\Brave
Options
| Option | Type | Registry value | Allowed values |
|---|---|---|---|
| List of URL patterns for which Chrome DevTools are allowed to be opened | List of values | Software\Policies\BraveSoftware\Brave\DeveloperToolsAvailabilityAllowlist |
Any |
Configure and deploy
Choose a state and the option values; the output below is generated from the template for exactly that.
Enabled · Computer · template defaults
Registry file (.reg)
Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\Software\Policies\BraveSoftware\Brave\DeveloperToolsAvailabilityAllowlist]
PowerShell
$ErrorActionPreference = 'Stop'
function Set-RegistryValue {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name,
[Parameter(Mandatory = $true)][string] $PropertyType,
[Parameter(Mandatory = $true)][object] $Value
)
if (-not (Test-Path -LiteralPath $Path)) {
New-Item -Path $Path -Force | Out-Null
}
New-ItemProperty -LiteralPath $Path -Name $Name -PropertyType $PropertyType -Value $Value -Force | Out-Null
}
function Remove-RegistryValue {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name
)
if (Test-Path -LiteralPath $Path) {
Remove-ItemProperty -LiteralPath $Path -Name $Name -Force -ErrorAction SilentlyContinue
}
}
function Clear-RegistryKeyValues {
param(
[Parameter(Mandatory = $true)][string] $Path
)
if (-not (Test-Path -LiteralPath $Path)) {
return
}
foreach ($propertyName in (Get-Item -LiteralPath $Path).Property) {
Remove-ItemProperty -LiteralPath $Path -Name $propertyName -Force -ErrorAction SilentlyContinue
}
}
# Policy: List of URL patterns for which Chrome DevTools are allowed to be opened
# Name: DeveloperToolsAvailabilityAllowlist
# Scope: Machine
# State: Enabled
# Source: brave.admx
Clear-RegistryKeyValues -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\BraveSoftware\Brave\DeveloperToolsAvailabilityAllowlist'
- The OMA-URI is an inferred ADMX-backed Policy CSP candidate derived from the source ADMX file name and policy name.
- Some Microsoft policies use built-in Policy CSP pages whose area names don't match the ADMX file name, so verify the candidate against Microsoft Learn before deployment.
- The generated payload is incomplete because one or more ADMX element values were not supplied: DeveloperToolsAvailabilityAllowlistDesc
ADMX profile candidate (OMA-URI)
./Device/Vendor/MSFT/Policy/Config/ADMX_brave/DeveloperToolsAvailabilityAllowlistIntune remediation scripts
Detection
$ErrorActionPreference = 'Stop'
$reasons = [System.Collections.Generic.List[string]]::new()
function Test-RegistryValueExists {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name
)
if (-not (Test-Path -LiteralPath $Path)) {
return $false
}
return $null -ne (Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction SilentlyContinue)
}
function Test-RegistryValueEquals {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name,
[Parameter(Mandatory = $true)][string] $Kind,
[Parameter(Mandatory = $true)][object] $Expected
)
if (-not (Test-Path -LiteralPath $Path)) {
return $false
}
$valueObject = Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction SilentlyContinue
if ($null -eq $valueObject) {
return $false
}
$actual = $valueObject.$Name
switch ($Kind) {
'String' { return [string]$actual -ceq [string]$Expected }
'ExpandString' { return [string]$actual -ceq [string]$Expected }
'DWord' { return [uint32]$actual -eq [uint32]$Expected }
'QWord' { return [uint64]$actual -eq [uint64]$Expected }
'MultiString' {
$actualArray = @($actual)
$expectedArray = @($Expected)
if ($actualArray.Count -ne $expectedArray.Count) { return $false }
for ($index = 0; $index -lt $actualArray.Count; $index++) {
if ([string]$actualArray[$index] -cne [string]$expectedArray[$index]) { return $false }
}
return $true
}
'Binary' {
$actualArray = [byte[]]$actual
$expectedArray = [byte[]]$Expected
if ($actualArray.Length -ne $expectedArray.Length) { return $false }
for ($index = 0; $index -lt $actualArray.Length; $index++) {
if ($actualArray[$index] -ne $expectedArray[$index]) { return $false }
}
return $true
}
default { return [string]$actual -ceq [string]$Expected }
}
}
# Policy: List of URL patterns for which Chrome DevTools are allowed to be opened
# Name: DeveloperToolsAvailabilityAllowlist
# Scope: Machine
# State: Enabled
# Source: brave.admx
$keyPath = 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\BraveSoftware\Brave\DeveloperToolsAvailabilityAllowlist'
if (Test-Path -LiteralPath $keyPath) {
$propertyNames = (Get-Item -LiteralPath $keyPath).Property
if ($propertyNames.Count -gt 0) {
$reasons.Add('Key should be empty: HKEY_LOCAL_MACHINE\Software\Policies\BraveSoftware\Brave\DeveloperToolsAvailabilityAllowlist') | Out-Null
}
}
if ($reasons.Count -eq 0) {
Write-Output 'Compliant'
exit 0
}
$reasons | ForEach-Object { Write-Output $_ }
exit 1
Remediation
$ErrorActionPreference = 'Stop'
function Set-RegistryValue {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name,
[Parameter(Mandatory = $true)][string] $PropertyType,
[Parameter(Mandatory = $true)][object] $Value
)
if (-not (Test-Path -LiteralPath $Path)) {
New-Item -Path $Path -Force | Out-Null
}
New-ItemProperty -LiteralPath $Path -Name $Name -PropertyType $PropertyType -Value $Value -Force | Out-Null
}
function Remove-RegistryValue {
param(
[Parameter(Mandatory = $true)][string] $Path,
[Parameter(Mandatory = $true)][string] $Name
)
if (Test-Path -LiteralPath $Path) {
Remove-ItemProperty -LiteralPath $Path -Name $Name -Force -ErrorAction SilentlyContinue
}
}
function Clear-RegistryKeyValues {
param(
[Parameter(Mandatory = $true)][string] $Path
)
if (-not (Test-Path -LiteralPath $Path)) {
return
}
foreach ($propertyName in (Get-Item -LiteralPath $Path).Property) {
Remove-ItemProperty -LiteralPath $Path -Name $propertyName -Force -ErrorAction SilentlyContinue
}
}
# Policy: List of URL patterns for which Chrome DevTools are allowed to be opened
# Name: DeveloperToolsAvailabilityAllowlist
# Scope: Machine
# State: Enabled
# Source: brave.admx
Clear-RegistryKeyValues -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\BraveSoftware\Brave\DeveloperToolsAvailabilityAllowlist'
History 44 retained releases
- 1.97.567 Oct 2026
- Description
… pattern in the blocklist. If a target's URL matches a pattern on
[removed: the][added: this] blocklist (but not the allowlist), it will be blocked. If a target's … are not allowed; use the DeveloperToolsAvailability policy to enable the feature globally.[added: This policy affects Chrome DevTools, direct Chrome DevTools Protocol (CDP) access (for instance, when launched with --remote-debugging-port or --remote-debugging-pipe), and Chrome DevTools Protocol …] This policy is limited to 1,000 entries. Example value: example.com https://ssl.server.com hosting.com/bad_path …Whole description, marked
This policy can be used to allow Chrome DevTools on specific URLs. Chrome DevTools availability is evaluated at the target level. URL patterns are matched against the URL of each target being inspected (such as the main frame of a page, an embedded subframe, an extension, or a web application). The resulting behavior depends on whether the DeveloperToolsAvailabilityBlocklist policy is also set. If this policy is set and DeveloperToolsAvailabilityBlocklist is not, a target's URL must match a pattern on this allowlist for Chrome DevTools to be allowed for that target. If a target's URL does not match this allowlist, Chrome DevTools will be blocked for that target (for example, a subframe whose URL is not on the allowlist cannot be inspected, but the main page remains inspectable if its URL is allowlisted). For information on the URL format, see https://support.google.com/chrome/a?p=url_blocklist_filter_format. If both this and the DeveloperToolsAvailabilityBlocklist policies are set, this allowlist takes precedence. If a target's URL matches a pattern on this allowlist, it will be allowed, even if it also matches a pattern in the blocklist. If a target's URL matches a pattern on
[removed: the][added: this] blocklist (but not the allowlist), it will be blocked. If a target's URL matches neither, the DeveloperToolsAvailability policy will be used as a fallback. If this policy is not set, the availability of Chrome DevTools is determined by the DeveloperToolsAvailabilityBlocklist and DeveloperToolsAvailability policies. Blanket host wildcards (i.e., "*" or "[*]") are not allowed; use the DeveloperToolsAvailability policy to enable the feature globally.[added: This policy affects Chrome DevTools, direct Chrome DevTools Protocol (CDP) access (for instance, when launched with --remote-debugging-port or --remote-debugging-pipe), and Chrome DevTools Protocol (CDP) access via chrome.debugger APIs. Both this policy and the RemoteDebuggingAllowed policy apply: RemoteDebuggingAllowed controls whether remote debugging can start, while this policy restricts whether individual targets can be inspected even when remote debugging is running.] This policy is limited to 1,000 entries. Example value: example.com https://ssl.server.com hosting.com/bad_path https://server:8080/path .exact.hostname.com file://*
- Description
… pattern in the blocklist. If a target's URL matches a pattern on
- 1.96.5924 Sep 2026
- Description
This policy can be used to allow Chrome D…[added: Chrome DevTools availability is evaluated…]URL patterns are matched against the URL …
[removed: every][added: each target being inspected (such as the main] frame[removed: on the page being inspected.][added: of a page, an embedded subframe, an extension, or a …] The resulting behavior depends on whether the Devel…[removed: every frame's][added: a target's] URL must match a pattern on this allowlist for Chrome DevTools to be[removed: allowed.][added: allowed for that target.] If …Whole description, marked
This policy can be used to allow Chrome DevTools on specific URLs. [added: Chrome DevTools availability is evaluated at the target level. ]URL patterns are matched against the URL of
[removed: every][added: each target being inspected (such as the main] frame[removed: on the page being inspected.][added: of a page, an embedded subframe, an extension, or a web application).] The resulting behavior depends on whether the DeveloperToolsAvailabilityBlocklist policy is also set. If this policy is set and DeveloperToolsAvailabilityBlocklist is not,[removed: every frame's][added: a target's] URL must match a pattern on this allowlist for Chrome DevTools to be[removed: allowed.][added: allowed for that target.] If[removed: any frame's][added: a target's] URL does not[removed: match,][added: match this allowlist, Chrome] DevTools will be blocked for [added: that target (for example, a subframe whose URL is not on ]the[removed: entire page.][added: allowlist cannot be inspected, but the main page remains inspectable if its URL is allowlisted).] For information on the URL format, see https://support.google.com/chrome/a?p=url_blocklist_filter_format. If both this and the DeveloperToolsAvailabilityBlocklist policies are set, this allowlist takes precedence. If a[removed: frame's][added: target's] URL matches a pattern on this allowlist, it will be allowed, even if it also matches a pattern in the blocklist. If a [added: target's ]URL matches a pattern on the blocklist (but not the allowlist), it will be blocked. If a [added: target's ]URL matches neither, the DeveloperToolsAvailability policy will be used as a fallback. If this policy is not set, the availability of Chrome DevTools is determined by the DeveloperToolsAvailabilityBlocklist and DeveloperToolsAvailability policies.[removed: This policy also applies to Chrome DevTools opened for extensions and web applications.]Blanket host wildcards (i.e., "*" or "[*]") are not allowed; use the DeveloperToolsAvailability policy to enable the feature globally. This policy is limited to 1,000 entries. Example value: example.com https://ssl.server.com hosting.com/bad_path https://server:8080/path .exact.hostname.com file://*
- Description
This policy can be used to allow Chrome D…[added: Chrome DevTools availability is evaluated…]URL patterns are matched against the URL …
- 1.94.11726 Aug 2026
- Description
… policy also applies to Chrome DevTools opened for extensions and web applications.
[added: Blanket host wildcards (i.e., "*" or "[*]") are not allowed; use the DeveloperToolsAvailability policy to enable the feature globally.
]This policy is limited to 1,000 entries.
Example value:
example.com
https://ssl.server.com
hosting.com/bad_path
…
Whole description, marked
This policy can be used to allow Chrome DevTools on specific URLs. URL patterns are matched against the URL of every frame on the page being inspected. The resulting behavior depends on whether the DeveloperToolsAvailabilityBlocklist policy is also set. If this policy is set and DeveloperToolsAvailabilityBlocklist is not, every frame's URL must match a pattern on this allowlist for Chrome DevTools to be allowed. If any frame's URL does not match, DevTools will be blocked for the entire page. For information on the URL format, see https://support.google.com/chrome/a?p=url_blocklist_filter_format. If both this and the DeveloperToolsAvailabilityBlocklist policies are set, this allowlist takes precedence. If a frame's URL matches a pattern on this allowlist, it will be allowed, even if it also matches a pattern in the blocklist. If a URL matches a pattern on the blocklist (but not the allowlist), it will be blocked. If a URL matches neither, the DeveloperToolsAvailability policy will be used as a fallback. If this policy is not set, the availability of Chrome DevTools is determined by the DeveloperToolsAvailabilityBlocklist and DeveloperToolsAvailability policies. This policy also applies to Chrome DevTools opened for extensions and web applications. [added: Blanket host wildcards (i.e., "*" or "[*]") are not allowed; use the DeveloperToolsAvailability policy to enable the feature globally. ]This policy is limited to 1,000 entries. Example value: example.com https://ssl.server.com hosting.com/bad_path https://server:8080/path .exact.hostname.com file://*
- Description
… policy also applies to Chrome DevTools opened for extensions and web applications.
[added: Blanket host wildcards (i.e., "*" or "[*]") are not allowed; use the DeveloperToolsAvailability policy to enable the feature globally.
]This policy is limited to 1,000 entries.
Example value:
example.com
https://ssl.server.com
hosting.com/bad_path
…
- 1.89.1328 Apr 2026
- Added in this release.
36 later releases left it unchanged.
Template
- Internal name
DeveloperToolsAvailabilityAllowlist- Namespace
BraveSoftware.Policies.Brave- Template file
brave.admx- Release
- Brave Browser 1.97.59 · file set
d6401efd8c1937d9…
Definition, editor controls and support
Definition
<policy class="Both" displayName="$(string.DeveloperToolsAvailabilityAllowlist)" explainText="$(string.DeveloperToolsAvailabilityAllowlist_Explain)" key="Software\Policies\BraveSoftware\Brave" name="DeveloperToolsAvailabilityAllowlist" presentation="$(presentation.DeveloperToolsAvailabilityAllowlist)" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="BraveSoftware.Policies.Brave:brave" />
<supportedOn ref="BraveSoftware.Policies.Brave:SUPPORTED_WIN7" />
<elements>
<list id="DeveloperToolsAvailabilityAllowlistDesc" key="Software\Policies\BraveSoftware\Brave\DeveloperToolsAvailabilityAllowlist" valuePrefix="" />
</elements>
</policy>Editor controls
<presentation id="DeveloperToolsAvailabilityAllowlist" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions"><listBox refId="DeveloperToolsAvailabilityAllowlistDesc">List of URL patterns for which Chrome DevTools are allowed to be opened</listBox></presentation>Supported platforms and category
BraveSoftware.Policies.Brave:category:Cat_Brave
<category displayName="$(string.Cat_Brave)" name="Cat_Brave" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
BraveSoftware.Policies.Brave:category:brave
<category displayName="$(string.brave)" name="brave" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="BraveSoftware.Policies.Brave:Cat_Brave" />
</category>
BraveSoftware.Policies.Brave:definition:SUPPORTED_WIN7
<definition displayName="$(string.SUPPORTED_WIN7)" name="SUPPORTED_WIN7" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
BraveSoftware.Policies.Brave:category:Cat_Brave
<category displayName="$(string.Cat_Brave)" name="Cat_Brave" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
<strings><string id="BraveSoftware.Policies.Brave:Cat_Brave">Brave Software</string></strings>
BraveSoftware.Policies.Brave:category:brave
<category displayName="$(string.brave)" name="brave" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<parentCategory ref="BraveSoftware.Policies.Brave:Cat_Brave" />
</category>
<strings><string id="BraveSoftware.Policies.Brave:brave">Brave</string></strings>
BraveSoftware.Policies.Brave:definition:SUPPORTED_WIN7
<definition displayName="$(string.SUPPORTED_WIN7)" name="SUPPORTED_WIN7" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
<strings><string id="BraveSoftware.Policies.Brave:SUPPORTED_WIN7">Microsoft Windows 7 or later</string></strings>