diff --git a/scripts/Windows/Config/Firefox/Install.ps1 b/scripts/Windows/Config/Firefox/Install.ps1 index 5b62a1fe..4a6fba84 100644 --- a/scripts/Windows/Config/Firefox/Install.ps1 +++ b/scripts/Windows/Config/Firefox/Install.ps1 @@ -1,22 +1,7 @@ #!/bin/pwsh -param($context) - -. "$PSScriptRoot/../../Scripts/Context.ps1"; - -[Context] $context = $context; -$tempDir = $context.GetTempDirectory(); - -Push-Location $tempDir; -$configFile = "$tempDir/DefaultAssociations.xml"; - -Write-Information "Making Firefox the default browser"; -DISM /Online "/Export-DefaultAppAssociations:$configFile"; - -[xml]$defaultAssociations = [xml]::new(); -$defaultAssociations.PreserveWhitespace = $true; -$reader = [System.Xml.XmlReader]::Create("$configFile", $readerSettings); -$defaultAssociations.Load($reader); -$reader.Dispose(); +. "$PSScriptRoot/../../Scripts/AppAssociations.ps1"; +$progIdSuffix = "-308046B0AF4A39CB"; +$appName = "Firefox"; $extensions = @( ".htm", @@ -32,24 +17,10 @@ $schemes = @( "https" ); -foreach ($association in $defaultAssociations.SelectNodes("/DefaultAssociations/Association")) { - [string] $className = $null; - - if (($extensions + $schemes) -contains $association.Identifier) { - $association.ApplicationName = "Firefox"; - - if ($extensions -contains $association.Identifier) { - $className = "FirefoxHTML"; - } else { - $className = "FirefoxURL"; - } - - $association.ProgId = "$className-308046B0AF4A39CB"; - } +foreach ($extension in $extensions) { + Set-DefaultAppAssociation $extension "FirefoxHTML$progIdSuffix" $appName; } -$defaultAssociations.Save($configFile); -DISM /Online "/Import-DefaultAppAssociations:$configFile"; - -Pop-Location; -Remove-Item -Recurse $tempDir; +foreach ($scheme in $schemes) { + Set-DefaultAppAssociation $scheme "FirefoxURL$progIdSuffix" $appName; +}