Functions/GenXdev.Webbrowser/Clear-WebbrowserTabSiteApplicationData.ps1
############################################################################### <# .SYNOPSIS Clears all browser storage data for the current tab in Edge or Chrome. .DESCRIPTION The Clear-WebbrowserTabSiteApplicationData cmdlet executes a JavaScript snippet that clears various types of browser storage for the current tab, including: - Local storage - Session storage - Cookies - IndexedDB databases - Cache storage - Service worker registrations .PARAMETER Edge Specifies to clear data in Microsoft Edge browser. .PARAMETER Chrome Specifies to clear data in Google Chrome browser. .EXAMPLE Clear-WebbrowserTabSiteApplicationData -Edge Clears all browser storage data in the current Edge tab. .EXAMPLE clearsitedata -Chrome Clears all browser storage data in the current Chrome tab using the alias. ###############################################################################> function Clear-WebbrowserTabSiteApplicationData { [CmdletBinding()] [Alias('clearsitedata')] param ( ############################################################################### [parameter( Mandatory = $false, HelpMessage = 'Clear in Microsoft Edge' )] [switch] $Edge, ############################################################################### [parameter( Mandatory = $false, HelpMessage = 'Clear in Google Chrome' )] [switch] $Chrome ) begin { Microsoft.PowerShell.Utility\Write-Verbose 'Preparing JavaScript code to clear browser storage' # javascript snippet that clears all browser storage types [string] $LocationJSScriptLet = ("`"javascript:(function()%7BlocalStorage." + "clear()%3BsessionStorage.clear()%3Bdocument.cookie.split(\`"%3B\`")." + "forEach(function(c)%7Bdocument.cookie%3Dc.replace(%2F%5E %2B%2F%2C\`"\`")" + ".replace(%2F%3D.*%2F%2C\`"%3D%3Bexpires%3D\`"%2Bnew Date().toUTCString()" + "%2B\`"%3Bpath%3D%2F\`")%7D)%3Bwindow.indexedDB.databases().then((dbs)" + '%3D>%7Bdbs.forEach((db)%3D>%7BindexedDB.deleteDatabase(db.name)%7D)%7D)' + "%3Bif('caches' in window)%7Bcaches.keys().then((names)%3D>%7Bnames." + "forEach(name%3D>%7Bcaches.delete(name)%7D)%7D)%7Dif('serviceWorker' in " + 'navigator)%7Bnavigator.serviceWorker.getRegistrations().then(' + '(registrations)%3D>%7Bregistrations.forEach((registration)%3D>%7B' + "registration.unregister()%7D)%7D)%7Dalert('All browser storage " + "cleared!')%7D)()`"") | Microsoft.PowerShell.Utility\ConvertFrom-Json } process { Microsoft.PowerShell.Utility\Write-Verbose 'Adding URL parameter to execute JavaScript in browser' # add the javascript url to the parameters for Set-WebbrowserTabLocation $null = $PSBoundParameters.Add('Url', $LocationJSScriptLet) Microsoft.PowerShell.Utility\Write-Verbose 'Executing clear storage script in browser tab' # execute the javascript in the browser tab GenXdev.Webbrowser\Set-WebbrowserTabLocation @PSBoundParameters } end { } } |