Merge v2.6.45 into v3.0.0

This commit is contained in:
nobody 2023-01-21 07:36:32 +01:00
commit bbafce3fa4
No known key found for this signature in database
GPG Key ID: 8F6DE3D614FCFD7A
48 changed files with 236 additions and 127 deletions

View File

@ -138,7 +138,7 @@ https://cdnjs.cloudflare.com/ajax/libs/ajax-bootstrap-select/1.4.5/js/ajax-boots
https://cdnjs.cloudflare.com/ajax/libs/algoliasearch/3.35.1/algoliasearch.min.js
https://cdnjs.cloudflare.com/ajax/libs/algoliasearch/4.14.3/algoliasearch.umd.min.js
https://cdnjs.cloudflare.com/ajax/libs/alpinejs/2.8.2/alpine.js
https://cdnjs.cloudflare.com/ajax/libs/alpinejs/3.10.5/cdn.min.js
https://cdnjs.cloudflare.com/ajax/libs/alpinejs/3.11.1/cdn.min.js
https://cdnjs.cloudflare.com/ajax/libs/angucomplete-alt/3.0.0/angucomplete-alt.min.js
https://cdnjs.cloudflare.com/ajax/libs/angular-bootstrap-colorpicker/3.0.32/css/colorpicker.min.css
https://cdnjs.cloudflare.com/ajax/libs/angular-bootstrap-colorpicker/3.0.32/js/bootstrap-colorpicker-module.min.js
@ -184,7 +184,7 @@ https://cdnjs.cloudflare.com/ajax/libs/asciinema-player/2.6.1/asciinema-player.m
https://cdnjs.cloudflare.com/ajax/libs/asciinema-player/2.6.1/asciinema-player.min.js
https://cdnjs.cloudflare.com/ajax/libs/autocomplete.js/0.38.1/autocomplete.min.js
https://cdnjs.cloudflare.com/ajax/libs/axios/0.27.2/axios.min.js
https://cdnjs.cloudflare.com/ajax/libs/axios/1.2.2/axios.min.js
https://cdnjs.cloudflare.com/ajax/libs/axios/1.2.3/axios.min.js
https://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.10/backbone-min.js
https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.4.1/backbone-min.js
https://cdnjs.cloudflare.com/ajax/libs/baguettebox.js/1.11.1/baguetteBox.min.css
@ -314,7 +314,7 @@ https://cdnjs.cloudflare.com/ajax/libs/bxslider/4.2.15/jquery.bxslider.min.js
https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.4/Chart.bundle.min.js
https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.4/Chart.min.css
https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.9.1/chart.min.js
https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.1.1/chart.min.js
https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.2.0/chart.min.js
https://cdnjs.cloudflare.com/ajax/libs/chosen/1.8.7/chosen.jquery.min.js
https://cdnjs.cloudflare.com/ajax/libs/clappr/0.4.7/clappr.min.js
https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js
@ -326,7 +326,7 @@ https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.17/d3.min.js
https://cdnjs.cloudflare.com/ajax/libs/d3/4.13.0/d3.min.js
https://cdnjs.cloudflare.com/ajax/libs/d3/5.16.0/d3.min.js
https://cdnjs.cloudflare.com/ajax/libs/d3/6.7.0/d3.min.js
https://cdnjs.cloudflare.com/ajax/libs/d3/7.8.0/d3.min.js
https://cdnjs.cloudflare.com/ajax/libs/d3/7.8.2/d3.min.js
https://cdnjs.cloudflare.com/ajax/libs/d3-legend/2.25.6/d3-legend.min.js
https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.11.7/dayjs.min.js
https://cdnjs.cloudflare.com/ajax/libs/dexie/3.2.2/dexie.min.js
@ -1159,10 +1159,10 @@ https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.5/styles/zenburn.min.cs
https://cdnjs.cloudflare.com/ajax/libs/history/4.10.1/history.min.js
https://cdnjs.cloudflare.com/ajax/libs/history/5.3.0/history.production.min.js
https://cdnjs.cloudflare.com/ajax/libs/hls.js/0.14.17/hls.min.js
https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.2.9/hls.min.js
https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.3.1/hls.min.js
https://cdnjs.cloudflare.com/ajax/libs/hogan.js/3.0.2/hogan.min.js
https://cdnjs.cloudflare.com/ajax/libs/instantsearch.js/3.7.0/instantsearch.production.min.js
https://cdnjs.cloudflare.com/ajax/libs/instantsearch.js/4.49.3/instantsearch.production.min.js
https://cdnjs.cloudflare.com/ajax/libs/instantsearch.js/4.49.4/instantsearch.production.min.js
https://cdnjs.cloudflare.com/ajax/libs/iScroll/5.2.0/iscroll.min.js
https://cdnjs.cloudflare.com/ajax/libs/izimodal/1.6.1/js/iziModal.min.js
https://cdnjs.cloudflare.com/ajax/libs/jasny-bootstrap/3.1.3/css/jasny-bootstrap.min.css
@ -1264,7 +1264,7 @@ https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.9.3/leaflet.css
https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.9.3/leaflet.js
https://cdnjs.cloudflare.com/ajax/libs/Leaflet.EasyButton/2.4.0/easy-button.min.js
https://cdnjs.cloudflare.com/ajax/libs/leaflet.markercluster/1.5.3/leaflet.markercluster.js
https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.10.15/libphonenumber-js.min.js
https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.10.18/libphonenumber-js.min.js
https://cdnjs.cloudflare.com/ajax/libs/libsodium-wrappers/0.5.4/sodium.min.js
https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.11.3/js/lightbox.min.js
https://cdnjs.cloudflare.com/ajax/libs/lightcase/2.5.0/css/lightcase.min.css
@ -1273,9 +1273,9 @@ https://cdnjs.cloudflare.com/ajax/libs/lightcase/2.5.0/js/lightcase.min.js
https://cdnjs.cloudflare.com/ajax/libs/lightgallery/1.10.0/css/lightgallery.min.css
https://cdnjs.cloudflare.com/ajax/libs/lightgallery/1.10.0/fonts/lg.woff
https://cdnjs.cloudflare.com/ajax/libs/lightgallery/1.10.0/js/lightgallery.min.js
https://cdnjs.cloudflare.com/ajax/libs/lightgallery/2.7.0/css/lightgallery.min.css
https://cdnjs.cloudflare.com/ajax/libs/lightgallery/2.7.0/fonts/lg.woff
https://cdnjs.cloudflare.com/ajax/libs/lightgallery/2.7.0/lightgallery.min.js
https://cdnjs.cloudflare.com/ajax/libs/lightgallery/2.7.1/css/lightgallery.min.css
https://cdnjs.cloudflare.com/ajax/libs/lightgallery/2.7.1/fonts/lg.woff
https://cdnjs.cloudflare.com/ajax/libs/lightgallery/2.7.1/lightgallery.min.js
https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.min.js
https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js
https://cdnjs.cloudflare.com/ajax/libs/lozad.js/1.16.0/lozad.min.js
@ -1491,7 +1491,7 @@ https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.2.0/umd/react-dom.production
https://cdnjs.cloudflare.com/ajax/libs/react-redux/7.2.8/react-redux.min.js
https://cdnjs.cloudflare.com/ajax/libs/react-redux/8.0.5/react-redux.min.js
https://cdnjs.cloudflare.com/ajax/libs/react-router/5.3.3/react-router.min.js
https://cdnjs.cloudflare.com/ajax/libs/react-router/6.6.1/react-router.production.min.js
https://cdnjs.cloudflare.com/ajax/libs/react-router/6.7.0/react-router.production.min.js
https://cdnjs.cloudflare.com/ajax/libs/redux/4.2.0/redux.min.js
https://cdnjs.cloudflare.com/ajax/libs/rickshaw/1.7.1/rickshaw.min.css
https://cdnjs.cloudflare.com/ajax/libs/rickshaw/1.7.1/rickshaw.min.js
@ -1692,6 +1692,8 @@ https://cdnjs.cloudflare.com/ajax/libs/showdown/1.9.1/showdown.min.js
https://cdnjs.cloudflare.com/ajax/libs/showdown/2.1.0/showdown.min.js
https://cdnjs.cloudflare.com/ajax/libs/simplebar/5.3.9/simplebar.min.css
https://cdnjs.cloudflare.com/ajax/libs/simplebar/5.3.9/simplebar.min.js
https://cdnjs.cloudflare.com/ajax/libs/simplebar/6.2.0/simplebar.min.css
https://cdnjs.cloudflare.com/ajax/libs/simplebar/6.2.0/simplebar.min.js
https://cdnjs.cloudflare.com/ajax/libs/simplemde/1.11.2/simplemde.min.css
https://cdnjs.cloudflare.com/ajax/libs/simplemde/1.11.2/simplemde.min.js
https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.css
@ -1702,7 +1704,7 @@ https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.js
https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css
https://cdnjs.cloudflare.com/ajax/libs/slick-lightbox/0.2.12/slick-lightbox.css
https://cdnjs.cloudflare.com/ajax/libs/slick-lightbox/0.2.12/slick-lightbox.min.js
https://cdnjs.cloudflare.com/ajax/libs/slider-pro/1.6.1/js/jquery.sliderPro.min.js
https://cdnjs.cloudflare.com/ajax/libs/slider-pro/1.6.2/js/jquery.sliderPro.min.js
https://cdnjs.cloudflare.com/ajax/libs/snowplow/2.18.2/sp.min.js
https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.4.0/socket.io.min.js
https://cdnjs.cloudflare.com/ajax/libs/socket.io/3.1.3/socket.io.min.js
@ -1785,6 +1787,8 @@ https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/fonts/glyphicons-
https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js
https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.1/css/bootstrap.min.css
https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.1/js/bootstrap.bundle.min.js
https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.1/css/bootstrap.min.css
https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.1/js/bootstrap.bundle.min.js
https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.1/css/bootstrap.min.css
https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.1/js/bootstrap.bundle.min.js
https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.2.3/css/bootstrap.min.css
@ -1820,8 +1824,8 @@ https://cdnjs.cloudflare.com/ajax/libs/video.js/6.13.0/video-js.min.css
https://cdnjs.cloudflare.com/ajax/libs/video.js/6.13.0/video.min.js
https://cdnjs.cloudflare.com/ajax/libs/video.js/7.21.1/video-js.min.css
https://cdnjs.cloudflare.com/ajax/libs/video.js/7.21.1/video.min.js
https://cdnjs.cloudflare.com/ajax/libs/video.js/8.0.2/video-js.min.css
https://cdnjs.cloudflare.com/ajax/libs/video.js/8.0.2/video.min.js
https://cdnjs.cloudflare.com/ajax/libs/video.js/8.0.3/video-js.min.css
https://cdnjs.cloudflare.com/ajax/libs/video.js/8.0.3/video.min.js
https://cdnjs.cloudflare.com/ajax/libs/vue/3.2.45/vue.global.prod.js
https://cdnjs.cloudflare.com/ajax/libs/vue-i18n/8.27.2/vue-i18n.min.js
https://cdnjs.cloudflare.com/ajax/libs/vue-i18n/9.2.2/vue-i18n.cjs.min.js
@ -1848,6 +1852,7 @@ https://cdn.jsdelivr.net/g/algoliasearch@3(algoliasearchLite.min.js),algoliasear
https://cdn.jsdelivr.net/npm/@algolia/autocomplete-js@1.5.4/dist/umd/index.production.min.js
https://cdn.jsdelivr.net/npm/anchor-js@3.2.2/anchor.min.js
https://cdn.jsdelivr.net/npm/anchor-js@4.3.1/anchor.min.js
https://cdn.jsdelivr.net/npm/anchor-js@5.0.0/anchor.min.js
https://cdn.jsdelivr.net/npm/angular-stripe-checkout@5.1.0/angular-stripe-checkout.min.js
https://cdn.jsdelivr.net/npm/appboy-web-sdk@3.5.1/appboy.min.js
https://cdn.jsdelivr.net/npm/docsify-themeable@0.9.0/dist/css/theme-defaults.css
@ -1858,7 +1863,7 @@ https://cdn.jsdelivr.net/npm/instantsearch.css@7.4.5/themes/algolia-min.css
https://cdn.jsdelivr.net/npm/instantsearch.css@8.0.0/themes/algolia-min.css
https://cdn.jsdelivr.net/npm/in-view@0.6.1/dist/in-view.min.js
https://cdn.jsdelivr.net/npm/leaflet.featuregroup.subgroup@1.0.2/dist/leaflet.featuregroup.subgroup.js
https://cdn.jsdelivr.net/npm/ngx-bootstrap@10.2.0/datepicker/bs-datepicker.css
https://cdn.jsdelivr.net/npm/ngx-bootstrap@10.2.1/datepicker/bs-datepicker.css
https://cdn.jsdelivr.net/npm/ngx-bootstrap@6.2.0/datepicker/bs-datepicker.css
https://cdn.jsdelivr.net/npm/object-assign@4.1.1/index.js
https://cdn.jsdelivr.net/npm/p2p-media-loader-core@0.6.2/build/p2p-media-loader-core.min.js
@ -1874,8 +1879,8 @@ https://cdn.jsdelivr.net/npm/swiper@6.8.4/swiper-bundle.min.css
https://cdn.jsdelivr.net/npm/swiper@6.8.4/swiper-bundle.min.js
https://cdn.jsdelivr.net/npm/swiper@7.4.1/swiper-bundle.min.css
https://cdn.jsdelivr.net/npm/swiper@7.4.1/swiper-bundle.min.js
https://cdn.jsdelivr.net/npm/swiper@8.4.5/swiper-bundle.min.css
https://cdn.jsdelivr.net/npm/swiper@8.4.5/swiper-bundle.min.js
https://cdn.jsdelivr.net/npm/swiper@8.4.6/swiper-bundle.min.css
https://cdn.jsdelivr.net/npm/swiper@8.4.6/swiper-bundle.min.js
https://cdn.jsdelivr.net/npm/urlize.js/urlize.js
https://cdn.jsdelivr.net/npm/vanilla-lazyload@17.8.3/dist/lazyload.min.js
https://cdn.jsdelivr.net/npm/videojs-seek-buttons@1.6.0/dist/videojs-seek-buttons.css
@ -1884,8 +1889,8 @@ https://cdn.jsdelivr.net/npm/videojs-seek-buttons@2.2.1/dist/videojs-seek-button
https://cdn.jsdelivr.net/npm/videojs-seek-buttons@2.2.1/dist/videojs-seek-buttons.min.js
https://cdn.jsdelivr.net/npm/videojs-seek-buttons@3.0.1/dist/videojs-seek-buttons.css
https://cdn.jsdelivr.net/npm/videojs-seek-buttons@3.0.1/dist/videojs-seek-buttons.min.js
https://cdn.jsdelivr.net/npm/videojs-seek-buttons@4.0.1/dist/videojs-seek-buttons.css
https://cdn.jsdelivr.net/npm/videojs-seek-buttons@4.0.1/dist/videojs-seek-buttons.min.js
https://cdn.jsdelivr.net/npm/videojs-seek-buttons@4.0.2/dist/videojs-seek-buttons.css
https://cdn.jsdelivr.net/npm/videojs-seek-buttons@4.0.2/dist/videojs-seek-buttons.min.js
https://cdn.jsdelivr.net/npm/vue@1.0.28/dist/vue.min.js
https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.min.js
https://cdn.jsdelivr.net/npm/vue-match-media@1.0.3/dist/index.min.js

