Google Chrome is de door Google gepropageerde webbrowser die vooraan loopt in de ondersteuning van moderne webstandaarden.
Chromium is het open-source equivalent ervan en biedt een aangename browse-ervaring maar zonder de door Google toegevoegde extra's die wel in Chrome aanwezig zijn. De delen van Chrome die open-source zijn , worden door Google gepubliceerd als Chromium. Die resulteert in een webbrowser die je kunt gebruiken op Windows, Mac of Linux.
Chromium kun je als werkend programma downloaden. Het is niet makkelijk om dit te doen, als je alleen de sourcecode kunt krijgen en je hebt geen toolchain geinstalleerd. Gelukkig is op de website van het Chromium-project altijd een build van de laatste sourcecode-snapshot, met dank aan de Chromium Buildbot.
Het volgende PowerShell-script downloadt automatisch de Windows-build van de meest actuele snapshot als zip-bestand, pakt dit uit en kopieert het naar een map, klaar om te runnen. Het werkt zeker met PowerShell 2 (Windows 7+), maar misschien lukt v1 ook.
# Get-Chromium.ps1
# Poging om de laatste Chromium te downloaden via PowerShell-script
# Paul Wiegmans 20110610
# Gewijzigd:
# 20110904
# 20110917 : Chromium Buildbot is verhuisd naar andere URL; bijgewerkt
<#
belangrijke URLS:http://commondatastorage.googleapis.com/chromium-browser-snapshots/Win/LAST_CHANGE
https://chromiumcodereview.appspot.com/
#>
Clear-Host
$Workdir = "C:\Data\GetChromium"
$downloaddir = "A:\GetChromium"
Function Get-Version($Filename) {
<#
.synopsis
Leest het attribuut "versionstring" van het opgegeven bestand in formaat "9.9.9.9"
indien aanwezig, en geeft anders "0.0.0.0" terug.
#>
$v = "0.0.0.0"
If (Test-Path $Filename) {$v = $(Get-ChildItem $Filename).VersionInfo.ProductVersion}
# Write-Host "Get-Version: $Filename $v"
return $v
}
Function IsNewerVersion ([string]$OldFilename = "", [string]$NewFilename = "") {
Return (Get-Version($OldFilename) -ilt Get-Version($NewFilename))
}
Function Wait-And-Remove ([string]$FileName) {
<#
.synopsis
Wacht tot een bestand vrij komt (niet geopend) en verwijdert deze
.parameter FileName
specificeert de bestandsnaam of foldernaam
#>
if (!(Test-Path $Filename)) {Return} # File bestaat niet; niets te doen
While ($True) {
Remove-Item $FileName -Recurse -Force -ea:SilentlyContinue # geeft resultaat in $?
if ($?) {Continue}
Write-Host "File $FileName is bezet: wachten...";
Start-Sleep -Seconds 3
}
}
Function DelFile ($Filename) {
Del $Filename -ea:silentlycontinue
If (!$?) { "Dat werkte niet!"; Break }; "Ja dat werkt!" # Break springt prima uit de functie!
}
Function Get-Build ([string]$Dir) {
<#
.synopsis
Leest de inhoud van het bestand Build-<nummer>.txt in de opgegeven map,
indien aanwezig en geeft deze als string terug. Geeft anders "0" terug.
.parameter Dir
Specificeert de map waarin bestand Build-*.txt wordt gelezen
#>
$Build = Get-Content "$dir\Build-*.txt" -ErrorAction SilentlyContinue
if (!$?) {
$Build = "0"
}
return $Build
}
$CrLastURL = "http://commondatastorage.googleapis.com/chromium-browser-snapshots/Win/LAST_CHANGE"
$CrBaseURL = "http://commondatastorage.googleapis.com/chromium-browser-snapshots/Win/"
if (Test-Path $downloaddir) {$Workdir = $downloaddir}
$LatestDir = "$Workdir\Chrome-win32"
$DistroDir = "\\BCFS4\Install\Applications\webbrowser\Chromium"
$Flash = "gcswf32.dll"
$wc = New-Object System.Net.WebClient
Write-Host "=== Controleren nieuwste build"
New-Item $workdir -type dir -ErrorAction:SilentlyContinue
# DEBUG: uitschakelen van downloaden
#$Build = "97424"
$Build = $wc.DownloadString($CrLastURL)
Write-Host Laatste build is: $Build
$CrBuildURL = $CrBaseURL + $Build + "/"
$Changelog = [xml]$wc.DownloadString($CrBuildURL + "changelog.xml")
$entry = $ChangeLog.changelogs.log.logentry
if ($entry.count -gt 1) {
$entry = $entry[$entry.Count-1]
}
Write-Host "REVISION : " $entry.revision
Write-Host "AUTHOR : " $entry.author
Write-Host "DATE : " $entry.date
Write-Host "MSG : " $entry.msg "`n"
$Chromiumfile = $workdir + "\Chromium-" + $Build + ".zip"
Write-Host "=== Downloaden"
if (!(Test-Path $Chromiumfile)) {
Write-Host "Build wordt gedownload ..."
$wc.DownloadFile($CrBuildURL + "chrome-win32.zip", $Chromiumfile)
}
Write-Host "=== Uitpakken"
if ((Test-Path $LatestDir) -and (Test-Path $LatestDir\Build-$Build.txt)) {
Write-Host "Chromium is al uitgepakt in $LatestDir. "
} else {
Write-Host "Chromium uitpakken ..."
Remove-Item $Workdir\Chrome-win32 -Recurse -Force -ErrorAction:SilentlyContinue
C:
cd $Workdir
cmd.exe /c 7za.exe x -y $Chromiumfile > $null
Write-Host "Uitpakken klaar..."
#Remove-Item $LatestDir -Recurse -Force -ErrorAction:SilentlyContinue
#Rename-Item $Workdir\Chrome-win32 $LatestDir
Write-Output $Build | Set-Content -Path $LatestDir\Build-$Build.txt
Write-Output $Build | Set-Content -Path $LatestDir\Build
$ProductVersion = $(Get-ChildItem $LatestDir\chrome.dll).VersionInfo.ProductVersion
Write-Output $ProductVersion | Set-Content -Path $LatestDir\Chromium-$ProductVersion.txt
Copy-Item "$WorkDir\gcswf32.dll" $LatestDir -ErrorAction:SilentlyContinue
Copy-Item "C:\Programs\Chromium\$flash" $LatestDir -ErrorAction:SilentlyContinue
if (!$?) { Write-Host "Geen GCSWF32.DLL gekopieerd!"}
}
Write-Host "Flashversie: $(Get-Version("$LatestDir\$Flash"))"
# Kopieren naar Distributiemap
Write-Host "=== Distribueren"
if (test-path $DistroDir) {
Remove-Item $DistroDir\* -Recurse -Force -ErrorAction:SilentlyContinue
Copy-Item $LatestDir\* $DistroDir -Recurse -Force -ErrorAction:SilentlyContinue
}
Write-Host "=== Installeren"
# overzetten naar uiteindelijke plek. Sluit Chromium.
$Progdir = "C:\Programs\Chromium"
New-Item $Progdir -ItemType dir -ErrorAction SilentlyContinue
# DEBUG: Forceer altijd installeren
# Write-Output ($Build - 1) | Set-Content -Path $ProgDir\Build-*.txt
$ChromeDllOud = "$Progdir\chrome.dll"
$VersieOud = Get-Version($ChromeDllOud)
$BuildOud = Get-Build($Progdir)
Write-Host "Huidige Chromium was:"
Write-Host "`tNaam: `t$ChromeDllOud"
Write-Host "`tVersie:`t$VersieOud"
Write-Host "`tBuild: `t$BuildOud"
$ChromeDllNieuw = "$LatestDir\chrome.dll"
$VersieNieuw = Get-Version($ChromeDllNieuw)
$BuildNieuw = Get-Build($LatestDir)
Write-Host "Laatste Chromium:"
Write-Host "`tNaam: `t$ChromeDllNieuw"
Write-Host "`tVersie:`t$VersieNieuw"
Write-Host "`tBuild: `t$BuildNieuw"
If (($VersieOud -ilt $VersieNieuw) -or ($BuildOud -ilt $BuildNieuw)) {
Write-Host "Kopieren van $LatestDir naar $Progdir ..."
Get-Process | Where { $_.Name -Eq "chrome" } | Kill
Start-Sleep -Seconds 5
Remove-Item $Progdir -Recurse -ea Stop
New-Item $Progdir -ItemType directory -ea SilentlyContinue | Out-Null
Copy-Item $LatestDir\* $Progdir -Recurse -ea SilentlyContinue
} else {
Write-Host "Overzetten naar Programmamap al gebeurd"
}
Write-Host "Chromium heeft nu build $Build, versie $(Get-Version("$Progdir\chrome.dll"))"
Write-Host "Klaar!"
Code eindigt
Geen opmerkingen:
Een reactie posten