mirror of
https://github.com/gorhill/uBlock.git
synced 2026-03-11 09:04:36 +00:00
Compare commits
29 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3703f5efb8 | ||
|
|
d92b6f315f | ||
|
|
8f544e53bc | ||
|
|
b230effdbc | ||
|
|
98d3e9500a | ||
|
|
f1689a9ab3 | ||
|
|
a85fc33ce8 | ||
|
|
8d9832b4d6 | ||
|
|
2b63dcdcb6 | ||
|
|
aedaa97867 | ||
|
|
93577ecca1 | ||
|
|
60a1b43d71 | ||
|
|
51c1b4a6ec | ||
|
|
baffd32dab | ||
|
|
2ce376cf1d | ||
|
|
efc59a2fc8 | ||
|
|
c7ff0f8c42 | ||
|
|
1ec05d4c0a | ||
|
|
916d2af99f | ||
|
|
ac017e7664 | ||
|
|
a8ad95394d | ||
|
|
719798329b | ||
|
|
d1877d448b | ||
|
|
0901e9b660 | ||
|
|
c00849befa | ||
|
|
7d95c58408 | ||
|
|
359cb070eb | ||
|
|
7aff7da77d | ||
|
|
9b4f41df94 |
34 changed files with 158 additions and 131 deletions
2
.github/workflows/main.yml
vendored
2
.github/workflows/main.yml
vendored
|
|
@ -12,7 +12,7 @@ jobs:
|
|||
permissions:
|
||||
contents: write # for creating release
|
||||
name: Build packages
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-slim
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
steps:
|
||||
- name: Clone repository
|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
- [Improve `json-edit`-related scriptlets](https://github.com/gorhill/uBlock/commit/98d3e9500a)
|
||||
- [Improve `trusted-create-html` scriptlet](https://github.com/gorhill/uBlock/commit/baffd32dab)
|
||||
- [Improve `prevent-fetch` scriptlet](https://github.com/gorhill/uBlock/commit/2ce376cf1d)
|
||||
- [Fix handling of `extraMatch` parameter in `trusted-click-element` scriptlet](https://github.com/gorhill/uBlock/commit/a8ad95394d)
|
||||
- [Improve `generateContentFn` helper scriptlet](https://github.com/gorhill/uBlock/commit/7d95c58408)
|
||||
- [Improve `prevent-xhr` scriptlet](https://github.com/gorhill/uBlock/commit/168394440c)
|
||||
- [Improve `proxyApplyFn` helper scriptlet](https://github.com/gorhill/uBlock/commit/18a8fc7675)
|
||||
|
||||
|
|
|
|||
4
dist/firefox/updates.json
vendored
4
dist/firefox/updates.json
vendored
|
|
@ -3,13 +3,13 @@
|
|||
"uBlock0@raymondhill.net": {
|
||||
"updates": [
|
||||
{
|
||||
"version": "1.68.1.102",
|
||||
"version": "1.69.1.4",
|
||||
"browser_specific_settings": {
|
||||
"gecko": {
|
||||
"strict_min_version": "115.0"
|
||||
}
|
||||
},
|
||||
"update_link": "https://github.com/gorhill/uBlock/releases/download/1.68.1rc2/uBlock0_1.68.1rc2.firefox.signed.xpi"
|
||||
"update_link": "https://github.com/gorhill/uBlock/releases/download/1.69.1b4/uBlock0_1.69.1b4.firefox.signed.xpi"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
2
dist/version
vendored
2
dist/version
vendored
|
|
@ -1 +1 @@
|
|||
1.69.1.1
|
||||
1.70.0
|
||||
|
|
@ -384,11 +384,11 @@
|
|||
"description": "Text for buttons used to restore content"
|
||||
},
|
||||
"resetToDefaultButton": {
|
||||
"message": "Reset to default settings…",
|
||||
"message": "إعادة تعيين إلى الإعدادات الافتراضية…",
|
||||
"description": "Text for buttons used to reset configurations to default"
|
||||
},
|
||||
"resetToDefaultConfirm": {
|
||||
"message": "All your custom settings will be removed. Do you really want to reset to default settings?",
|
||||
"message": "سيتم حذف جميع إعداداتك المخصصة. هل تريد حقاً إعادة ضبط الإعدادات إلى الوضع الافتراضي؟",
|
||||
"description": "Message asking user to confirm reset to default settings"
|
||||
},
|
||||
"dnrRulesWarning": {
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@
|
|||
"description": "Label of 'Troubleshooting information' section in 'Report a filter issue' page"
|
||||
},
|
||||
"supportS6P1S1": {
|
||||
"message": "Um die Freiwilligen nicht mit doppelten Meldungen zu überlasten, vergewissern Sie sich bitte, dass das Problem noch nicht gemeldet wurde. <b>Hinweis:</b> Das Anklicken der Schaltfläche übermittelt den Ursprung der Seite an GitHub.",
|
||||
"message": "Um die Freiwilligen nicht mit doppelten Meldungen zu überlasten, vergewissern Sie sich bitte, dass das Problem noch nicht gemeldet wurde. <b>Hinweis:</b> Das Anklicken der Schaltfläche übermittelt die Internetadresse an GitHub.",
|
||||
"description": "A paragraph in the filter issue reporter section"
|
||||
},
|
||||
"supportFindSpecificButton": {
|
||||
|
|
@ -156,11 +156,11 @@
|
|||
"description": "An entry in the widget used to select the type of issue"
|
||||
},
|
||||
"supportS6Select1Option1": {
|
||||
"message": "Zeigt Werbung oder Werbereste",
|
||||
"message": "Zeigt Werbung oder deren Überreste",
|
||||
"description": "An entry in the widget used to select the type of issue"
|
||||
},
|
||||
"supportS6Select1Option2": {
|
||||
"message": "Hat Überdeckungen oder andere Belästigungen",
|
||||
"message": "Enthält überdeckende oder belästigende Elemente",
|
||||
"description": "An entry in the widget used to select the type of issue"
|
||||
},
|
||||
"supportS6Select1Option3": {
|
||||
|
|
@ -168,7 +168,7 @@
|
|||
"description": "An entry in the widget used to select the type of issue"
|
||||
},
|
||||
"supportS6Select1Option4": {
|
||||
"message": "Hat Datenschutzprobleme",
|
||||
"message": "Weist Datenschutzprobleme auf",
|
||||
"description": "An entry in the widget used to select the type of issue"
|
||||
},
|
||||
"supportS6Select1Option5": {
|
||||
|
|
@ -196,7 +196,7 @@
|
|||
"description": "The header text for the default filtering mode section"
|
||||
},
|
||||
"defaultFilteringModeDescription": {
|
||||
"message": "Der Standardfiltermodus wird durch individuelle Filtermodi für die jeweiligen Websites überschrieben. Sie können den Filtermodus auf jeder beliebigen Website entsprechend dem Modus anpassen, der auf dieser Website am besten funktioniert. Jeder Modus hat seine Vor- und Nachteile.",
|
||||
"message": "Der Standardfiltermodus wird durch den eingestellten Filtermodus der jeweiligen Website überschrieben. Er kann auf jeder beliebigen Website individuell angepasst werden. Jeder Modus hat seine Vor- und Nachteile.",
|
||||
"description": "This describes the default filtering mode setting"
|
||||
},
|
||||
"filteringMode0Name": {
|
||||
|
|
@ -216,15 +216,15 @@
|
|||
"description": "Name of blocking mode 3"
|
||||
},
|
||||
"basicFilteringModeDescription": {
|
||||
"message": "Einfaches Netzwerkfiltern aus gewählten Filterlisten.\n\nErfordert keine Berechtigung zum Lesen und Ändern von Daten auf Websites.",
|
||||
"message": "Einfaches Netzwerkfiltern durch ausgewählte Filterlisten.\n\nErfordert keine Berechtigung zum Lesen und Ändern von Daten auf Websites.",
|
||||
"description": "This describes the 'basic' filtering mode"
|
||||
},
|
||||
"optimalFilteringModeDescription": {
|
||||
"message": "Erweitertes Netzwerkfiltern plus spezifisches erweitertes Filtern aus ausgewählten Filterlisten.\n\nErfordert eine weitreichende Berechtigung zum Lesen und Ändern von Daten auf allen Websites.",
|
||||
"message": "Erweitertes Netzwerkfiltern plus umfassendes Filtern durch ausgewählte Filterlisten.\n\nErfordert eine weitreichende Berechtigung zum Lesen und Ändern von Daten auf allen Websites.",
|
||||
"description": "This describes the 'optimal' filtering mode"
|
||||
},
|
||||
"completeFilteringModeDescription": {
|
||||
"message": "Erweitertes Netzwerkfiltern plus spezifisches und allgemeines erweitertes Filtern aus gewählten Filterlisten.\n\nErfordert eine weitreichende Berechtigung zum Lesen und Ändern von Daten auf allen Websites.\n\nDas allgemeine erweiterte Filtern kann zu einem höheren Ressourcenverbrauch der Webseite führen.",
|
||||
"message": "Erweitertes Netzwerkfiltern plus umfassendes und allgemeines Filtern durch ausgewählte Filterlisten.\n\nErfordert eine weitreichende Berechtigung zum Lesen und Ändern von Daten auf allen Websites.\n\nDas allgemeine Filtern kann zu einem höheren Ressourcenverbrauch der Webseite führen.",
|
||||
"description": "This describes the 'complete' filtering mode"
|
||||
},
|
||||
"noFilteringModeDescription": {
|
||||
|
|
@ -264,7 +264,7 @@
|
|||
"description": "Short description for a checkbox in the options page"
|
||||
},
|
||||
"settingsBackupRestoreLabel": {
|
||||
"message": "Sicherung",
|
||||
"message": "Backup",
|
||||
"description": "The header text for the back up/restore section"
|
||||
},
|
||||
"settingsBackupRestoreSummary": {
|
||||
|
|
|
|||
|
|
@ -384,11 +384,11 @@
|
|||
"description": "Text for buttons used to restore content"
|
||||
},
|
||||
"resetToDefaultButton": {
|
||||
"message": "Reset to default settings…",
|
||||
"message": "ჩამოყრა ნაგულისხმევ პარამეტრებზე…",
|
||||
"description": "Text for buttons used to reset configurations to default"
|
||||
},
|
||||
"resetToDefaultConfirm": {
|
||||
"message": "All your custom settings will be removed. Do you really want to reset to default settings?",
|
||||
"message": "ყველა მორგებული პარამეტრი მოცილდება. ნამდვილად გსურთ დაბრუნება ნაგულისხმევ პარამეტრებზე?",
|
||||
"description": "Message asking user to confirm reset to default settings"
|
||||
},
|
||||
"dnrRulesWarning": {
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@
|
|||
"description": "English: Click to open the dashboard"
|
||||
},
|
||||
"popupMoreButton": {
|
||||
"message": "자세히",
|
||||
"message": "더 보기",
|
||||
"description": "Label to be used to show popup panel sections"
|
||||
},
|
||||
"popupLessButton": {
|
||||
|
|
@ -72,7 +72,7 @@
|
|||
"description": "Header for a ruleset section in 'Filter lists pane'"
|
||||
},
|
||||
"3pGroupMalware": {
|
||||
"message": "멀웨어 도메인",
|
||||
"message": "멀웨어 및 보안",
|
||||
"description": "Header for a ruleset section in 'Filter lists pane'"
|
||||
},
|
||||
"3pGroupAnnoyances": {
|
||||
|
|
@ -168,7 +168,7 @@
|
|||
"description": "An entry in the widget used to select the type of issue"
|
||||
},
|
||||
"supportS6Select1Option4": {
|
||||
"message": "개인정보 보호 관련 이슈가 있습니다",
|
||||
"message": "개인정보 보호 관련 문제가 있습니다",
|
||||
"description": "An entry in the widget used to select the type of issue"
|
||||
},
|
||||
"supportS6Select1Option5": {
|
||||
|
|
@ -184,7 +184,7 @@
|
|||
"description": "An entry in the widget used to select the type of issue"
|
||||
},
|
||||
"supportS6Checkbox1": {
|
||||
"message": "웹페이지를 \"NSFW\" (<a href=\"https://wikipedia.org/wiki/Not_safe_for_work\">“Not Safe For Work”</a>)로 분류",
|
||||
"message": "웹페이지를 \"NSFW\" (<a href=\"https://ko.wikipedia.org/wiki/NSFW\">“Not Safe For Work”</a>)로 분류",
|
||||
"description": "A checkbox to use for NSFW sites"
|
||||
},
|
||||
"supportReportSpecificButton": {
|
||||
|
|
@ -252,7 +252,7 @@
|
|||
"description": "Label for a checkbox in the options page"
|
||||
},
|
||||
"enableStrictBlockLegend": {
|
||||
"message": "잠재적으로 좋지 않은 사이트로의 접속을 차단하고, 사용자가 진행할지 선택하도록 합니다.",
|
||||
"message": "잠재적으로 유해할 수 있는 사이트로의 접속이 차단되며, 계속 진행할지 여부를 선택할 수 있는 옵션이 제공됩니다.",
|
||||
"description": "Short description for a checkbox in the options page"
|
||||
},
|
||||
"developerModeLabel": {
|
||||
|
|
|
|||
|
|
@ -384,11 +384,11 @@
|
|||
"description": "Text for buttons used to restore content"
|
||||
},
|
||||
"resetToDefaultButton": {
|
||||
"message": "Reset to default settings…",
|
||||
"message": "Đặt lại về cài đặt mặc định…",
|
||||
"description": "Text for buttons used to reset configurations to default"
|
||||
},
|
||||
"resetToDefaultConfirm": {
|
||||
"message": "All your custom settings will be removed. Do you really want to reset to default settings?",
|
||||
"message": "Tất cả cài đặt tùy chỉnh của bạn sẽ bị xóa. Bạn có thực sự muốn đặt lại về cài đặt mặc định không?",
|
||||
"description": "Message asking user to confirm reset to default settings"
|
||||
},
|
||||
"dnrRulesWarning": {
|
||||
|
|
|
|||
|
|
@ -680,7 +680,7 @@ async function startSession() {
|
|||
const shouldInject = isNewVersion || permissionsUpdated ||
|
||||
isSideloaded && rulesetConfig.developerMode;
|
||||
if ( shouldInject ) {
|
||||
registerInjectables();
|
||||
await registerInjectables();
|
||||
}
|
||||
|
||||
// Cosmetic filtering-related content scripts cache fitlering data in
|
||||
|
|
@ -730,6 +730,11 @@ async function start() {
|
|||
scrmgr.onWakeupRun();
|
||||
}
|
||||
|
||||
const scripts = await scrmgr.getRegisteredContentScripts();
|
||||
if ( scripts.length === 0 ) {
|
||||
registerInjectables();
|
||||
}
|
||||
|
||||
toggleDeveloperMode(rulesetConfig.developerMode);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ const reportedPage = (( ) => {
|
|||
}
|
||||
return {
|
||||
hostname: parsedURL.hostname.replace(/^(m|mobile|www)\./, ''),
|
||||
mode: url.searchParams.get('mode'),
|
||||
siteMode: parseInt(url.searchParams.get('mode'), 10),
|
||||
tabId: parseInt(url.searchParams.get('tabid'), 10) || 0,
|
||||
};
|
||||
} catch {
|
||||
|
|
|
|||
|
|
@ -191,16 +191,6 @@
|
|||
],
|
||||
"homeURL": "https://github.com/uBlockOrigin/uAssets"
|
||||
},
|
||||
{
|
||||
"id": "stevenblack-hosts",
|
||||
"name": "Steven Black’s Unified Hosts (adware + malware)",
|
||||
"enabled": false,
|
||||
"excludedPlatforms": [ "safari" ],
|
||||
"urls": [
|
||||
"https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts"
|
||||
],
|
||||
"homeURL": "https://github.com/StevenBlack/hosts#readme"
|
||||
},
|
||||
{
|
||||
"id": "ubol-tests",
|
||||
"name": "uBO Lite Test Filters",
|
||||
|
|
|
|||
|
|
@ -45,10 +45,11 @@ function patchRule(rule, out) {
|
|||
if ( copy.action.type === 'modifyHeaders' ) { return; }
|
||||
if ( Array.isArray(copy.condition.responseHeaders) ) { return; }
|
||||
// https://github.com/uBlockOrigin/uBOL-home/issues/476#issuecomment-3299309478
|
||||
// https://github.com/uBlockOrigin/uBOL-home/issues/608
|
||||
if ( copy.action.redirect?.transform?.queryTransform?.removeParams ) {
|
||||
const resourceTypes = condition.resourceTypes;
|
||||
if ( resourceTypes?.includes('main_frame') ) {
|
||||
condition.resourceTypes = resourceTypes.filter(a => a !== 'main_frame');
|
||||
condition.resourceTypes = resourceTypes.filter(a => a !== 'main_frame' && a !== 'image');
|
||||
if ( condition.resourceTypes.length === 0 ) { return; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@
|
|||
"description": "Tooltip when hovering the top-most cell of the global-rules column."
|
||||
},
|
||||
"popupTipLocalRules": {
|
||||
"message": "القواعد الموضعية: هذا العمود يتعلق بالقواعد التي تنطبق فقط على الموقع المزار حاليا.\nالقواعد الموضعية تحل محل القواعد العامة.",
|
||||
"message": "الشروط المؤقتة: هذا العمود يتعلق بالقواعد التي تنطبق فقط على الموقع المزار حاليا.\nالشروط المؤقتة تحل محل الشروط العامة.",
|
||||
"description": "Tooltip when hovering the top-most cell of the local-rules column."
|
||||
},
|
||||
"popupTipSaveRules": {
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@
|
|||
"description": "Tooltip when hovering the top-most cell of the global-rules column."
|
||||
},
|
||||
"popupTipLocalRules": {
|
||||
"message": "Local rules: this column is for rules which apply to the current site only.\nLocal rules override global rules.",
|
||||
"message": "Local rules: this column is for rules which apply to the current site only.",
|
||||
"description": "Tooltip when hovering the top-most cell of the local-rules column."
|
||||
},
|
||||
"popupTipSaveRules": {
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@
|
|||
"description": "Tooltip when hovering the top-most cell of the global-rules column."
|
||||
},
|
||||
"popupTipLocalRules": {
|
||||
"message": "Local rules: this column is for rules which apply to the current site only.\nLocal rules override global rules.",
|
||||
"message": "Local rules: this column is for rules which apply to the current site only.",
|
||||
"description": "Tooltip when hovering the top-most cell of the local-rules column."
|
||||
},
|
||||
"popupTipSaveRules": {
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@
|
|||
"description": "Tooltip when hovering the top-most cell of the global-rules column."
|
||||
},
|
||||
"popupTipLocalRules": {
|
||||
"message": "Lokale regler: Denne kolonne er til regler kun gældene dette websted.\nLokale regler tilsidesætter globale regler.",
|
||||
"message": "Lokale regler: denne søjle viser de regler der gælder kun på denne side.\nLokale regler overskriver globale regler.",
|
||||
"description": "Tooltip when hovering the top-most cell of the local-rules column."
|
||||
},
|
||||
"popupTipSaveRules": {
|
||||
|
|
|
|||
|
|
@ -216,11 +216,11 @@
|
|||
"description": "Label to be used to hide popup panel sections"
|
||||
},
|
||||
"popupTipGlobalRules": {
|
||||
"message": "Globale Regeln: Diese Spalte ist für Regeln, die für alle Websites gelten.",
|
||||
"message": "Globale Regeln: Die Regeln in dieser Spalte gelten für alle Websites.",
|
||||
"description": "Tooltip when hovering the top-most cell of the global-rules column."
|
||||
},
|
||||
"popupTipLocalRules": {
|
||||
"message": "Lokale Regeln: Diese Spalte ist für Regeln, die nur für die aktuelle Website gelten.\nLokale Regeln überschreiben globale Regeln.",
|
||||
"message": "Lokale Regeln: Die Regeln in dieser Spalte gelten nur für diese Website.",
|
||||
"description": "Tooltip when hovering the top-most cell of the local-rules column."
|
||||
},
|
||||
"popupTipSaveRules": {
|
||||
|
|
@ -416,7 +416,7 @@
|
|||
"description": "English: Last restore:"
|
||||
},
|
||||
"settingsLastBackupPrompt": {
|
||||
"message": "Letzte Sicherung:",
|
||||
"message": "Letztes Backup:",
|
||||
"description": "English: Last backup:"
|
||||
},
|
||||
"3pListsOfBlockedHostsPrompt": {
|
||||
|
|
@ -960,7 +960,7 @@
|
|||
"description": "Header of 'Report a filter issue' section in Support pane"
|
||||
},
|
||||
"supportS6P1S1": {
|
||||
"message": "Um die Freiwilligen nicht mit doppelten Meldungen zu überlasten, vergewissern Sie sich bitte, dass das Problem noch nicht gemeldet wurde. <b>Hinweis:</b> Das Anklicken der Schaltfläche übermittelt den Ursprung der Seite an GitHub.",
|
||||
"message": "Um die Freiwilligen nicht mit doppelten Meldungen zu überlasten, vergewissern Sie sich bitte, dass das Problem noch nicht gemeldet wurde. <b>Hinweis:</b> Das Anklicken der Schaltfläche übermittelt die Internetadresse an GitHub.",
|
||||
"description": "A paragraph in the filter issue reporter section"
|
||||
},
|
||||
"supportS6P2S1": {
|
||||
|
|
@ -984,11 +984,11 @@
|
|||
"description": "An entry in the widget used to select the type of issue"
|
||||
},
|
||||
"supportS6Select1Option1": {
|
||||
"message": "Zeigt Werbung oder Werbereste",
|
||||
"message": "Zeigt Werbung oder deren Überreste",
|
||||
"description": "An entry in the widget used to select the type of issue"
|
||||
},
|
||||
"supportS6Select1Option2": {
|
||||
"message": "Hat Überdeckungen oder andere Belästigungen",
|
||||
"message": "Enthält überdeckende oder belästigende Elemente",
|
||||
"description": "An entry in the widget used to select the type of issue"
|
||||
},
|
||||
"supportS6Select1Option3": {
|
||||
|
|
@ -996,7 +996,7 @@
|
|||
"description": "An entry in the widget used to select the type of issue"
|
||||
},
|
||||
"supportS6Select1Option4": {
|
||||
"message": "Hat Datenschutzprobleme",
|
||||
"message": "Weist Datenschutzprobleme auf",
|
||||
"description": "An entry in the widget used to select the type of issue"
|
||||
},
|
||||
"supportS6Select1Option5": {
|
||||
|
|
@ -1060,7 +1060,7 @@
|
|||
"description": "Text for button to create a backup of all settings"
|
||||
},
|
||||
"aboutBackupFilename": {
|
||||
"message": "ublock-sicherung_{{datetime}}.txt",
|
||||
"message": "ublock-backup_{{datetime}}.txt",
|
||||
"description": "English: my-ublock-backup_{{datetime}}.txt"
|
||||
},
|
||||
"aboutRestoreDataButton": {
|
||||
|
|
@ -1072,7 +1072,7 @@
|
|||
"description": "English: Reset to default settings..."
|
||||
},
|
||||
"aboutRestoreDataConfirm": {
|
||||
"message": "Alle Einstellungen werden überschrieben und auf den Stand vom {{time}} gebracht. Anschließend wird uBlock₀ neu gestartet.\n\nSollen die aktuellen Einstellungen durch die Sicherung ersetzt werden?",
|
||||
"message": "Alle Einstellungen werden überschrieben und auf den Stand vom {{time}} gebracht. Anschließend wird uBlock₀ neu gestartet.\n\nSollen die aktuellen Einstellungen durch das Backup ersetzt werden?",
|
||||
"description": "Message asking user to confirm restore"
|
||||
},
|
||||
"aboutRestoreDataError": {
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@
|
|||
"description": "Tooltip when hovering the top-most cell of the global-rules column."
|
||||
},
|
||||
"popupTipLocalRules": {
|
||||
"message": "Local rules: this column is for rules which apply to the current site only.\nLocal rules override global rules.",
|
||||
"message": "Local rules: this column is for rules which apply to the current site only.",
|
||||
"description": "Tooltip when hovering the top-most cell of the local-rules column."
|
||||
},
|
||||
"popupTipSaveRules": {
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@
|
|||
"description": "Tooltip when hovering the top-most cell of the global-rules column."
|
||||
},
|
||||
"popupTipLocalRules": {
|
||||
"message": "Local rules: this column is for rules which apply to the current site only.\nLocal rules override global rules.",
|
||||
"message": "Local rules: this column is for rules which apply to the current site only.",
|
||||
"description": "Tooltip when hovering the top-most cell of the local-rules column."
|
||||
},
|
||||
"popupTipSaveRules": {
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@
|
|||
"description": "Tooltip when hovering the top-most cell of the global-rules column."
|
||||
},
|
||||
"popupTipLocalRules": {
|
||||
"message": "Local rules: this column is for rules which apply to the current site only.\nLocal rules override global rules.",
|
||||
"message": "Local rules: this column is for rules which apply to the current site only.",
|
||||
"description": "Tooltip when hovering the top-most cell of the local-rules column."
|
||||
},
|
||||
"popupTipSaveRules": {
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@
|
|||
"description": "Tooltip when hovering the top-most cell of the global-rules column."
|
||||
},
|
||||
"popupTipLocalRules": {
|
||||
"message": "Local rules: this column is for rules which apply to the current site only.\nLocal rules override global rules.",
|
||||
"message": "Local rules: this column is for rules which apply to the current site only.",
|
||||
"description": "Tooltip when hovering the top-most cell of the local-rules column."
|
||||
},
|
||||
"popupTipSaveRules": {
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
"description": "English: uBlock₀ — Dashboard"
|
||||
},
|
||||
"dashboardUnsavedWarning": {
|
||||
"message": "경고! 저장되지 않은 변경 사항이 있습니다",
|
||||
"message": "경고: 저장되지 않은 변경 사항이 있습니다!",
|
||||
"description": "A warning in the dashboard when navigating away from unsaved changes"
|
||||
},
|
||||
"dashboardUnsavedWarningStay": {
|
||||
|
|
@ -72,7 +72,7 @@
|
|||
"description": "English: Click: disable/enable uBlock₀ for this site.\n\nCtrl+click: disable uBlock₀ only on this page."
|
||||
},
|
||||
"popupPowerSwitchInfo1": {
|
||||
"message": "클릭: 이 사이트에서 uBlock₀을 끕니다.\n\nCtrl+클릭: 이 페이지에서만 uBlock₀을 끕니다.",
|
||||
"message": "클릭: 이 사이트에서 uBlock₀을 비활성화합니다.\nCtrl+클릭: 이 페이지에서만 uBlock₀을 비활성화합니다.",
|
||||
"description": "Message to be read by screen readers"
|
||||
},
|
||||
"popupPowerSwitchInfo2": {
|
||||
|
|
@ -96,7 +96,7 @@
|
|||
"description": "English: since install"
|
||||
},
|
||||
"popupOr": {
|
||||
"message": "/",
|
||||
"message": "또는",
|
||||
"description": "English: or"
|
||||
},
|
||||
"popupBlockedOnThisPage_v2": {
|
||||
|
|
@ -128,7 +128,7 @@
|
|||
"description": "Tooltip used for the logger icon in the panel"
|
||||
},
|
||||
"popupTipReport": {
|
||||
"message": "이 사이트의 이슈 신고",
|
||||
"message": "이 사이트의 문제 신고",
|
||||
"description": "Tooltip used for the 'chat' icon in the panel"
|
||||
},
|
||||
"popupTipNoPopups": {
|
||||
|
|
@ -136,27 +136,27 @@
|
|||
"description": "Tooltip for the no-popups per-site switch"
|
||||
},
|
||||
"popupTipNoPopups1": {
|
||||
"message": "클릭하여 이 사이트에서 모든 팝업을 차단합니다.",
|
||||
"message": "클릭하여 이 사이트에서 모든 팝업을 차단합니다",
|
||||
"description": "Tooltip for the no-popups per-site switch"
|
||||
},
|
||||
"popupTipNoPopups2": {
|
||||
"message": "클릭하여 이 사이트에서 모든 팝업 차단을 해제합니다.",
|
||||
"message": "클릭하여 이 사이트에서 팝업 차단을 해제합니다",
|
||||
"description": "Tooltip for the no-popups per-site switch"
|
||||
},
|
||||
"popupTipNoLargeMedia": {
|
||||
"message": "이 사이트에서만 적용되는 대형 미디어 구성요소 차단 기능을 켜고 끕니다.",
|
||||
"message": "이 사이트에서만 적용되는 대용량 미디어 요소 차단 기능을 켜고 끕니다",
|
||||
"description": "Tooltip for the no-large-media per-site switch"
|
||||
},
|
||||
"popupTipNoLargeMedia1": {
|
||||
"message": "클릭하여 이 사이트에서 대용량의 미디어를 차단합니다.",
|
||||
"message": "클릭하여 이 사이트에서 대용량 미디어를 차단합니다",
|
||||
"description": "Tooltip for the no-large-media per-site switch"
|
||||
},
|
||||
"popupTipNoLargeMedia2": {
|
||||
"message": "클릭하여 이 사이트에서 대용량의 미디어 차단을 해제합니다.",
|
||||
"message": "클릭하여 이 사이트에서 대용량 미디어 차단을 해제합니다",
|
||||
"description": "Tooltip for the no-large-media per-site switch"
|
||||
},
|
||||
"popupTipNoCosmeticFiltering": {
|
||||
"message": "이 사이트에서 시각적 필터링 토글",
|
||||
"message": "이 사이트에서 요소 숨김 필터링 토글",
|
||||
"description": "Tooltip for the no-cosmetic-filtering per-site switch"
|
||||
},
|
||||
"popupTipNoCosmeticFiltering1": {
|
||||
|
|
@ -168,23 +168,23 @@
|
|||
"description": "Tooltip for the no-cosmetic-filtering per-site switch"
|
||||
},
|
||||
"popupTipNoRemoteFonts": {
|
||||
"message": "이 사이트에서 글꼴조정 차단 토글",
|
||||
"message": "이 사이트에서 외부 폰트 차단 토글",
|
||||
"description": "Tooltip for the no-remote-fonts per-site switch"
|
||||
},
|
||||
"popupTipNoRemoteFonts1": {
|
||||
"message": "클릭하여 이 사이트에서 외부 폰트를 차단합니다.",
|
||||
"message": "클릭하여 이 사이트에서 외부 폰트를 차단합니다",
|
||||
"description": "Tooltip for the no-remote-fonts per-site switch"
|
||||
},
|
||||
"popupTipNoRemoteFonts2": {
|
||||
"message": "클릭하여 이 사이트에서 더 이상 외부 폰트를 차단하지 않습니다.",
|
||||
"message": "클릭하여 이 사이트에서 외부 폰트 차단을 해제합니다",
|
||||
"description": "Tooltip for the no-remote-fonts per-site switch"
|
||||
},
|
||||
"popupTipNoScripting1": {
|
||||
"message": "클릭하여 이 사이트에서 JavaScript 비활성화",
|
||||
"message": "클릭하여 이 사이트에서 JavaScript를 비활성화합니다",
|
||||
"description": "Tooltip for the no-scripting per-site switch"
|
||||
},
|
||||
"popupTipNoScripting2": {
|
||||
"message": "클릭하여 이 사이트에서 JavaScript 활성화",
|
||||
"message": "클릭하여 이 사이트에서 JavaScript를 활성화합니다",
|
||||
"description": "Tooltip for the no-scripting per-site switch"
|
||||
},
|
||||
"popupNoPopups_v2": {
|
||||
|
|
@ -192,7 +192,7 @@
|
|||
"description": "Caption for the no-popups per-site switch"
|
||||
},
|
||||
"popupNoLargeMedia_v2": {
|
||||
"message": "큰 미디어 요소",
|
||||
"message": "대용량 미디어 요소",
|
||||
"description": "Caption for the no-large-media per-site switch"
|
||||
},
|
||||
"popupNoCosmeticFiltering_v2": {
|
||||
|
|
@ -204,11 +204,11 @@
|
|||
"description": "Caption for the no-remote-fonts per-site switch"
|
||||
},
|
||||
"popupNoScripting_v2": {
|
||||
"message": "자바스크립트",
|
||||
"message": "JavaScript",
|
||||
"description": "Caption for the no-scripting per-site switch"
|
||||
},
|
||||
"popupMoreButton_v2": {
|
||||
"message": "더보기",
|
||||
"message": "더 보기",
|
||||
"description": "Label to be used to show popup panel sections"
|
||||
},
|
||||
"popupLessButton_v2": {
|
||||
|
|
@ -240,11 +240,11 @@
|
|||
"description": ""
|
||||
},
|
||||
"popup3pAnyRulePrompt": {
|
||||
"message": "보조 필터",
|
||||
"message": "서드 파티 필터",
|
||||
"description": ""
|
||||
},
|
||||
"popup3pPassiveRulePrompt": {
|
||||
"message": "보조 CSS/이미지",
|
||||
"message": "서드 파티 CSS/이미지",
|
||||
"description": ""
|
||||
},
|
||||
"popupInlineScriptRulePrompt": {
|
||||
|
|
@ -252,15 +252,15 @@
|
|||
"description": ""
|
||||
},
|
||||
"popup1pScriptRulePrompt": {
|
||||
"message": "주 스크립트",
|
||||
"message": "스크립트",
|
||||
"description": ""
|
||||
},
|
||||
"popup3pScriptRulePrompt": {
|
||||
"message": "보조 스크립트",
|
||||
"message": "서드 파티 스크립트",
|
||||
"description": ""
|
||||
},
|
||||
"popup3pFrameRulePrompt": {
|
||||
"message": "보조 프레임",
|
||||
"message": "서드 파티 프레임",
|
||||
"description": ""
|
||||
},
|
||||
"popupHitDomainCountPrompt": {
|
||||
|
|
@ -300,11 +300,11 @@
|
|||
"description": "Element picker preview mode: will cause the elements matching the current filter to be removed from the page"
|
||||
},
|
||||
"pickerNetFilters": {
|
||||
"message": "넷 필터",
|
||||
"message": "네트워크 필터",
|
||||
"description": "English: header for a type of filter in the element picker dialog"
|
||||
},
|
||||
"pickerCosmeticFilters": {
|
||||
"message": "표면 필터",
|
||||
"message": "요소 숨김 필터",
|
||||
"description": "English: Cosmetic filters"
|
||||
},
|
||||
"pickerCosmeticFiltersHint": {
|
||||
|
|
@ -316,7 +316,7 @@
|
|||
"description": "An entry in the browser's contextual menu"
|
||||
},
|
||||
"settingsCollapseBlockedPrompt": {
|
||||
"message": "차단된 구성 요소의 자리 감추기",
|
||||
"message": "차단된 요소의 자리 감추기",
|
||||
"description": "English: Hide placeholders of blocked elements"
|
||||
},
|
||||
"settingsIconBadgePrompt": {
|
||||
|
|
@ -332,7 +332,7 @@
|
|||
"description": "English: Make use of context menu where appropriate"
|
||||
},
|
||||
"settingsColorBlindPrompt": {
|
||||
"message": "색맹 최적화",
|
||||
"message": "색맹 접근성 향상",
|
||||
"description": "English: Color-blind friendly"
|
||||
},
|
||||
"settingsAppearance": {
|
||||
|
|
@ -376,7 +376,7 @@
|
|||
"description": ""
|
||||
},
|
||||
"settingsNoCosmeticFilteringPrompt": {
|
||||
"message": "표면 필터 비활성화",
|
||||
"message": "요소 숨김 필터 비활성화",
|
||||
"description": ""
|
||||
},
|
||||
"settingsNoLargeMediaPrompt": {
|
||||
|
|
@ -384,7 +384,7 @@
|
|||
"description": ""
|
||||
},
|
||||
"settingsNoRemoteFontsPrompt": {
|
||||
"message": "글꼴 조종 차단",
|
||||
"message": "외부 폰트 차단",
|
||||
"description": ""
|
||||
},
|
||||
"settingsNoScriptingPrompt": {
|
||||
|
|
@ -420,7 +420,7 @@
|
|||
"description": "English: Last backup:"
|
||||
},
|
||||
"3pListsOfBlockedHostsPrompt": {
|
||||
"message": "{{netFilterCount}} 네트워크 필터 + {{cosmeticFilterCount}} 표면 필터:",
|
||||
"message": "{{netFilterCount}} 네트워크 필터 + {{cosmeticFilterCount}} 요소 숨김 필터:",
|
||||
"description": "Appears at the top of the _3rd-party filters_ pane"
|
||||
},
|
||||
"3pListsOfBlockedHostsPerListStats": {
|
||||
|
|
@ -440,7 +440,7 @@
|
|||
"description": "A button in the in the _3rd-party filters_ pane"
|
||||
},
|
||||
"3pParseAllABPHideFiltersPrompt1": {
|
||||
"message": "표면 필터 분석 및 적용",
|
||||
"message": "요소 숨김 필터 분석 및 적용",
|
||||
"description": "English: Parse and enforce Adblock+ element hiding filters."
|
||||
},
|
||||
"3pParseAllABPHideFiltersInfo": {
|
||||
|
|
@ -448,7 +448,7 @@
|
|||
"description": "Describes the purpose of the 'Parse and enforce cosmetic filters' feature."
|
||||
},
|
||||
"3pIgnoreGenericCosmeticFilters": {
|
||||
"message": "전체적 표면 필터 무시",
|
||||
"message": "범용 요소 숨김 필터 무시",
|
||||
"description": "This will cause uBO to ignore all generic cosmetic filters."
|
||||
},
|
||||
"3pIgnoreGenericCosmeticFiltersInfo": {
|
||||
|
|
@ -468,7 +468,7 @@
|
|||
"description": "English: Apply changes"
|
||||
},
|
||||
"3pGroupDefault": {
|
||||
"message": "Ublock₀ 제공",
|
||||
"message": "기본 내장",
|
||||
"description": "Filter lists section name"
|
||||
},
|
||||
"3pGroupAds": {
|
||||
|
|
@ -476,11 +476,11 @@
|
|||
"description": "Filter lists section name"
|
||||
},
|
||||
"3pGroupPrivacy": {
|
||||
"message": "개인정보",
|
||||
"message": "개인정보 보호",
|
||||
"description": "Filter lists section name"
|
||||
},
|
||||
"3pGroupMalware": {
|
||||
"message": "멀웨어 도메인",
|
||||
"message": "멀웨어 및 보안",
|
||||
"description": "Filter lists section name"
|
||||
},
|
||||
"3pGroupSocial": {
|
||||
|
|
@ -488,11 +488,11 @@
|
|||
"description": "Filter lists section name"
|
||||
},
|
||||
"3pGroupCookies": {
|
||||
"message": "쿠키 알림",
|
||||
"message": "쿠키 공지",
|
||||
"description": "Filter lists section name"
|
||||
},
|
||||
"3pGroupAnnoyances": {
|
||||
"message": "골칫거리",
|
||||
"message": "방해 요소",
|
||||
"description": "Filter lists section name"
|
||||
},
|
||||
"3pGroupMultipurpose": {
|
||||
|
|
@ -500,7 +500,7 @@
|
|||
"description": "Filter lists section name"
|
||||
},
|
||||
"3pGroupRegions": {
|
||||
"message": "지역, 언어",
|
||||
"message": "지역 및 언어",
|
||||
"description": "Filter lists section name"
|
||||
},
|
||||
"3pGroupCustom": {
|
||||
|
|
@ -740,7 +740,7 @@
|
|||
"description": "A keyword in the built-in row filtering expression"
|
||||
},
|
||||
"loggerRowFiltererBuiltin3p": {
|
||||
"message": "보조",
|
||||
"message": "서드 파티",
|
||||
"description": "A keyword in the built-in row filtering expression"
|
||||
},
|
||||
"loggerEntryDetailsHeader": {
|
||||
|
|
@ -796,7 +796,7 @@
|
|||
"description": "Small header to identify the static filtering section"
|
||||
},
|
||||
"loggerStaticFilteringSentence": {
|
||||
"message": "네트워크 요청이 {{type}} 일 경우,{{br}}URL 주소가 {{url}} 와 일치하고{{br}}{{origin}} 에서 비롯 되었을 경우 {{action}} 한다.{{br}}그리고 다음 예외 필터와 일치할 경우 {{importance}} 한다.",
|
||||
"message": "네트워크 요청이 {{type}} 일 경우,{{br}}URL 주소가 {{url}} 와 일치하고{{br}}{{origin}} 에서 비롯되었을 경우 {{action}} 한다.{{br}}그리고 다음 예외 필터와 일치할 경우 {{importance}} 한다.",
|
||||
"description": "Used in the static filtering wizard"
|
||||
},
|
||||
"loggerStaticFilteringSentencePartBlock": {
|
||||
|
|
@ -836,7 +836,7 @@
|
|||
"description": "Below this sentence, the filter list(s) in which the filter was found"
|
||||
},
|
||||
"loggerStaticFilteringFinderSentence2": {
|
||||
"message": "활성화된 정적 필터 목록에서 <code>{{filter}}</code>를 찾지 못했습니다",
|
||||
"message": "현재 활성화된 필터 목록에서 정적 필터를 찾을 수 없습니다",
|
||||
"description": "Message to show when a filter cannot be found in any filter lists"
|
||||
},
|
||||
"loggerSettingDiscardPrompt": {
|
||||
|
|
@ -928,11 +928,11 @@
|
|||
"description": "Header of 'Filter issues' section in Support pane"
|
||||
},
|
||||
"supportS3P1": {
|
||||
"message": "특정 웹사이트에서 발생하는 필터 이슈는 <span data-url=\"https://github.com/uBlockOrigin/uAssets/issues?q=is%3Aissue\"><code>uBlockOrigin/uAssets</code> 이슈 트래커</span>에 보고해주세요. GitHub 계정이 필요합니다.",
|
||||
"message": "특정 웹사이트에서 발생하는 필터 문제는 <span data-url=\"https://github.com/uBlockOrigin/uAssets/issues?q=is%3Aissue\"><code>uBlockOrigin/uAssets</code> 이슈 트래커</span>에 보고해주세요. GitHub 계정이 필요합니다",
|
||||
"description": "First paragraph of 'Filter issues' section in Support pane"
|
||||
},
|
||||
"supportS3P2": {
|
||||
"message": "<b>중요:</b> uBlock Origin과 유사한 목적의 다른 차단기를 함께 사용하지 마세요. 특정 웹사이트에서 필터 문제가 발생할 수 있습니다.",
|
||||
"message": "<b>중요:</b> uBlock Origin과 유사한 목적의 다른 차단기를 함께 사용하지 마세요. 일부 웹사이트에서 필터 문제가 발생할 수 있습니다.",
|
||||
"description": "Second paragraph of 'Filter issues' section in Support pane"
|
||||
},
|
||||
"supportS3P3": {
|
||||
|
|
@ -952,23 +952,23 @@
|
|||
"description": "Header of 'Troubleshooting Information' section in Support pane"
|
||||
},
|
||||
"supportS5P1": {
|
||||
"message": "다음은 자원 봉사자들이 문제를 해결하는 데에 도움을 줄 때 유용할 수 있는 기술적인 정보입니다.",
|
||||
"message": "다음은 자원봉사자들이 문제를 해결을 돕는 데 유용할 수 있는 기술적인 정보입니다.",
|
||||
"description": "First paragraph of 'Troubleshooting Information' section in Support pane"
|
||||
},
|
||||
"supportS6H": {
|
||||
"message": "필터 이슈 신고",
|
||||
"message": "필터 문제 신고",
|
||||
"description": "Header of 'Report a filter issue' section in Support pane"
|
||||
},
|
||||
"supportS6P1S1": {
|
||||
"message": "봉사자들이 중복 신고로 인해 부담을 겪지 않도록, 해당 이슈가 이미 신고되지는 않았는지 확인해주시기 바랍니다.",
|
||||
"message": "자원봉사자들이 중복 신고로 인해 부담을 겪지 않도록, 해당 문제가 이미 신고되지는 않았는지 확인해주시기 바랍니다. <b>중요:</b> 버튼을 클릭하면 페이지의 출처가 GitHub로 전송됩니다.",
|
||||
"description": "A paragraph in the filter issue reporter section"
|
||||
},
|
||||
"supportS6P2S1": {
|
||||
"message": "필터 목록은 매일 갱신됩니다. 최신 필터 목록에서 문제가 이미 해결되진 않았는지 확인하세요.",
|
||||
"message": "필터 목록은 매일 업데이트됩니다. 최신 필터 목록에서 문제가 이미 해결되었는지 확인해 주세요.",
|
||||
"description": "A paragraph in the filter issue reporter section"
|
||||
},
|
||||
"supportS6P2S2": {
|
||||
"message": "문제가 생긴 웹페이지를 새로고침해도 문제가 여전히 남아 있는지 확인하세요.",
|
||||
"message": "문제가 있는 웹페이지를 새로고침한 후에도 문제가 여전히 발생하는지 확인해 주세요.",
|
||||
"description": "A paragraph in the filter issue reporter section"
|
||||
},
|
||||
"supportS6URL": {
|
||||
|
|
@ -1012,11 +1012,11 @@
|
|||
"description": "An entry in the widget used to select the type of issue"
|
||||
},
|
||||
"supportS6Checkbox1": {
|
||||
"message": "웹페이지를 \"NSFW\" (<a href=\"https://wikipedia.org/wiki/Not_safe_for_work\">“Not Safe For Work”</a>)로 분류",
|
||||
"message": "웹 페이지를 “NSFW” (<a href=\"https://wikipedia.org/wiki/Not_safe_for_work\">“Not Safe For Work”</a>)로 분류",
|
||||
"description": "A checkbox to use for NSFW sites"
|
||||
},
|
||||
"aboutPrivacyPolicy": {
|
||||
"message": "개인정보취급방침",
|
||||
"message": "개인정보 처리방침",
|
||||
"description": "Link to privacy policy on GitHub (English)"
|
||||
},
|
||||
"aboutChangelog": {
|
||||
|
|
@ -1092,31 +1092,31 @@
|
|||
"description": "For the button used to subscribe to a filter list"
|
||||
},
|
||||
"elapsedOneMinuteAgo": {
|
||||
"message": "1 분 전",
|
||||
"message": "1분 전",
|
||||
"description": "English: a minute ago"
|
||||
},
|
||||
"elapsedManyMinutesAgo": {
|
||||
"message": "{{value}} 분 전",
|
||||
"message": "{{value}}분 전",
|
||||
"description": "English: {{value}} minutes ago"
|
||||
},
|
||||
"elapsedOneHourAgo": {
|
||||
"message": "1 시간 전",
|
||||
"message": "1시간 전",
|
||||
"description": "English: an hour ago"
|
||||
},
|
||||
"elapsedManyHoursAgo": {
|
||||
"message": "{{value}} 시간 전",
|
||||
"message": "{{value}}시간 전",
|
||||
"description": "English: {{value}} hours ago"
|
||||
},
|
||||
"elapsedOneDayAgo": {
|
||||
"message": "1 일 전",
|
||||
"message": "1일 전",
|
||||
"description": "English: a day ago"
|
||||
},
|
||||
"elapsedManyDaysAgo": {
|
||||
"message": "{{value}} 일 전",
|
||||
"message": "{{value}}일 전",
|
||||
"description": "English: {{value}} days ago"
|
||||
},
|
||||
"showDashboardButton": {
|
||||
"message": "대쉬보드 보기",
|
||||
"message": "대시보드 보기",
|
||||
"description": "Firefox/Fennec-specific: Show Dashboard"
|
||||
},
|
||||
"showNetworkLogButton": {
|
||||
|
|
@ -1164,7 +1164,7 @@
|
|||
"description": "English: Disable strict blocking for {{hostname}} ..."
|
||||
},
|
||||
"docblockedDisableTemporary": {
|
||||
"message": "이번만",
|
||||
"message": "일시적으로",
|
||||
"description": "English: Temporarily"
|
||||
},
|
||||
"docblockedDisablePermanent": {
|
||||
|
|
@ -1244,7 +1244,7 @@
|
|||
"description": "An entry in the browser's contextual menu"
|
||||
},
|
||||
"contextMenuTemporarilyAllowLargeMediaElements": {
|
||||
"message": "이번만 대형 미디어 구성요소 허용",
|
||||
"message": "일시적으로 대용량 미디어 요소 허용",
|
||||
"description": "A context menu entry, present when large media elements have been blocked on the current site"
|
||||
},
|
||||
"contextMenuViewSource": {
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@
|
|||
"description": "Tooltip when hovering the top-most cell of the global-rules column."
|
||||
},
|
||||
"popupTipLocalRules": {
|
||||
"message": "Local rules: this column is for rules which apply to the current site only.\nLocal rules override global rules.",
|
||||
"message": "Local rules: this column is for rules which apply to the current site only.",
|
||||
"description": "Tooltip when hovering the top-most cell of the local-rules column."
|
||||
},
|
||||
"popupTipSaveRules": {
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@
|
|||
"description": "Tooltip when hovering the top-most cell of the global-rules column."
|
||||
},
|
||||
"popupTipLocalRules": {
|
||||
"message": "Lokale regels: deze kolom is voor regels die alleen op de huidige website van toepassing zijn.\nLokale regels hebben voorrang op algemene regels.",
|
||||
"message": "Lokale regels: deze kolom is voor regels die alleen op de huidige website van toepassing zijn.",
|
||||
"description": "Tooltip when hovering the top-most cell of the local-rules column."
|
||||
},
|
||||
"popupTipSaveRules": {
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@
|
|||
"description": "Tooltip when hovering the top-most cell of the global-rules column."
|
||||
},
|
||||
"popupTipLocalRules": {
|
||||
"message": "Local rules: this column is for rules which apply to the current site only.\nLocal rules override global rules.",
|
||||
"message": "Local rules: this column is for rules which apply to the current site only.",
|
||||
"description": "Tooltip when hovering the top-most cell of the local-rules column."
|
||||
},
|
||||
"popupTipSaveRules": {
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@
|
|||
"description": "Tooltip when hovering the top-most cell of the global-rules column."
|
||||
},
|
||||
"popupTipLocalRules": {
|
||||
"message": "Lokala regler: den här kolumnen avser endast regler som gäller för den aktuella webbplatsen.\nLokala regler åsidosätter globala regler.",
|
||||
"message": "Lokala regler: denna kolumn avser endast regler som gäller för den aktuella webbplatsen.\nLokala regler åsidosätter globala regler.",
|
||||
"description": "Tooltip when hovering the top-most cell of the local-rules column."
|
||||
},
|
||||
"popupTipSaveRules": {
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@
|
|||
"description": "Tooltip when hovering the top-most cell of the global-rules column."
|
||||
},
|
||||
"popupTipLocalRules": {
|
||||
"message": "Локальні правила: цей стовпчик для правил, що застосовуються лише для цього сайту.\nЛокальні правила замінюють глобальні.",
|
||||
"message": "Локальні правила: цей стовпчик для правил, що застосовуються лише цього сайту.\nЛокальні правила замінюють глобальні.",
|
||||
"description": "Tooltip when hovering the top-most cell of the local-rules column."
|
||||
},
|
||||
"popupTipSaveRules": {
|
||||
|
|
|
|||
|
|
@ -486,7 +486,10 @@ export class JSONPath {
|
|||
if ( outcome ) { return k; }
|
||||
}
|
||||
#modifyVal(obj, key) {
|
||||
const { modify, rval } = this.#compiled;
|
||||
let { modify, rval } = this.#compiled;
|
||||
if ( typeof rval === 'string' ) {
|
||||
rval = rval.replace('${now}', `${Date.now()}`);
|
||||
}
|
||||
switch ( modify ) {
|
||||
case undefined:
|
||||
obj[key] = rval;
|
||||
|
|
|
|||
|
|
@ -71,15 +71,12 @@ function trustedCreateHTML(
|
|||
const duration = parseInt(durationStr, 10);
|
||||
const domParser = new DOMParser();
|
||||
const externalDoc = domParser.parseFromString(htmlStr, 'text/html');
|
||||
const docFragment = new DocumentFragment();
|
||||
const toRemove = [];
|
||||
const toAppend = [];
|
||||
while ( externalDoc.body.firstChild !== null ) {
|
||||
const imported = document.adoptNode(externalDoc.body.firstChild);
|
||||
docFragment.appendChild(imported);
|
||||
if ( isNaN(duration) ) { continue; }
|
||||
toRemove.push(imported);
|
||||
toAppend.push(document.adoptNode(externalDoc.body.firstChild));
|
||||
}
|
||||
if ( docFragment.firstChild === null ) { return; }
|
||||
if ( toAppend.length === 0 ) { return; }
|
||||
const toRemove = [];
|
||||
const remove = ( ) => {
|
||||
for ( const node of toRemove ) {
|
||||
if ( node.parentNode === null ) { continue; }
|
||||
|
|
@ -87,10 +84,21 @@ function trustedCreateHTML(
|
|||
}
|
||||
safe.uboLog(logPrefix, 'Node(s) removed');
|
||||
};
|
||||
const appendOne = (target, nodes) => {
|
||||
for ( const node of nodes ) {
|
||||
target.append(node);
|
||||
if ( isNaN(duration) ) { continue; }
|
||||
toRemove.push(node);
|
||||
}
|
||||
};
|
||||
const append = ( ) => {
|
||||
const parent = document.querySelector(parentSelector);
|
||||
if ( parent === null ) { return false; }
|
||||
parent.append(docFragment);
|
||||
const targets = document.querySelectorAll(parentSelector);
|
||||
if ( targets.length === 0 ) { return false; }
|
||||
const limit = Math.min(targets.length, extraArgs.limit || 1) - 1;
|
||||
for ( let i = 0; i < limit; i++ ) {
|
||||
appendOne(targets[i], toAppend.map(a => a.cloneNode(true)));
|
||||
}
|
||||
appendOne(targets[limit], toAppend);
|
||||
safe.uboLog(logPrefix, 'Node(s) appended');
|
||||
if ( toRemove.length === 0 ) { return true; }
|
||||
setTimeout(remove, duration);
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ function preventFetchFn(
|
|||
const propNeedles = parsePropertiesToMatchFn(propsToMatch, 'url');
|
||||
const validResponseProps = {
|
||||
ok: [ false, true ],
|
||||
status: [ 403 ],
|
||||
statusText: [ '', 'Not Found' ],
|
||||
type: [ 'basic', 'cors', 'default', 'error', 'opaque' ],
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1828,7 +1828,7 @@ function trustedClickElement(
|
|||
const pos2 = s2.indexOf('=');
|
||||
const key = pos2 !== -1 ? s2.slice(0, pos2).trim() : s2;
|
||||
const value = pos2 !== -1 ? s2.slice(pos2+1).trim() : '';
|
||||
out.re = new RegExp(`^${this.escapeRegexChars(key)}=${this.escapeRegexChars(value)}`);
|
||||
out.re = new RegExp(`^${safe.escapeRegexChars(key)}=${safe.escapeRegexChars(value)}`);
|
||||
return out;
|
||||
}).filter(details => details !== undefined);
|
||||
const allCookies = assertions.some(o => o.type === 'cookie')
|
||||
|
|
|
|||
|
|
@ -220,6 +220,14 @@ export function generateContentFn(trusted, directive) {
|
|||
warXHR.send();
|
||||
}).catch(( ) => '');
|
||||
}
|
||||
if ( directive.startsWith('join:') ) {
|
||||
const parts = directive.slice(7)
|
||||
.split(directive.slice(5, 7))
|
||||
.map(a => generateContentFn(trusted, a));
|
||||
return parts.some(a => a instanceof Promise)
|
||||
? Promise.all(parts).then(parts => parts.join(''))
|
||||
: parts.join('');
|
||||
}
|
||||
if ( trusted ) {
|
||||
return directive;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4758,6 +4758,7 @@ StaticNetFilteringEngine.prototype.dnrFromCompiled = function(op, context, ...ar
|
|||
if ( rule.condition.resourceTypes === undefined ) {
|
||||
if ( rule.condition.excludedResourceTypes === undefined ) {
|
||||
rule.condition.resourceTypes = [
|
||||
'image',
|
||||
'main_frame',
|
||||
'sub_frame',
|
||||
'xmlhttprequest',
|
||||
|
|
@ -4765,12 +4766,17 @@ StaticNetFilteringEngine.prototype.dnrFromCompiled = function(op, context, ...ar
|
|||
}
|
||||
}
|
||||
// https://github.com/uBlockOrigin/uBOL-home/discussions/575
|
||||
if ( rule.condition.urlFilter === undefined ) {
|
||||
const { urlFilter } = rule.condition;
|
||||
if ( urlFilter === undefined ) {
|
||||
if ( rule.condition.regexFilter === undefined ) {
|
||||
if ( paramName !== '' ) {
|
||||
rule.condition.urlFilter = `^${paramName}=`;
|
||||
}
|
||||
}
|
||||
} else if ( urlFilter.startsWith('||') ) {
|
||||
if ( urlFilter.toLowerCase().includes(paramName.toLowerCase()) === false ) {
|
||||
rule.condition.urlFilter = `${rule.condition.urlFilter}*^${paramName}=`;
|
||||
}
|
||||
}
|
||||
if ( rule.__modifierAction === ALLOW_REALM ) {
|
||||
dnrAddRuleError(rule, `Unsupported removeparam exception: ${rule.__modifierValue}`);
|
||||
|
|
|
|||
Loading…
Reference in a new issue