View File

@ -20,11 +20,11 @@
"description": "Show icon badge description."
},
"blockMissingTitle": {
"message": "阻止缺失资源的请求",
"message": "阻止缺失资源的请求",
"description": "Block requests for missing resources title"
},
"blockMissingDescription": {
"message": "如果请求的资源在本地不可用,则取消当前被拦截的请求。",
"message": "即使所需的资源在本地不可用,也取消拦截的请求。",
"description": "Block requests for missing resources description."
},
"disablePrefetchTitle": {
@ -112,7 +112,7 @@
"description": "Do not apply HTML filter to these domains:"
},
"htmlFilterDomainsDescription": {
"message": "输入 HTML 过滤器要处理或忽略的域名,每行一个。",
"message": "输入要由 HTML 过滤器处理或忽略处理的域名,一行一个。",
"description": "Enter the domains to be handled or ignored by the HTML filter. One entry per line."
},
"htmlFilterDomainsTitleInclude": {
@ -176,7 +176,7 @@
"description": "Are you sure you want to delete all the statistics?"
},
"labelDomainsAllowlistGoogleFonts": {
"message": "允许以下域名加载 Google Fonts行一个。",
"message": "允许以下域名加载 Google Fonts行一个。",
"description": "These domains are allowed to load Google Fonts. One entry per line."
},
"btnGeneral": {
@ -300,7 +300,7 @@
"description": "Browser compatibility"
},
"helpIntroductionDescription": {
"message": "LocalCDN 是一个 web 浏览器扩展,模拟内容交付网络,以改善您的在线隐私。它拦截流量,在本地找到支持的框架/库,并将它们注入网站。请随意使用下面的测试实用程序来确定您是否得到了适当的保护。欲了解更多信息,请阅读教程或我们的维基页面。",
"message": "LocalCDN 是一个用于本地模拟内容交付网络CDN的网页浏览器扩展可以改善您的在线隐私。它能够拦截请求找出本地支持的框架/库,并将它们注入网站,从而避免向内容交付网络发出请求。请随意使用下面的测试实用程序来确定您是否真正得到保护。欲了解更多信息,请阅读教程浏览我们的维基页面。",
"description": "LocalCDN is a web browser extension that emulates Content Delivery Networks to improve your online privacy. It intercepts traffic, finds supported frameworks/libraries locally, and injects them into the website. Feel free to use the following testing utility to find out if you are properly protected. For more information read the tutorial or our Wiki pages."
},
"helpLinkTestUtility": {
@ -328,15 +328,15 @@
"description": "The result then looks like this:"
},
"helpHtmlFilterWhyTitle": {
"message": "为何必需删除交叉起源和完整性属性?",
"message": "为何必须删除 crossorigin 和 integrity 这两个属性?",
"description": "Why is it necessary to remove crossorigin and integrity attributes?"
},
"helpHtmlFilterCrossorigin": {
"message": "crossorigin 属性阻止替换,因为目标与请求的目标不匹配。",
"message": "crossorigin 属性阻止替换请求,因为被替换请求的目标来源origin原始请求的目标来源不匹配。",
"description": "The crossorigin attribute prevents the replacement because the destination does not match the requested one."
},
"helpHtmlFilterIntegrity": {
"message": "为了节省磁盘空间和交付更多的框架LocalCDN 升级了一个框架。完整性标记是文件的散列值。如果检查失败,浏览器将不包含框架。完整性检查将失败,因为例如 jQuery 1.10.1和 jQuery 1.12.4的散列值是不同的。",
"message": "为了节省磁盘空间交付更多的框架LocalCDN 会使用更新版本的框架来代替略旧版本的相同框架。完整性标记是文件的哈希值hash正常情况下只有两个文件完全相同它们的哈希值才会相同。如果框架的完整性检查失败浏览器将拒绝包含框架。综合上述情况完整性检查的确会失败因为例如 jQuery 1.10.1 和 jQuery 1.12.4 的哈希值是不同的。",
"description": "To save disk space and to deliver more frameworks LocalCDN upgrades a framework. An integrity tag is the hash value of a file. If the check fails, the browser wont include a framework. The integrity check will fail because the hash values for e.g. jQuery 1.10.1 and jQuery 1.12.4 are different."
},
"helpHtmlFilterErrors": {
@ -380,7 +380,7 @@
"description": "Hard"
},
"helpWebsiteIssuesDescription": {
"message": "有两个可能的原因:要么是需要一个框架/库,但 LocalCDN (还)没有交付,要么是一个 SOP 。SOP (同源策略)是一种安全机制,它决定了浏览器允许加载哪些数据。它有助于隔离恶意文档,从而减少可能的攻击向量。此策略阻止浏览器加载其外部框架。不幸的是,目前没有解决办法。",
"message": "有两个可能的原因:要么是 LocalCDN没有包含某个需要的框架或库要么是被 SOP同源策略屏蔽了。同源策略是一种用于确定浏览器可以加载哪些数据的安全机制。它有助于隔离恶意文档,从而减少可能的攻击向量。此策略阻止浏览器从 LocalCDN 加载其外部框架。不幸的是,目前对此还没有解决办法。",
"description": "There are two possible reasons: Either a framework/library is required that LocalCDN doesnt (yet) deliver or an SOP. A SOP (Same origin policy) is a security mechanism that determines what data the browser is allowed to load. It helps to isolate malicious documents and thus reduce possible attack vectors. This policy prevents the browser from loading the external frameworks of LocalCDN. Unfortunately there is no solution for this at the moment."
},
"helpBlockGoogleFontsDescription": {
@ -404,7 +404,7 @@
"description": "The extension storage can be viewed directly with the Firefox browser. Open the URL »about:debugging«, switch to »Storage« and select »Extension Storage«. Under the key »internalStatisticsData« you will find the collected data. Just copy it and put it into a JSON PrettyPrinter to make it more readable. Please note that you have to remove the first and last quotation mark and the key to it. You should be able to see this clearly in this video."
},
"helpSyncTitle": {
"message": "有哪些东西会被同步,当我选择 »同步« 作为存储类型?",
"message": "当我选择 »同步« 作为存储类型时,有哪些东西会被同步",
"description": "What will be synchronized when I select »sync« as storage type?"
},
"helpSyncDescription": {

View File

@ -440,13 +440,14 @@ const BadResources = {
const LogString = {
'PREFIX': '[ LocalCDN ]',
'FONT_AWESOME': 'Font Awesome is not fully supported by your browser.',
'NOT_SUPPORTED': 'is not fully supported by your browser.',
'GOOGLE_MATERIAL_ICONS': 'Google Material Icons are not fully supported by your browser.',
'YANDEX': 'Workaround. Disable LocalCDN if website and CDN are the same',
'REPLACED_RESOURCE': 'Replaced resource:',
'MISSING_RESOURCE': 'Missing resource:',
'EVIL_RESOURCE_BLOCKED': 'Evil resource blocked:',
'NON_GET_REQUEST_BLOCKED': 'Non-GET-Request blocked',
'IFRAME': 'Possible iframe request:',
};
// Supported charsets for TextDecoder()

View File

@ -31,7 +31,14 @@ var interceptor = {};
*/
interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) {
let validCandidate, targetDetails, targetDomain, isGoogleFont, isGoogleMaterialIcons, initiatorDomain, isListed;
let validCandidate, targetDetails, targetDomain, isGoogleFont, isGoogleMaterialIcons, initiatorDomain, isListed,
iframe;
iframe = '';
if (tab.url !== requestDetails.originUrl) {
console.log(`${LogString.PREFIX} ${LogString.IFRAME} ${tab.url} -> ${requestDetails.originUrl}`);
iframe = requestDetails.originUrl;
}
if (requestDetails['type'] === WebRequestType.MAIN_FRAME &&
helpers.checkAllowlisted(
@ -57,7 +64,7 @@ interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) {
// Block POST, HEAD, PUT, DELETE, TRACE, OPTIONS
if (BlockedRequestMethods[requestDetails.method]) {
console.warn(`${LogString.PREFIX} ${LogString.NON_GET_REQUEST_BLOCKED}`);
log.append(tab.url, requestDetails.url, LogString.NON_GET_REQUEST_BLOCKED, true);
log.append(tab.url, requestDetails.url, LogString.NON_GET_REQUEST_BLOCKED, true, iframe);
return {
'cancel': true
};
@ -72,7 +79,7 @@ interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) {
if (interceptor._isBadResource(requestDetails.url)) {
console.log(`${LogString.PREFIX} ${LogString.EVIL_RESOURCE_BLOCKED} ${requestDetails.url}`);
log.append(tab.url, requestDetails.url, '-', true);
log.append(tab.url, requestDetails.url, '-', true, iframe);
return {
'cancel': true
};
@ -105,7 +112,7 @@ interceptor.handleRequest = function (requestDetails, tabIdentifier, tab) {
}
console.log(`${LogString.PREFIX} ${LogString.REPLACED_RESOURCE} ${targetDetails.path}`);
log.append(tab.url, requestDetails.url, targetDetails.path, false);
log.append(tab.url, requestDetails.url, targetDetails.path, false, iframe);
return {
'redirectUrl': chrome.runtime.getURL(targetDetails.path + fileGuard.secret)

View File

@ -52,9 +52,10 @@ requestAnalyzer.isValidCandidate = function (requestDetails, tabDetails) {
// Font Awesome injections in Chromium deactivated (https://gitlab.com/nobody42/localcdn/-/issues/67)
if (!BrowserType.FIREFOX) {
if (requestDetails.url.includes('font-awesome') || requestDetails.url.includes('fontawesome')) {
console.warn(`${LogString.PREFIX} ${LogString.FONT_AWESOME}`);
log.append(tabDetails.url, requestDetails.url, LogString.FONT_AWESOME, true);
let requestType = requestAnalyzer.chromeSupport(requestDetails.url);
if (requestType !== '') {
console.warn(`${LogString.PREFIX} ${requestType} ${LogString.NOT_SUPPORTED}`);
log.append(tabDetails.url, requestDetails.url, `${requestType} ${LogString.NOT_SUPPORTED}`, true);
return false;
}
}
@ -69,6 +70,20 @@ requestAnalyzer.isValidCandidate = function (requestDetails, tabDetails) {
return requestDetails.method === WebRequest.GET;
};
requestAnalyzer.chromeSupport = function (url) {
let value = '';
if (url.includes('font-awesome')) {
value = 'font-awesome';
} else if (url.includes('fontawesome')) {
value = 'font-awesome';
} else if (url.includes('fork-awesome')) {
value = 'fork-awesome';
}
return value;
};
requestAnalyzer.isGoogleMaterialIcons = function (url) {
return url.includes('Material+Icons') || url.includes('materialicons');
};

View File

@ -64,11 +64,11 @@ shorthands.specialFiles = function (channelHost, channelPath, searchString) {
'bundle': ''
};
} else if (channelPath.endsWith(MaterialIcons.DEFAULT)) {
lastVersion = targets.setLastVersion('/google-material-design-icons/');
lastVersion = targets.setLastVersion('/materialicons/');
return {
'source': channelHost,
'versionDelivered': lastVersion,
'path': `resources/google-material-design-icons/${lastVersion}/MaterialIcons.woff2`,
'path': `resources/google-material-design-icons/materialicons/${lastVersion}/MaterialIcons.woff2`,
'bundle': ''
};
} else if (Regex.BOOTSTRAP_DATEPICKER_3.test(channelPath)) {

View File

@ -21,10 +21,10 @@
var log = {};
log.append = function (initiator, resource, target, highlight) {
log.append = function (initiator, resource, target, highlight, iframe = '') {
storageManager.type.get(Setting.LOGGING, function (items) {
if (items.enableLogging) {
log.data.push({initiator, resource, target, highlight});
log.data.push({initiator, resource, target, highlight, iframe});
}
});
};

View File

@ -82,9 +82,10 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/algoliasearch/3.')) return '3.35.1';
if (type.startsWith('/algoliasearch/4.')) return '4.14.3';
if (type.startsWith('/alpinejs/2.')) return '2.8.2';
if (type.startsWith('/alpinejs/3.')) return '3.10.5';
if (type.startsWith('/alpinejs/3.')) return '3.11.1';
if (type.startsWith('/anchor-js/3.')) return '3.2.2';
if (type.startsWith('/anchor-js/4.')) return '4.3.1';
if (type.startsWith('/anchor-js/5.')) return '5.0.0';
if (type.startsWith('/angular.js/1.')) {
if (helpers.compareVersion('1.0.8', version)) return '1.0.8'; // <= v1.0.8
if (helpers.compareVersion('1.2.19', version)) return '1.2.19'; // > v1.0.8 to <= v1.2.19
@ -135,7 +136,7 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/appboy-web-sdk/3.')) return '3.5.1';
if (type.startsWith('/asciinema-player/2.')) return '2.6.1';
if (type.startsWith('/axios/0.')) return '0.27.2';
if (type.startsWith('/axios/1.')) return '1.2.2';
if (type.startsWith('/axios/1.')) return '1.2.3';
if (type.startsWith('/backbone.js/0.')) return '0.9.10';
if (type.startsWith('/backbone.js/1.')) return '1.4.1';
if (type.startsWith('/baguettebox.js/1.')) return '1.11.1';
@ -170,7 +171,7 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/bxslider/4.')) return '4.2.15';
if (type.startsWith('/Chart.js/2.')) return '2.9.4';
if (type.startsWith('/Chart.js/3.')) return '3.9.1';
if (type.startsWith('/Chart.js/4.')) return '4.1.1';
if (type.startsWith('/Chart.js/4.')) return '4.2.0';
if (type.startsWith('/clappr/0.') || type.startsWith('/clappr/latest/')) return '0.4.7';
if (type.startsWith('/chosen/1.')) return '1.8.7';
if (type.startsWith('/clipboard.js/1.')) return '1.7.1';
@ -182,7 +183,7 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/d3/4.')) return '4.13.0';
if (type.startsWith('/d3/5.')) return '5.16.0';
if (type.startsWith('/d3/6.')) return '6.7.0';
if (type.startsWith('/d3/7.')) return '7.8.0';
if (type.startsWith('/d3/7.')) return '7.8.2';
if (type.startsWith('/d3-legend/2.')) return '2.25.6';
if (type.startsWith('/datatables/1.')) return '1.11.0';
if (type.startsWith('/dayjs/1.')) return '1.11.7';
@ -217,15 +218,11 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/gsap/1.')) return '1.20.5';
if (type.startsWith('/gsap/2.')) return '2.1.3';
if (type.startsWith('/gsap/3.')) return '3.11.4';
// just for testing ----------------------------------------------
if (type.startsWith('/materialicons/')) return 'v139';
if (type.startsWith('/materialiconsoutlined/')) return 'v108';
if (type.startsWith('/materialiconsround/')) return 'v107';
if (type.startsWith('/materialiconssharp/')) return 'v108';
if (type.startsWith('/materialiconstwotone/')) return 'v111';
// ---------------------------------------------------------------
if (type.startsWith('/highlight.js/7.')) return '9.18.5';
if (type.startsWith('/highlight.js/8.')) return '9.18.5';
if (type.startsWith('/highlight.js/9.')) return '9.18.5';
@ -234,12 +231,12 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/history/4.')) return '4.10.1';
if (type.startsWith('/history/5.')) return '5.3.0';
if (type.startsWith('/hls.js/0.')) return '0.14.17';
if (type.startsWith('/hls.js/1.')) return '1.2.9';
if (type.startsWith('/hls.js/1.')) return '1.3.1';
if (type.startsWith('/hogan.js/')) return '3.0.2';
if (type.startsWith('/instantsearch.css/7.')) return '7.4.5';
if (type.startsWith('/instantsearch.css/8.')) return '8.0.0';
if (type.startsWith('/instantsearch.js/3.')) return '3.7.0';
if (type.startsWith('/instantsearch.js/4.')) return '4.49.3';
if (type.startsWith('/instantsearch.js/4.')) return '4.49.4';
if (type.startsWith('/in-view/0.')) return '0.6.1';
if (type.startsWith('/iScroll/5.')) return '5.2.0';
if (type.startsWith('/izimodal/1.')) return '1.6.1';
@ -315,12 +312,12 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/Leaflet.EasyButton/2.')) return '2.4.0';
if (type.startsWith('/leaflet.featuregroup.subgroup/1.')) return '1.0.2';
if (type.startsWith('/leaflet.markercluster/1.')) return '1.5.3';
if (type.startsWith('/libphonenumber-js/1.')) return '1.10.15';
if (type.startsWith('/libphonenumber-js/1.')) return '1.10.18';
if (type.startsWith('/libsodium-wrappers/0.')) return '0.5.4';
if (type.startsWith('/lightbox2/2.')) return '2.11.3';
if (type.startsWith('/lightcase/2.')) return '2.5.0';
if (type.startsWith('/lightgallery/1.')) return '1.10.0';
if (type.startsWith('/lightgallery/2.')) return '2.7.0';
if (type.startsWith('/lightgallery/2.')) return '2.7.1';
if (type.startsWith('/lodash.js/3.')) return '3.10.1';
if (type.startsWith('/lodash.js/4.')) return '4.17.21';
if (type.startsWith('/lozad')) return '1.16.0';
@ -358,7 +355,7 @@ targets.setLastVersion = function (type, version) {
// The only resource used from ngx-bootstrap is the CSS file for the datepicker.
// This CSS is unchanged since version 7. So it's not necessary to host it more than once.
if (helpers.compareVersion('6.2.0', version)) return '6.2.0'; // <= v6.2.0
return '10.2.0';
return '10.2.1';
}
if (type.startsWith('/ngx-bootstrap/7.')) return '7.1.2';
if (type.startsWith('/ngx-bootstrap/8.')) return '8.0.0';
@ -403,7 +400,7 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/react-redux/7.')) return '7.2.8';
if (type.startsWith('/react-redux/8.')) return '8.0.5';
if (type.startsWith('/react-router/5.')) return '5.3.3';
if (type.startsWith('/react-router/6.')) return '6.6.1';
if (type.startsWith('/react-router/6.')) return '6.7.0';
if (type.startsWith('/react-side-effect/')) return '2.1.2';
if (type.startsWith('/react-lifecycles-compat/')) return '3.0.4';
if (type.startsWith('/redux/4.')) return '4.2.0';
@ -419,14 +416,15 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/showdown/0.')) return '0.5.1';
if (type.startsWith('/showdown/1.')) return '1.9.1';
if (type.startsWith('/showdown/2.')) return '2.1.0';
if (type.startsWith('/simplebar/')) return '5.3.9';
if (type.startsWith('/simplebar/5.')) return '5.3.9';
if (type.startsWith('/simplebar/6.')) return '6.2.0';
if (type.startsWith('/simplemde/')) return '1.11.2';
if (type.startsWith('/slick-carousel/1.')) {
if (helpers.compareVersion('1.8.1', version)) return '1.8.1'; // <= v1.8.1
return '1.9.0';
}
if (type.startsWith('/slick-lightbox/0.')) return '0.2.12';
if (type.startsWith('/slider-pro/1.')) return '1.6.1';
if (type.startsWith('/slider-pro/1.')) return '1.6.2';
if (type.startsWith('/snowplow/2.')) return '2.18.2';
if (type.startsWith('/socket.io/2.')) return '2.4.0';
if (type.startsWith('/socket.io/3.')) return '3.1.3';
@ -445,7 +443,7 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/Swiper/5.')) return '5.4.5';
if (type.startsWith('/Swiper/6.')) return '6.8.4';
if (type.startsWith('/Swiper/7.')) return '7.4.1';
if (type.startsWith('/Swiper/8.') || type.startsWith('/Swiper/')) return '8.4.5';
if (type.startsWith('/Swiper/8.') || type.startsWith('/Swiper/')) return '8.4.6';
if (type.startsWith('/tensorflow/2.')) return '4.2.0';
if (type.startsWith('/tensorflow/3.')) return '4.2.0';
if (type.startsWith('/tensorflow/4.')) return '4.2.0';
@ -463,6 +461,7 @@ targets.setLastVersion = function (type, version) {
}
if (type.startsWith('/twitter-bootstrap/4.')) {
if (helpers.compareVersion('4.1.1', version)) return '4.1.1'; // <= 4.1.1
if (helpers.compareVersion('4.4.1', version)) return '4.4.1'; // <= 4.4.1
return '4.6.1';
}
if (type.startsWith('/twitter-bootstrap/5.')) return '5.2.3';
@ -477,12 +476,12 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/videojs-seek-buttons/1.')) return '1.6.0';
if (type.startsWith('/videojs-seek-buttons/2.')) return '2.2.1';
if (type.startsWith('/videojs-seek-buttons/3.')) return '3.0.1';
if (type.startsWith('/videojs-seek-buttons/4.')) return '4.0.1';
if (type.startsWith('/videojs-seek-buttons/4.')) return '4.0.2';
if (type.startsWith('/video.js/')) {
if (helpers.compareVersion('5.20.5', version)) return '5.20.5'; // <= 5.20.5
if (helpers.compareVersion('6.13.0', version)) return '6.13.0'; // > 5.20.5 to <= 6.13.0
if (helpers.compareVersion('7.21.1', version)) return '7.21.1'; // > 6.13.0 to <= 7.21.1
return '8.0.2';
return '8.0.3';
}
if (type.startsWith('/vue/1.')) return '1.0.28';
if (type.startsWith('/vue/2.')) return '2.6.14';

View File

@ -24,6 +24,7 @@ table td:first-child {
td {
padding: 2px 15px;
white-space: pre;
}
textarea {

View File

@ -38,6 +38,12 @@
<tbody>
</tbody>
</table>
<br>
<p>
Legend
<br>
<span>(i) = A website includes this iframe. It's possible that the request is from there.</span>
</p>
</div>
</body>
</html>

View File

@ -40,7 +40,7 @@ logging._generateTable = function () {
}
for (let i = data.length - 1; i >= 0; i--) {
let tbody, row, cell, content, redirect;
let tbody, row, cell, content, redirect, initiator;
tbody = document.getElementById('logging-content').getElementsByTagName('tbody')[0];
row = tbody.insertRow();
@ -53,8 +53,14 @@ logging._generateTable = function () {
content = document.createTextNode(i + 1);
cell.appendChild(content);
if (Object.values(data[i])[4] === '') {
initiator = Object.values(data[i])[0];
} else {
initiator = `${Object.values(data[i])[0]}\n(i) ${Object.values(data[i])[4]}`;
}
cell = row.insertCell();
content = document.createTextNode(Object.values(data[i])[0]);
content = document.createTextNode(initiator);
cell.appendChild(content);
cell = row.insertCell();

View File

@ -177,7 +177,7 @@ body {
padding: 5px 9px;
}
#html-filter-domains-title-exclude {
#html-filter-domains-title-include {
display: none;
}

View File

@ -66,6 +66,39 @@
</div>
<div id="history"><span id="history-indicator">+</span> Previous Versions</div>
<div id="history-release-notes">
<p class='release-date'>2023-01-21 (v2.6.45)</p>
<p>Updated</p>
<ul>
<li>ngx-bootstrap v10.2.0 -> v10.2.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1285">#1285</a>)</li>
<li>Chart.js v4.1.1 -> v4.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1286">#1286</a>)</li>
<li>video.js v8.0.2 -> v8.0.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1287">#1287</a>)</li>
<li>libphonenumber-js v1.10.15 -> v1.10.18 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1288">#1288</a>)</li>
<li>react-router v6.6.1 -> v6.7.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1289">#1289</a>)</li>
<li>instantsearch.js v4.49.3 -> v4.49.4 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1290">#1290</a>)</li>
<li>d3 v7.8.0 -> v7.8.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1291">#1291</a>)</li>
<li>lightgallery v2.7.0 -> v2.7.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1292">#1292</a>)</li>
<li>hls.js v1.2.9 -> v1.3.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1293">#1293</a>)</li>
<li>axios v1.2.2 -> v1.2.3 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1297">#1297</a>)</li>
<li>videojs-seek-buttons v4.0.1 -> v4.0.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1299">#1299</a>)</li>
<li>Swiper v8.4.5 -> v8.4.6 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1300">#1300</a>)</li>
<li>alpinejs v3.10.5 -> v3.11.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1301">#1301</a>)</li>
<li>slider-pro v1.6.1 -> v1.6.2 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1303">#1303</a>)</li>
</ul>
<p>Added</p>
<ul>
<li>twitter-bootstrap v4.4.1 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1284">#1284</a>)</li>
<li>simplebar v6.2.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1298">#1298</a>)</li>
<li>anchor-js v5.0.0 (<a href="https://codeberg.org/nobody/LocalCDN/issues/1304">#1304</a>)</li>
</ul>
<p>Mapping</p>
<ul>
<li>Direct call of Google Material Icons (<a href="https://codeberg.org/nobody/LocalCDN/issues/1295">#1295</a>)</li>
</ul>
<p>Improved</p>
<ul>
<li>Allow Fork-Awesome in Chromium (<a href="https://codeberg.org/nobody/LocalCDN/issues/1296">#1296</a>)</li>
<li>SimpleLog extended for iframes (<a href="https://codeberg.org/nobody/LocalCDN/issues/1302">#1302</a>)</li>
</ul>
<p class='release-date'>2023-01-05 (v2.6.44)</p>
<p>Updated</p>
<ul>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
/**
* lightgallery | 2.7.0 | October 9th 2022
* lightgallery | 2.7.1 | January 11th 2023
* http://www.lightgalleryjs.com/
* Copyright (c) 2020 Sachin Neravath;
* @license GPLv3

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
[data-simplebar]{position:relative;flex-direction:column;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.simplebar-wrapper{overflow:hidden;width:inherit;height:inherit;max-width:inherit;max-height:inherit}.simplebar-mask{direction:inherit;position:absolute;overflow:hidden;padding:0;margin:0;left:0;top:0;bottom:0;right:0;width:auto!important;height:auto!important;z-index:0}.simplebar-offset{direction:inherit!important;box-sizing:inherit!important;resize:none!important;position:absolute;top:0;left:0;bottom:0;right:0;padding:0;margin:0;-webkit-overflow-scrolling:touch}.simplebar-content-wrapper{direction:inherit;box-sizing:border-box!important;position:relative;display:block;height:100%;width:auto;max-width:100%;max-height:100%;overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.simplebar-content-wrapper::-webkit-scrollbar,.simplebar-hide-scrollbar::-webkit-scrollbar{display:none;width:0;height:0}.simplebar-content:after,.simplebar-content:before{content:' ';display:table}.simplebar-placeholder{max-height:100%;max-width:100%;width:100%;pointer-events:none}.simplebar-height-auto-observer-wrapper{box-sizing:inherit!important;height:100%;width:100%;max-width:1px;position:relative;float:left;max-height:1px;overflow:hidden;z-index:-1;padding:0;margin:0;pointer-events:none;flex-grow:inherit;flex-shrink:0;flex-basis:0}.simplebar-height-auto-observer{box-sizing:inherit;display:block;opacity:0;position:absolute;top:0;left:0;height:1000%;width:1000%;min-height:1px;min-width:1px;overflow:hidden;pointer-events:none;z-index:-1}.simplebar-track{z-index:1;position:absolute;right:0;bottom:0;pointer-events:none;overflow:hidden}[data-simplebar].simplebar-dragging{pointer-events:none;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[data-simplebar].simplebar-dragging .simplebar-content{pointer-events:none;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[data-simplebar].simplebar-dragging .simplebar-track{pointer-events:all}.simplebar-scrollbar{position:absolute;left:0;right:0;min-height:10px}.simplebar-scrollbar:before{position:absolute;content:'';background:#000;border-radius:7px;left:2px;right:2px;opacity:0;transition:opacity .2s .5s linear}.simplebar-scrollbar.simplebar-visible:before{opacity:.5;transition-delay:0s;transition-duration:0s}.simplebar-track.simplebar-vertical{top:0;width:11px}.simplebar-scrollbar:before{top:2px;bottom:2px;left:2px;right:2px}.simplebar-track.simplebar-horizontal{left:0;height:11px}.simplebar-track.simplebar-horizontal .simplebar-scrollbar{right:auto;left:0;top:0;bottom:0;min-height:0;min-width:10px;width:auto}[data-simplebar-direction=rtl] .simplebar-track.simplebar-vertical{right:auto;left:0}.simplebar-dummy-scrollbar-size{direction:rtl;position:fixed;opacity:0;visibility:hidden;height:500px;width:500px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:scrollbar!important}.simplebar-dummy-scrollbar-size>div{width:200%;height:200%;margin:10px 0}.simplebar-hide-scrollbar{position:fixed;left:0;visibility:hidden;overflow-y:scroll;scrollbar-width:none;-ms-overflow-style:none}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
/*! @name videojs-seek-buttons @version 4.0.1 @license Apache-2.0 */
/*! @name videojs-seek-buttons @version 4.0.2 @license Apache-2.0 */
.video-js .vjs-seek-button{font-family:'VideoJS';cursor:pointer;font-weight:400;font-style:normal}.video-js .vjs-seek-button.skip-back .vjs-icon-placeholder::before{transform:rotate(-45deg);-ms-transform:rotate(-45deg);-webkit-transform:rotate(-45deg);content:'\f116'}.video-js .vjs-seek-button.skip-forward .vjs-icon-placeholder::before{transform:scale(-1,1) rotate(-45deg);-ms-transform:scale(-1,1) rotate(-45deg);-webkit-transform:scale(-1,1) rotate(-45deg);content:'\f116'}

View File

@ -1,2 +1,2 @@
/*! @name videojs-seek-buttons @version 4.0.1 @license Apache-2.0 */
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("video.js")):"function"==typeof define&&define.amd?define(["video.js"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).videojsSeekButtons=t(e.videojs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=t(e);const s=o.default.getComponent("Button"),i={forwardIndex:1,backIndex:1},n=function(e){this.ready((()=>{((e,t)=>{e.addClass("vjs-seek-buttons"),t.forward&&t.forward>0&&(e.controlBar.seekForward=e.controlBar.addChild("seekButton",{direction:"forward",seconds:t.forward},t.forwardIndex)),t.back&&t.back>0&&(e.controlBar.seekBack=e.controlBar.addChild("seekButton",{direction:"back",seconds:t.back},t.backIndex))})(this,o.default.obj.merge(i,e))}))};n.VERSION="4.0.1";return o.default.registerComponent("SeekButton",class extends s{constructor(e,t){super(e,t),"forward"===this.options_.direction?this.controlText(this.localize("Seek forward {{seconds}} seconds").replace("{{seconds}}",this.options_.seconds)):"back"===this.options_.direction&&this.controlText(this.localize("Seek back {{seconds}} seconds").replace("{{seconds}}",this.options_.seconds))}buildCSSClass(){return`vjs-seek-button skip-${this.options_.direction} skip-${this.options_.seconds} ${super.buildCSSClass()}`}handleClick(){const e=this.player_.currentTime();if("forward"===this.options_.direction){let t=this.player_.duration();this.player_.liveTracker&&this.player_.liveTracker.isLive()&&(t=this.player_.liveTracker.seekableEnd()),this.player_.currentTime(Math.min(e+this.options_.seconds,t))}else"back"===this.options_.direction&&this.player_.currentTime(Math.max(0,e-this.options_.seconds))}}),o.default.registerPlugin("seekButtons",n),n}));
/*! @name videojs-seek-buttons @version 4.0.2 @license Apache-2.0 */
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("video.js")):"function"==typeof define&&define.amd?define(["video.js"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).videojsSeekButtons=t(e.videojs)}(this,(function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=t(e);const s=o.default.getComponent("Button"),i={forwardIndex:1,backIndex:1},n=function(e){this.ready((()=>{((e,t)=>{e.addClass("vjs-seek-buttons"),t.forward&&t.forward>0&&(e.controlBar.seekForward=e.controlBar.addChild("seekButton",{direction:"forward",seconds:t.forward},t.forwardIndex)),t.back&&t.back>0&&(e.controlBar.seekBack=e.controlBar.addChild("seekButton",{direction:"back",seconds:t.back},t.backIndex))})(this,o.default.obj.merge(i,e))}))};n.VERSION="4.0.2";return o.default.registerComponent("SeekButton",class extends s{constructor(e,t){super(e,t),"forward"===this.options_.direction?this.controlText(this.localize("Seek forward {{seconds}} seconds").replace("{{seconds}}",this.options_.seconds)):"back"===this.options_.direction&&this.controlText(this.localize("Seek back {{seconds}} seconds").replace("{{seconds}}",this.options_.seconds))}buildCSSClass(){return`vjs-seek-button skip-${this.options_.direction} skip-${this.options_.seconds} ${super.buildCSSClass()}`}handleClick(){const e=this.player_.currentTime();if("forward"===this.options_.direction){let t=this.player_.duration();this.player_.liveTracker&&this.player_.liveTracker.isLive()&&(t=this.player_.liveTracker.seekableEnd()),this.player_.currentTime(Math.min(e+this.options_.seconds,t))}else"back"===this.options_.direction&&this.player_.currentTime(Math.max(0,e-this.options_.seconds))}}),o.default.registerPlugin("seekButtons",n),n}));