/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/@cliqz/adblocker-electron@1.34.0/dist/commonjs/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";
/*!
 * Copyright (c) 2017-present Ghostery GmbH. All rights reserved.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at https://mozilla.org/MPL/2.0/.
 */var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,s,r){void 0===r&&(r=s);var i=Object.getOwnPropertyDescriptor(t,s);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,r,i)}:function(e,t,s,r){void 0===r&&(r=s),e[r]=t[s]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&__createBinding(t,e,s);return __setModuleDefault(t,e),t},__exportStar=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||__createBinding(t,e,s)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ElectronBlocker=exports.BlockingContext=void 0,exports.fromElectronDetails=fromElectronDetails;const electron=__importStar(require("electron")),tldts_experimental_1=require("tldts-experimental"),adblocker_1=require("@cliqz/adblocker"),preload_path_js_1=require("./preload_path.js"),{ipcMain:ipcMain}=electron;function fromElectronDetails(e){const{id:t,url:s,resourceType:r,referrer:i,webContentsId:o}=e;return adblocker_1.Request.fromRawDetails(o?{_originalRequestDetails:e,requestId:`${t}`,sourceUrl:i,tabId:o,type:r||"other",url:s}:{_originalRequestDetails:e,requestId:`${t}`,sourceUrl:i,type:r||"other",url:s})}process.env.ELECTRON_DISABLE_SECURITY_WARNINGS="true";class BlockingContext{constructor(e,t){this.session=e,this.blocker=t,this.onBeforeRequest=(e,s)=>t.onBeforeRequest(e,s),this.onGetCosmeticFiltersFirst=(e,s)=>t.onGetCosmeticFiltersFirst(e,s),this.onGetCosmeticFiltersUpdated=(e,s,r)=>t.onGetCosmeticFiltersUpdated(e,s,r),this.onHeadersReceived=(e,s)=>t.onHeadersReceived(e,s),this.onIsMutationObserverEnabled=e=>t.onIsMutationObserverEnabled(e)}enable(){!0===this.blocker.config.loadCosmeticFilters&&(this.session.setPreloads(this.session.getPreloads().concat([preload_path_js_1.PRELOAD_PATH])),ipcMain.on("get-cosmetic-filters-first",this.onGetCosmeticFiltersFirst),ipcMain.on("get-cosmetic-filters",this.onGetCosmeticFiltersUpdated),ipcMain.on("is-mutation-observer-enabled",this.onIsMutationObserverEnabled)),!0===this.blocker.config.loadNetworkFilters&&(this.session.webRequest.onHeadersReceived({urls:["<all_urls>"]},this.onHeadersReceived),this.session.webRequest.onBeforeRequest({urls:["<all_urls>"]},this.onBeforeRequest))}disable(){!0===this.blocker.config.loadNetworkFilters&&(this.session.webRequest.onHeadersReceived(null),this.session.webRequest.onBeforeRequest(null)),!0===this.blocker.config.loadCosmeticFilters&&(this.session.setPreloads(this.session.getPreloads().filter((e=>e!==preload_path_js_1.PRELOAD_PATH))),ipcMain.removeListener("get-cosmetic-filters",this.onGetCosmeticFiltersUpdated))}}exports.BlockingContext=BlockingContext;class ElectronBlocker extends adblocker_1.FiltersEngine{constructor(){super(...arguments),this.contexts=new WeakMap,this.onIsMutationObserverEnabled=e=>{e.returnValue=this.config.enableMutationObserver},this.onGetCosmeticFiltersFirst=(e,t)=>{const s=(0,tldts_experimental_1.parse)(t),r=s.hostname||"",i=s.domain||"",{active:o,styles:n,scripts:l,extended:c}=this.getCosmeticsFilters({domain:i,hostname:r,url:t,getBaseRules:!0,getInjectionRules:!0,getExtendedRules:!0,getRulesFromHostname:!0,getRulesFromDOM:!1,callerContext:{frameId:e.frameId,processId:e.processId}});!1!==o?(this.injectStyles(e.sender,n),e.sender.send("get-cosmetic-filters-response",{active:o,extended:c,styles:""}),e.returnValue=l):e.returnValue=null},this.onGetCosmeticFiltersUpdated=(e,t,s)=>{const r=(0,tldts_experimental_1.parse)(t),i=r.hostname||"",o=r.domain||"",{active:n,styles:l,extended:c}=this.getCosmeticsFilters({domain:o,hostname:i,url:t,classes:s.classes,hrefs:s.hrefs,ids:s.ids,getBaseRules:!1,getInjectionRules:!1,getExtendedRules:!1,getRulesFromHostname:!1,getRulesFromDOM:!0,callerContext:{frameId:e.frameId,processId:e.processId,lifecycle:s.lifecycle}});!1!==n&&(this.injectStyles(e.sender,l),e.sender.send("get-cosmetic-filters-response",{active:n,extended:c,styles:""}))},this.onHeadersReceived=(e,t)=>{const s="content-security-policy",r=[],i=e.responseHeaders||{};if("mainFrame"===e.resourceType||"subFrame"===e.resourceType){const o=this.getCSPDirectives(fromElectronDetails(e));if(void 0!==o){r.push(...o.split(";").map((e=>e.trim())));for(const[e,t]of Object.entries(i))e.toLowerCase()===s&&(r.push(...t),delete i[e]);return i[s]=[r.join(";")],void t({responseHeaders:i})}}t({})},this.onBeforeRequest=(e,t)=>{const s=fromElectronDetails(e);if(!0===this.config.guessRequestTypeFromUrl&&"other"===s.type&&s.guessTypeOfRequest(),s.isMainFrame())return void t({});const{redirect:r,match:i}=this.match(s);t(r?{redirectURL:r.dataUrl}:i?{cancel:!0}:{})}}enableBlockingInSession(e){let t=this.contexts.get(e);return void 0!==t||(t=new BlockingContext(e,this),this.contexts.set(e,t),t.enable()),t}disableBlockingInSession(e){const t=this.contexts.get(e);if(void 0===t)throw new Error("Trying to disable blocking which was not enabled");this.contexts.delete(e),t.disable()}isBlockingEnabled(e){return this.contexts.has(e)}injectStyles(e,t){t.length>0&&e.insertCSS(t,{cssOrigin:"user"})}}exports.ElectronBlocker=ElectronBlocker,__exportStar(require("@cliqz/adblocker"),exports);
//# sourceMappingURL=/sm/371c862a5b24d9adde772189828ddba6f16899ba3bef76586d875b7a58400a70.map