Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
4f5d7c4
Make Firefox dev build auto-update
gorhill Oct 29, 2025
b0d5116
Update makefile
gorhill Oct 30, 2025
53d60ac
Improve `m3u-prune` scriptlet
gorhill Nov 1, 2025
5639b43
Update changelog
gorhill Nov 1, 2025
b5f7445
Fix custom prefixes unduly assigning trust to external lists
gorhill Nov 1, 2025
7bb4707
Update changelog
gorhill Nov 1, 2025
cb5e9c5
New revision for dev build
gorhill Nov 1, 2025
cd0f5be
Add web-accessible resource for sensors analytics
gorhill Nov 2, 2025
694e3f7
Update changelog
gorhill Nov 2, 2025
a930725
Minor improvement of `editInboundObjectFn` scriptlet
gorhill Nov 2, 2025
52fac1e
Import translation work from https://crowdin.com/project/ublock
gorhill Nov 2, 2025
a509148
[mv3][edge] Filter out rules with `responseHeaders` condition
gorhill Nov 2, 2025
9849b5f
[mv3] Remove "Custom filters" pane when `picker` is forbidden
gorhill Nov 3, 2025
0ca8221
New revision for dev build
gorhill Nov 3, 2025
e099a40
Update submodules
gorhill Nov 4, 2025
7351de0
Update submodules
gorhill Nov 5, 2025
6314b7f
Drop threaded serialization/deserialization
gorhill Nov 6, 2025
16c0f69
[mv3][safari] Rwrite certain `main_frame` + `regexFilter` rules
gorhill Nov 6, 2025
2e509d4
Fix regression in `trusted-replace-argument` scriptlet
gorhill Nov 8, 2025
d228ff8
Update changelog
gorhill Nov 8, 2025
77207ad
New revision for dev build
gorhill Nov 8, 2025
89e5f22
Make Firefox dev build auto-update
gorhill Nov 10, 2025
474273a
Import translation work from https://crowdin.com/project/ublock
gorhill Nov 10, 2025
801b467
[mv3] Auto reload current tab when permissions granted thru browser
gorhill Nov 12, 2025
d8fb800
[mv3][firefox] Fix `instanceof` quirk; fine tune picker CSS
gorhill Nov 14, 2025
d9055b0
[mv3] Minor code review related to permission changes
gorhill Nov 14, 2025
d1987f8
[mv3] Shorten output in build script
gorhill Nov 14, 2025
95ebd70
Import translation work from https://crowdin.com/project/ublock
gorhill Nov 16, 2025
fe95862
[firefox] Signal that no data collection is required
gorhill Nov 17, 2025
b46572e
Improve `prevent-fetch` scriptlet
gorhill Nov 17, 2025
fd105b9
Update changelog
gorhill Nov 17, 2025
64886bd
New revision for dev build
gorhill Nov 17, 2025
42c94d9
Make Firefox dev build auto-update
gorhill Nov 20, 2025
9d76b99
Fix regression in `prevent-fetch` scriptlet
gorhill Nov 20, 2025
abfdcd6
New revision for dev build
gorhill Nov 20, 2025
eae618e
[mv3] Force `ltr` for troubleshooting info
gorhill Nov 21, 2025
cef428e
Import translation work from https://crowdin.com/project/ublock
gorhill Nov 23, 2025
85db7c3
[mv3][edge] Reject `responseheaders` rules only for non-regex rules
gorhill Nov 23, 2025
d2c3d9a
Make Firefox dev build auto-update
gorhill Nov 25, 2025
04ee227
Update submodules
gorhill Nov 26, 2025
b983367
New revision for stable release
gorhill Nov 26, 2025
015ddcd
[firefox] Change minimum required version to 128
gorhill Nov 28, 2025
474723d
[mv3] Improve management of regex-based rules
gorhill Nov 28, 2025
fd12d01
Add `prevent-dialog` scriptlet
gorhill Nov 28, 2025
186f7d1
New revision for dev build
gorhill Nov 28, 2025
95aca83
Update changelog
gorhill Nov 28, 2025
be78200
Fix regression in `prevent-fetch` scriptlet
gorhill Nov 28, 2025
ab3227b
Update changelog
gorhill Nov 28, 2025
cd814ee
[mv3] Improve automatically changing filtering mode
gorhill Nov 29, 2025
967b214
Import translation work from https://crowdin.com/project/ublock
gorhill Nov 30, 2025
9653f20
Update submodules
gorhill Nov 30, 2025
d5793b8
Set Firefox minimum version to 115
gorhill Dec 4, 2025
6039ef2
[mv3] Generate at most two scriptlet-related files per rulesets
gorhill Dec 4, 2025
0aa0d81
[mv3] Re-work specific cosmetic filtering-related content scripts
gorhill Dec 5, 2025
1f8900e
Update submodules
gorhill Dec 5, 2025
87cb6eb
Make Firefox dev build auto-update
gorhill Dec 5, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
- [Fix regression in `prevent-fetch` scriptlet](https://github.com/gorhill/uBlock/commit/be78200c2f)
- [Add `prevent-dialog` scriptlet](https://github.com/gorhill/uBlock/commit/fd12d01928)
- [[firefox] Change minimum required version to 128](https://github.com/gorhill/uBlock/commit/015ddcde29)

----------

# 1.68.0

- [Improve `prevent-fetch` scriptlet](https://github.com/gorhill/uBlock/commit/b46572e938)
- [Fix regression in `trusted-replace-argument` scriptlet](https://github.com/gorhill/uBlock/commit/2e509d42fc)
- [Add web-accessible resource for sensors analytics](https://github.com/gorhill/uBlock/commit/cd0f5be12c)
- [Fix custom prefixes unduly assigning trust to external lists](https://github.com/gorhill/uBlock/commit/b5f74456a4)
- [Improve `m3u-prune` scriptlet](https://github.com/gorhill/uBlock/commit/53d60ac36c)
- [Improve `prevent-fetch` scriptlet](https://github.com/gorhill/uBlock/commit/60e15cb6e1)
- [Fix regex-matching in `JSONPath`](https://github.com/gorhill/uBlock/commit/8491e9c476)
- [Ignore negated request types when validating `redirect` option](https://github.com/gorhill/uBlock/commit/50e898b847)
Expand Down
3 changes: 2 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,8 @@ publish-edge:
ghasset=chromium \
datebasedmajor=1 \
storeid=odfafepnkmbhccpbejgmiehpchacaeak \
productid=$(shell secret-tool lookup token ubo_edge_id)
productid=$(shell secret-tool lookup token ubo_edge_id) \
notes="See release notes at https://github.com/gorhill/uBlock/releases"

# Usage: make publish-firefox version=?
publish-firefox:
Expand Down
4 changes: 2 additions & 2 deletions dist/firefox/updates.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
"[email protected]": {
"updates": [
{
"version": "1.66.5.2",
"version": "1.68.1.0",
"browser_specific_settings": {
"gecko": {
"strict_min_version": "92.0"
}
},
"update_link": "https://github.com/gorhill/uBlock/releases/download/1.66.5b2/uBlock0_1.66.5b2.firefox.signed.xpi"
"update_link": "https://github.com/gorhill/uBlock/releases/download/1.68.1b0/uBlock0_1.68.1b0.firefox.signed.xpi"
}
]
}
Expand Down
2 changes: 1 addition & 1 deletion dist/version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.67.1.1
1.68.1.0
7 changes: 5 additions & 2 deletions platform/firefox/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,13 @@
"browser_specific_settings": {
"gecko": {
"id": "[email protected]",
"strict_min_version": "92.0"
"strict_min_version": "115.0",
"data_collection_permissions": {
"required": [ "none" ]
}
},
"gecko_android": {
"strict_min_version": "92.0"
"strict_min_version": "115.0"
}
},
"commands": {
Expand Down
38 changes: 38 additions & 0 deletions platform/mv3/edge/patch-ruleset.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
/*******************************************************************************
uBlock Origin - a comprehensive, efficient content blocker
Copyright (C) 2025-present Raymond Hill
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see {http://www.gnu.org/licenses/}.
Home: https://github.com/gorhill/uBlock
*/

function patchRule(rule, out) {
const { condition } = rule;
if ( Array.isArray(condition.responseHeaders) ) {
if ( condition.regexFilter === undefined ) { return; }
}
out.push(rule);
return rule;
}

export function patchRuleset(ruleset) {
const out = [];
for ( const rule of ruleset ) {
if ( patchRule(rule, out) ) { continue; }
console.log(`\tReject ${JSON.stringify(rule)}`);
}
return out;
}
4 changes: 2 additions & 2 deletions platform/mv3/extension/_locales/id/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,7 @@
"description": "Label for the menu entry to delete cosmetic filters"
},
"developDropdownLabel": {
"message": "Melihat",
"message": "Melihat:",
"description": "A label of a dropdown list"
},
"developOptionFilteringModeDetails": {
Expand All @@ -348,7 +348,7 @@
"description": "A section header in a dropdown list"
},
"developOptionDynamicRuleset": {
"message": "Aturan dinamis ",
"message": "Aturan dinamis",
"description": "An option in a dropdown list"
},
"developOptionSessionRuleset": {
Expand Down
4 changes: 2 additions & 2 deletions platform/mv3/extension/_locales/it/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"description": "extension name."
},
"extShortDesc": {
"message": "Un efficiente bloccatore dei contenuti. Blocca annunci, tracker, minatori e altro ancora subito dopo l'installazione.",
"message": "Un efficiente bloccatore di contenuti. Blocca annunci, tracker, minatori e altro ancora subito dopo l'installazione.",
"description": "this will be in the Chrome web store: must be 132 characters or less"
},
"perRulesetStats": {
Expand Down Expand Up @@ -184,7 +184,7 @@
"description": "An entry in the widget used to select the type of issue"
},
"supportS6Checkbox1": {
"message": "Contrassegna la pagina web come “NSFW”. (<a href=\"https://wikipedia.org/wiki/Not_safe_for_work\">“Not Safe For Work”</a>)",
"message": "Contrassegna la pagina web come “NSFW”. (<a href=\"https://wikipedia.org/wiki/Not_safe_for_work\">“non adatta ai minori”</a>)",
"description": "A checkbox to use for NSFW sites"
},
"supportReportSpecificButton": {
Expand Down
42 changes: 21 additions & 21 deletions platform/mv3/extension/_locales/ko/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"description": "extension name."
},
"extShortDesc": {
"message": "실험적이고 권한이 적은 콘텐츠 차단기. 광고, 추적기, 채굴기 등을 설치 직후 차단합니다.",
"message": "효율적인 콘텐츠 차단기입니다. 설치 직후 광고, 추적기, 채굴기 등을 즉시 차단합니다.",
"description": "this will be in the Chrome web store: must be 132 characters or less"
},
"perRulesetStats": {
Expand All @@ -20,7 +20,7 @@
"description": "appears as tab name in dashboard"
},
"customFiltersPageName": {
"message": "Custom filters",
"message": "커스텀 필터",
"description": "appears as tab name in dashboard"
},
"developPageName": {
Expand All @@ -40,7 +40,7 @@
"description": "Label in the popup panel for the current filtering mode"
},
"popupLocalToolsLabel": {
"message": "On this website",
"message": "이 웹사이트에서는",
"description": "Label in the popup panel for the local tools section"
},
"popupTipReport": {
Expand Down Expand Up @@ -88,11 +88,11 @@
"description": "Header for a ruleset section in 'Filter lists pane'"
},
"customFiltersImportExportLabel": {
"message": "Import / Export",
"message": "가져오기 / 내보내기",
"description": "Text label heading the import/export area of custom filters"
},
"customFiltersImportTextareaPlaceholder": {
"message": "Paste here specific cosmetic filters to add",
"message": "여기에 추가하려는 표면 필터 붙여넣기",
"description": "Placeholder text which describes the purpose of the textarea widget"
},
"aboutChangelog": {
Expand Down Expand Up @@ -136,11 +136,11 @@
"description": "Label of 'Troubleshooting information' section in 'Report a filter issue' page"
},
"supportS6P1S1": {
"message": "봉사자들이 중복 신고로 인해 부담을 겪지 않도록, 해당 이슈가 이미 신고되지는 않았는지 확인해주시기 바랍니다.",
"message": "자원봉사자들이 중복 신고로 인해 부담을 겪지 않도록, 해당 이슈가 이미 신고되지는 않았는지 확인해 주시기 바랍니다.",
"description": "A paragraph in the filter issue reporter section"
},
"supportFindSpecificButton": {
"message": "유사한 신고 탐색",
"message": "비슷한 신고 내역 찾기",
"description": "A clickable link in the filter issue reporter section"
},
"supportS6URL": {
Expand Down Expand Up @@ -172,7 +172,7 @@
"description": "An entry in the widget used to select the type of issue"
},
"supportS6Select1Option5": {
"message": "uBO Lite를 켜면 깨집니다",
"message": "uBO Lite를 켜면 오작동합니다",
"description": "An entry in the widget used to select the type of issue"
},
"supportS6Select1Option6": {
Expand Down Expand Up @@ -264,15 +264,15 @@
"description": "Short description for a checkbox in the options page"
},
"settingsBackupRestoreLabel": {
"message": "Backup",
"message": "백업",
"description": "The header text for the back up/restore section"
},
"settingsBackupRestoreSummary": {
"message": "Back up your custom settings to a file, or restore your custom settings from a file.",
"message": "사용자 지정 설정을 파일에 백업하거나 파일에서 사용자 지정 설정을 복원합니다.",
"description": "A summary description of the back up/restore section."
},
"settingsBackupRestoreLegend": {
"message": "Restoring will overwrite all your current custom settings.",
"message": "복원 시 현재 설정이 모두 덮어씌워집니다.",
"description": "Important information about the back up/restore section."
},
"findListsPlaceholder": {
Expand Down Expand Up @@ -324,11 +324,11 @@
"description": "Tooltip for the button used to exit zapper mode"
},
"pickerTipEnter": {
"message": "Create a custom filter",
"message": "커스텀 필터 생성",
"description": "Label for the menu entry to create cosmetic filters"
},
"unpickerTipEnter": {
"message": "Remove a custom filter",
"message": "커스텀 필터 삭제",
"description": "Label for the menu entry to delete cosmetic filters"
},
"developDropdownLabel": {
Expand Down Expand Up @@ -364,7 +364,7 @@
"description": "Text for buttons used to revert changes"
},
"addButton": {
"message": "Add",
"message": "추가",
"description": "Text for buttons used to add content"
},
"importAndAppendButton": {
Expand All @@ -376,11 +376,11 @@
"description": "Text for buttons used to export content"
},
"backupButton": {
"message": "Back up…",
"message": "백업…",
"description": "Text for buttons used to back up content"
},
"restoreButton": {
"message": "Restore…",
"message": "복원…",
"description": "Text for buttons used to restore content"
},
"dnrRulesWarning": {
Expand All @@ -392,23 +392,23 @@
"description": "Short sentence to report the number of currently registered DNR rules"
},
"pickerSliderLabel": {
"message": "Move the slider to select the best match",
"message": "슬라이더를 움직여 가장 적합한 항목을 선택하세요",
"description": "Label to describe the purpose of the slider"
},
"pickerPick": {
"message": "Pick",
"message": "선택",
"description": "Text for the button to re-enter element-picking mode"
},
"pickerPreview": {
"message": "Preview",
"message": "미리보기",
"description": "Text for the button to activate preview mode"
},
"pickerCreate": {
"message": "Create",
"message": "생성",
"description": "Text for the button to create the filter"
},
"unpickerUsage": {
"message": "Select a filter below to highlight matching elements in the webpage. Click the trash can to remove a filter.",
"message": "아래의 필터를 선택하면 웹페이지의 일치하는 요소가 강조 표시됩니다. 필터를 삭제하려면 휴지통을 클릭합니다.",
"description": "Summary description on how to use the tool to remove custom filters"
}
}
2 changes: 1 addition & 1 deletion platform/mv3/extension/_locales/lv/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"description": "extension name."
},
"extShortDesc": {
"message": "Bezatļauju satura aizturētājs. Aiztur reklāmas, izsekotājus, kriptoracējus un daudz ko citu uzreiz pēc uzstādīšanas.",
"message": "Iedarbīgs satura aizturētājs. Aiztur reklāmas, izsekotājus, kriptoracējus un vēl uzreiz pēc uzstādīšanas.",
"description": "this will be in the Chrome web store: must be 132 characters or less"
},
"perRulesetStats": {
Expand Down
2 changes: 1 addition & 1 deletion platform/mv3/extension/_locales/tr/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@
"description": "This describes the 'complete' filtering mode"
},
"noFilteringModeDescription": {
"message": "Filtreleme yapılmayacak alan alarının listesi",
"message": "Filtreleme yapılmayacak web sitelerinin listesi.",
"description": "A short description for the editable field which lists trusted sites"
},
"noFilteringModePlaceholder": {
Expand Down
7 changes: 4 additions & 3 deletions platform/mv3/extension/css/picker-ui.css
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
#ubol-picker textarea {
border: 0;
box-sizing: border-box;
font-size: var(--monospace-size);
min-height: 5em;
resize: none;
width: 100%;
Expand All @@ -49,7 +50,7 @@
color: var(--ink-2);
display: flex;
flex-direction: column;
font-size: small;
font-size: var(--monospace-size);
gap: 0.25em;
}
#ubol-picker .resultsetWidgets > span:first-of-type {
Expand All @@ -75,7 +76,7 @@

#ubol-picker #candidateFilters {
font-family: monospace;
font-size: small;
font-size: var(--monospace-size);
max-height: min(20em, 30vh);
min-height: 6em;
overflow-y: auto;
Expand Down Expand Up @@ -111,7 +112,7 @@
color: var(--ink-2);
column-gap: 0;
display: grid;
font-size: small;
font-size: var(--font-size-smaller);
grid-template: auto / 1fr 1fr;
justify-items: stretch;
user-select: none;
Expand Down
8 changes: 7 additions & 1 deletion platform/mv3/extension/css/settings.css
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,19 @@ label + legend {
body[data-forbid~="dashboard"] #dashboard-nav [data-pane="settings"],
body[data-forbid~="dashboard"] section[data-pane="settings"],
body[data-forbid~="dashboard"] #dashboard-nav [data-pane="rulesets"],
body[data-forbid~="dashboard"] section[data-pane="rulesets"] {
body[data-forbid~="dashboard"] section[data-pane="rulesets"],
body[data-forbid~="dashboard"] #dashboard-nav [data-pane="filters"],
body[data-forbid~="dashboard"] section[data-pane="filters"] {
display: none;
}
body[data-forbid~="filteringMode"] section[data-pane="settings"] > div:has(> h3[data-i18n="defaultFilteringModeSectionLabel"]),
body[data-forbid~="filteringMode"] section[data-pane="settings"] > div:has(> h3[data-i18n="filteringMode0Name"]) {
display: none;
}
body[data-forbid~="picker"] #dashboard-nav [data-pane="filters"],
body[data-forbid~="picker"] section[data-pane="filters"] {
display: none;
}
body[data-forbid~="develop"] #developerMode {
display: none;
}
Expand Down
2 changes: 1 addition & 1 deletion platform/mv3/extension/dashboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ <h3 data-i18n="settingsBackupRestoreLabel">_</h3>
</div>
<hr>
<details><summary data-i18n="supportS5H"></summary>
<pre style="user-select: all; -webkit-user-select: all;"></pre>
<pre style="user-select:all; -webkit-user-select:all; direction:ltr;"></pre>
</details>
</div>
</section>
Expand Down
Loading