Skip to content

Commit d9e8d31

Browse files
committed
Rename BlockSettingPage to SettingPageFilter
1 parent 514542b commit d9e8d31

5 files changed

Lines changed: 29 additions & 23 deletions

File tree

BrowserGuard.Tests/ConfigLoaderTests.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ public void ParsesNestedFeatureGroups()
2424
"Enabled": false,
2525
"BlockedExtensions": [".exe", ".zip"]
2626
},
27-
"BlockSettingPage": {
27+
"SettingPageFilter": {
2828
"Enabled": true,
29-
"UrlPrefixes": ["edge://settings/", "edge://flags/"]
29+
"BlockedPrefixes": ["edge://settings/", "edge://flags/"]
3030
}
3131
}
3232
""";
@@ -41,8 +41,8 @@ public void ParsesNestedFeatureGroups()
4141
Assert.False(config.UploadGuard.Enabled);
4242
Assert.Equal(new[] { ".exe", ".zip" }, config.UploadGuard.BlockedExtensions);
4343

44-
Assert.True(config.BlockSettingPage.Enabled);
45-
Assert.Equal(new[] { "edge://settings/", "edge://flags/" }, config.BlockSettingPage.UrlPrefixes);
44+
Assert.True(config.SettingPageFilter.Enabled);
45+
Assert.Equal(new[] { "edge://settings/", "edge://flags/" }, config.SettingPageFilter.BlockedPrefixes);
4646
}
4747

4848
[Fact]
@@ -94,8 +94,8 @@ public void OmittedGroupsFallBackToDefaults()
9494
// Groups that are absent keep their default values.
9595
Assert.False(config.UploadGuard.Enabled);
9696
Assert.Equal(new[] { ".exe", ".bat", ".cmd", ".js", ".vbs" }, config.UploadGuard.BlockedExtensions);
97-
Assert.False(config.BlockSettingPage.Enabled);
98-
Assert.Equal(new[] { "edge://settings/" }, config.BlockSettingPage.UrlPrefixes);
97+
Assert.False(config.SettingPageFilter.Enabled);
98+
Assert.Equal(new[] { "edge://settings/" }, config.SettingPageFilter.BlockedPrefixes);
9999
}
100100

101101
[Fact]

BrowserGuard/ConfigLoader.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ internal class Config
2020
{
2121
public NetLoggerConfig NetLogger { get; set; } = new();
2222
public UploadGuardConfig UploadGuard { get; set; } = new();
23-
public BlockSettingPageConfig BlockSettingPage { get; set; } = new();
23+
public SettingPageFilterConfig SettingPageFilter { get; set; } = new();
2424
}
2525

2626
// Records each kind of operation to the configured endpoint.
@@ -61,10 +61,12 @@ internal class UploadGuardConfig
6161
}
6262

6363
// Blocks navigation to the browser settings pages and similar URLs.
64-
internal class BlockSettingPageConfig
64+
internal class SettingPageFilterConfig
6565
{
6666
public bool Enabled { get; set; }
67-
public string[] UrlPrefixes { get; set; } = ["edge://settings/"];
67+
68+
// Navigation is blocked when the URL starts with one of these.
69+
public string[] BlockedPrefixes { get; set; } = ["edge://settings/"];
6870
}
6971

7072
internal static class ConfigLoader

Resources/BrowserGuard.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
"AllowedPaths": [],
1717
"BlockedPaths": []
1818
},
19-
"BlockSettingPage": {
19+
"SettingPageFilter": {
2020
"Enabled": false,
21-
"UrlPrefixes": ["edge://settings/"]
21+
"BlockedPrefixes": ["edge://settings/"]
2222
}
2323
}

webextensions/edge/background.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ import { StartupLauncher } from './startup-launcher.js';
55
import { ScriptExecutor } from './script-executor.js';
66
import { UploadFileBridge } from './upload-file-bridge.js';
77
import { NetLogger } from './net-logger.js';
8-
import { BlockSettingPage } from './block-setting-page.js';
8+
import { SettingPageFilter } from './setting-page-filter.js';
99

1010
// The URL prefixes come from the config, so register without a filter and
1111
// decide inside the handler instead.
12-
BlockSettingPage.init();
12+
SettingPageFilter.init();
1313
chrome.webNavigation.onBeforeNavigate.addListener(
14-
BlockSettingPage.onBeforeNavigate.bind(BlockSettingPage)
14+
SettingPageFilter.onBeforeNavigate.bind(SettingPageFilter)
1515
);
1616

1717
UploadGuard.init();
Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,28 @@
22

33
import { loadConfig } from './config-loader.js';
44

5-
export const BlockSettingPage = {
5+
export const SettingPageFilter = {
66
enabled: true,
7-
urlPrefixes: ['edge://settings/'],
7+
blockedPrefixes: ['edge://settings/'],
88

99
async init() {
1010
const config = await loadConfig();
11-
const blockSettingPage = config?.BlockSettingPage;
12-
if (!blockSettingPage) return;
13-
if (typeof blockSettingPage.Enabled === 'boolean') {
14-
this.enabled = blockSettingPage.Enabled;
11+
this.applyConfig(config?.SettingPageFilter);
12+
},
13+
14+
// Separated from init so that it can be exercised without the browser.
15+
applyConfig(settingPageFilter) {
16+
if (!settingPageFilter) return;
17+
if (typeof settingPageFilter.Enabled === 'boolean') {
18+
this.enabled = settingPageFilter.Enabled;
1519
}
16-
if (Array.isArray(blockSettingPage.UrlPrefixes)) {
17-
this.urlPrefixes = blockSettingPage.UrlPrefixes;
20+
if (Array.isArray(settingPageFilter.BlockedPrefixes)) {
21+
this.blockedPrefixes = settingPageFilter.BlockedPrefixes;
1822
}
1923
},
2024

2125
isBlockedUrl(url) {
22-
return this.urlPrefixes.some(prefix => url.startsWith(prefix));
26+
return this.blockedPrefixes.some(prefix => url.startsWith(prefix));
2327
},
2428

2529
onBeforeNavigate(details) {

0 commit comments

Comments
 (0)