WebAssembly gjør det mulig for nettlesere å kjøre webapplikasjoner nesten like effektivt som om applikasjonene hadde vært systemspesifikk programvare. Dette fjerde språket som støttes av nettlesere (etter HTML, JavaScript og CSS) har åpnet for helt nye og mer ytelseskrevende applikasjoner. Men helt i mål med å utnytte mulighetene som tilbys i maskinvaren, er man ikke ennå.
Parallellprosessering
For dem som husker så langt tilbake, så kom Intel i 1997 med det selskapet kalte for MMX. Dette var en utvidelse av instruksjonssettet til x86-prosessorene, og disse instruksjonene er av en type som kalles for SIMD (Single Instruction Multiple Data), noe som innebærer at flere prosesseringsenheter parallelt utfører den samme instruksjonen på hver sine data. Dette kan ha stor betydning for ytelsen ved behandling av enkelte oppgaver.
Intel Pentium MMX var den første prosessoren for vanlige PC-er som støttet SIMD. Det ble fra starten av særlig brukt til å behandle multimediedata.
I dag, nesten 25 år senere, er dette noe alle prosessorer støtter. I tillegg til at teknologiene har blitt langt mer avanserte. Men så langt støttes altså ikke SIMD av WebAssembly.
WebAssembly SIMD
Dette er nå i ferd med å endre seg. Google kom torsdag med en med en betautgave av Chrome 84 hvor støtte for det som kalles for WebAssembly SIMD er inkludert, riktignok som en «origin trial», altså kun for registrerte utviklere.
WebAssembly SIMD eksponerer maskinvarens SIMD-instruksjoner for WebAssembly på en plattformuavhengig måte, noe som betyr at det kan brukes på tvers av både x86-baserte PC-er og enheter med Arm-basert prosessorer, inkludert smartmobiler og nettbrett.
WebAssembly SIMD introduserer en ny 128 bit verditype som kan brukes til å representere ulike typer pakkede data, i tillegg til flere vektoroperasjoner som kan operere på disse dataene.
Har tatt minst tre år
SIMD-støtte i WebAssembly er ingen ny idé. Arbeidet med dette ser ut til ha startet allerede i 2017. Nå begynner såpass mye å bli ferdig at det kan tas i bruk. Uoffisielle tester viser voldsomme ytelsesforbedringer på helt spesifikke områder.
Trolig vil alle Chromium-baserte nettlesere få støtte for WebAssembly SIMD, og ifølge Google er også Mozilla i ferd med å få på plass støtte for dette i Firefox.
Engangskoder og animasjoner
SIMD-støtte er ikke den eneste nyheten som kommer i Chrome 84. Inkludert er også støtte for Web OTP API (One Time Passord Application Programming Interface) som på Android-mobiler skal gjøre det enklere for webapplikasjoner å ta imot engangskoder sendt via SMS, blant annet for å verifisere telefonnumre.
Det loves også utvidet støtte for Web Animations API, som Chrome har hatt delvis støtte for siden 2014. Med Chrome 84 skal utviklere gis mer kontroll over animasjonene.
Flere utviklerrettede nyheter i Chrome 84 er omtalt i dette blogginnlegget.
Blokkerte bilder
På sikkerhetssiden vil det blant annet innføres en endring i hvordan Chrome håndterer «mixed content», altså de tilfellene hvor en HTML-side levert via HTTPS laster inn innhold via ukrypterte HTTP-forbindelser.
I dag tillates dette for blant annet bilder, men brukerne har siden Chrome 80 blitt varslet i adressefeltet om at siden ikke er sikker. Med Chrome 84 strammes dette kraftig inn for bilder. Med denne versjonen vil nettleseren forsøke å laste de samme bildene via HTTPS, men dersom dette ikke er tilgjengelig, vil bildene bli blokkert.
Det samme skal vil gjelde lyd- og videoinnhold fra og med en framtidig utgave av Chrome. Gradvis skal noe tilsvarende innføres for usikre filnedlastinger satt i gang fra sikkert innhold.
Faser ut gammel TLS
En annen sikkerhetsrelatert nyhet som har vært ventet, er at støtten for de gamle og usikre krypteringsteknologiene TLS 1.0 og 1.1 fjernes i Chrome 84. Dermed er det kun TLS 1.2 og 1.3 som støttes.
TLS 1.2 kom i 2008, så forhåpentligvis er det mange systemer i bruk i dag som ikke støtter denne versjonen eller nyere.