Compania Google lansarea unui browser web . În același timp versiunea stabilă a unui proiect open-source , care stă la baza Chrome. Browserul Chrome utilizarea logo-urilor Google, existența unui sistem de trimitere a notificărilor în caz de crash, posibilitatea de a încărca modulul Flash la cerere, module pentru redarea conținutului video protejat (DRM), un sistem de instalare automată a actualizărilor și transmiterea în timpul căutării . Următoarea versiune Chrome 81 este programată pentru 17 martie.
:
- Pentru un mic procent de utilizatori, a fost propusă o funcție de grupare a tab-urilor, care permite unirea mai multor tab-uri similare în grupuri vizual separate. Fiecărui grup îi poate fi atribuită o culoare și un nume. Utilizatorii care nu au fost incluși în prima etapă de activare pot activa suportul pentru grupare prin opțiunea „chrome://flags/#tab-groups”.
- A fost adăugat suport pentru funcția , care permite crearea de linkuri către cuvinte sau fraze individuale, fără a indica explicit în document etichete folosind eticheta „a name” sau proprietatea „id”. Sintaxa acestor linkuri urmează să fie aprobată ca standard web, care momentan se află în . Masca de tranziție (în esență, se efectuează o căutare cu derulare) se separă de ancora obișnuită prin indicatorul „:~:”. De exemplu, atunci când se deschide linkul „https://opennet.ru/52312/#:~:text=Chromе”, pagina se va muta la poziția cu prima mențiune a cuvântului „Chromе” și acesta va fi evidențiat.
- o restricție mai strictă asupra transferului de cookie-uri între site-uri, interzicând procesarea cookie-urilor terță parte pentru solicitările non-HTTPS, atunci când se accesează site-uri diferite de domeniul paginii curente. Aceste cookie-uri sunt utilizate pentru a urmări mișcările utilizatorilor între site-uri în codul rețelelor de publicitate, al widget-urilor de socializare și al sistemelor de web-analiză. Să ne amintim că gestionarea transferului de cookie-uri se face prin atributul SameSite specificat în antetul Set-Cookie, care acum este în mod implicit setat la „SameSite=Lax”, limitând trimiterea de cookie-uri pentru subîntrebări intersite, cum ar fi solicitările de imagini sau încărcarea de conținut prin iframe de pe un alt site. Site-urile pot supra-scrie modul implicit SameSite setând explicit valoarea SameSite=None la instalarea cookie-urilor. Totuși, valoarea SameSite=None pentru cookie-uri poate fi setată doar în modul Secure (care se aplică conexiunilor prin HTTPS). Schimbarea va începe treptat 17 februarie, inițial pentru un mic procent de utilizatori, iar apoi extinzând treptat acoperirea.
- protecția împotriva notificărilor enervante legate de confirmarea permisiunilor. Deoarece o astfel de activitate, cum ar fi spamul cu solicitări pentru primirea de notificări push, întrerupe activitatea utilizatorului și distrage atenția de la acțiunile din dialogurile de confirmare, în Chrome 80, în locul unui dialog separat, acum poate apărea un mesaj informativ în bara de adrese cu un avertisment despre blocarea solicitării de permisiuni, care se contractă apoi într-un indicator cu un clopot tăiat. Prin clic pe indicator, se poate activa sau respinge permisiunea solicitată în orice moment convenabil. Automat, noul mod va fi activat selectiv pentru utilizatorii care, până acum, blocau în mod obișnuit aceste solicitări, precum și pentru site-urile pe care se înregistrează un procent mare de respingere a solicitărilor. Pentru a activa noul mod pentru toate solicitările, în setări a fost adăugată o opțiune specială (chrome://flags/#quiet-notification-prompts).
- afișarea ferestrelor pop-up (apelul metodei window.open()) și trimiterea de solicitări sincrone XMLHttpRequest în handlerii evenimentelor de închidere sau ascundere a paginii (unload, beforeunload, pagehide și visibilitychange);
- S-a propus o inițiere împotriva încărcării de conținut multimedia mixt (când pe o pagină HTTPS se încarcă resurse prin protocolul http://). Pe paginile deschise prin HTTPS, acum, linkurile „http://” vor fi înlocuite automat cu „https://” în secțiunile legate de redarea fișierelor audio și video. Dacă resursa audio sau video nu este disponibilă prin https, atunci încărcarea acesteia este blocată (poate fi marcată manual blocarea prin meniul accesibil prin simbolul lacătului din bara de adrese).
Imaginile vor continua să se încarce fără modificări (înlocuirea automată va fi aplicată în Chrome 81), dar pentru înlocuirea pe https sau blocarea imaginilor, dezvoltatorilor de site-uri li se oferă proprietățile CSP upgrade-insecure-requests și block-all-mixed-content. Pentru scripturi și iframe, blocarea conținutului mixt a fost implementată anterior.
- A început treptat suportului FTP. Implicit, suportul FTP este încă menținut, dar va fi un experiment în cadrul căruia suportul FTP va fi dezactivat pentru un anumit procent de utilizatori (pentru a reveni, va fi necesar să se lanseze browserul cu opțiunea „—enable-ftp”). Reamintim că în versiunile anterioare, deja a fost dezactivată afișarea conținutului resurselor încărcate prin protocolul „ftp://” (de exemplu, a fost întreruptă afișarea documentelor HTML și a fișierelor README), s-a interzis utilizarea FTP pentru încărcarea subresurselor din documente și a fost oprit suportul pentru proxy pentru FTP. Cu toate acestea, posibilitatea de a încărca fișiere prin linkuri directe și de a afișa conținutul directoarelor a rămas valabilă.
-
posibilitatea utilizării imaginilor vectoriale SVG ca favicon pentru site. - În setări a fost adăugată opțiunea de a dezactiva selectiv anumite tipuri de date transmise în timpul sincronizării între browsere.
- Pentru utilizatorii corporativi administrați centralizat a fost adăugat un regulament , care permite interzicerea instalării extensiilor externe pe dispozitiv.
- Implementată verificarea simultană a întregului lanț de proprietăți sau apeluri în JavaScript. De exemplu, când se face referire la „db.user.name.length”, anterior era necesar să se verifice pas cu pas definiția tuturor părților, de exemplu, prin „if (db && db.user && db.user.name)”. Acum, cu ajutorul operatorului „?.”, se poate accesa valoarea „db?.user?.name?.length” fără verificări anterioare și această accesare nu va genera o eroare. În cazul problemelor (dacă un element este tratat ca null sau undefined), la ieșire va fi afișată valoarea „undefined”.
- În JavaScript a fost propus un nou operator logic de unire „??”, care returnează operandul din dreapta dacă operandul din stânga are valoarea NULL sau undefined și invers. De exemplu, „const foo = bar ?? ‘string implicit'” dacă bar este egal cu null, va returna stringul sau valoarea bar în caz contrar, inclusiv atunci când bar este 0 și „”, spre deosebire de operatorul „||”.
- În modul Origin Trials (funcționalități experimentale care necesită o activare separată ) a fost propus API-ul de indexare a conținutului. Origin Trial implică posibilitatea de a lucra cu API-ul specificat din aplicații, încărcate de pe localhost sau 127.0.0.1, sau după ce s-a finalizat înregistrarea și s-a obținut un token special, care are o valabilitate limitată pentru un anumit site. API , oferind metadate despre conținutul care a fost anterior în cache de aplicațiile web care funcționează în modul Progressive Web Apps (PWS). Aplicația poate salva în browser diverse date, inclusiv imagini, videoclipuri și articole, iar în cazul pierderii conexiunii la rețea, poate folosi aceste date prin API Cache Storage și IndexedDB. Content Indexing API permite adăugarea, găsirea și ștergerea unor astfel de resurse. Acest API este deja folosit în browser pentru a lista paginile și datele multimedia disponibile pentru vizualizare offline.
- Interfața de programare a aplicațiilor , permițând utilizatorului să selecteze înregistrări din agenda de contacte și să trimită anumite detalii despre acestea către site. La solicitare, se definește o listă de proprietăți care trebuie obținute. Aceste proprietăți sunt afișate clar utilizatorului, care decide dacă să transmită sau nu aceste proprietăți. API-ul poate fi folosit, de exemplu, într-un client de email web pentru a selecta destinatarii unui mesaj, într-o aplicație web cu funcția VoIP pentru a iniția un apel la un anumit număr sau într-o rețea socială pentru a căuta prieteni deja înregistrați. În cadrul Origin Trials, au fost propuse unele proprietăți noi pentru Contact Picker: pe lângă nume, email și număr de telefon, a fost adăugată posibilitatea de a transmite adresa poștală și o imagine.
- În Web Workers un nou mod de a încărca module ECMAScript, care permite evitarea utilizării funcției importScripts(), care blochează activitatea worker-ului în timpul procesării scriptului importat și îl execută în contextul global. Noua metodă implică crearea de module speciale pentru Web Workers, care suportă mecanismele standard de import JavaScript și pot fi încărcate dinamic, fără a bloca execuția worker-ului. Pentru încărcarea modulelor, constructorul Worker prevede un nou tip de resursă - 'module':
const worker = new Worker('worker.js', {
type: 'module'
}); - funcționalitate integrată de procesare în JavaScript a fluxurilor comprimate, care nu necesită utilizarea bibliotecilor externe. Pentru comprimare și decompresie, au fost adăugate API-urile . Suportă comprimarea folosind algoritmii gzip și deflate.
const compressionReadableStream
= inputReadableStream.pipeThrough(new CompressionStream('gzip')); - A fost adăugat proprietatea CSS '«, care permite ruperea la nivelul oricărui caracter tipografic, inclusiv rupturi lângă caractere de punctuație, spații predefinite (<pre>) și în mijlocul cuvintelor. A fost adăugat de asemenea un proprietate CSS «» care permite ruperea secvențelor neîntrerupte de caractere în orice loc, dacă în linie nu s-a găsit o poziție adecvată pentru rupere.
- Pentru un context media, prelucrat în mod criptat, a fost implementată suportul pentru metoda , care furnizează informații despre capacitățile browser-ului legate de decodarea conținutului protejat (de exemplu, această metodă poate fi utilizată pentru a selecta scenarii de decodare de înaltă calitate sau economisitoare de energie, având în vedere lățimea de bandă disponibilă și dimensiunea ecranului).
- A fost adăugată metoda , prin care se pot obține informații despre performanța redării videoclipului, pentru ajustarea bitrate-ului, rezoluției și altor parametrii video.
- În API , care simplifică integrarea cu sistemele de plată existente, a fost adăugată posibilitatea de a transmite adresa și informațiile de contact unui procesator de plăți extern (aplicația sistemului de plată poate avea informații mai exacte decât browser-ul).
- A fost adăugat suport pentru header-ul HTTP , care permite trimiterea de metadate suplimentare despre tipul conținutului asociat cu cererea (de exemplu, pentru o cerere prin tag-ul img se specifică tipul „image”, pentru fonturi – „font”, pentru scripturi – „script”, pentru stiluri – „style” etc.). Pe baza tipului specificat, serverul poate lua măsuri de protecție împotriva unor tipuri de atacuri (de exemplu, este puțin probabil ca un link către un procesator de transfer de bani să fie definit prin tag-ul img, deci astfel de cereri nu trebuie procesate).
- În motorul JavaScript V8 stocării pointerilor în heap. În loc de o valoare completă de 64 de biți, este asigurată stocarea doar a biților inferiori unici ai pointerului. Această optimizare a permis reducerea consumului de memorie în heap cu 40%, în schimbul unei scăderi a performanței de 3-8%.


- în instrumentele pentru dezvoltatori web:
- În consola web a apărut posibilitatea de a suprascrie expresiile let și class.
- Instrumentele de depanare pentru WebAssembly au fost îmbunătățite. A fost adăugat suportul pentru pentru depanarea pas cu pas, definirea punctelor de oprire și analiza trasărilor stivei în codul sursă pe care este scrisă aplicația WebAssembly.
- Panoul pentru analiza activității de rețea a fost îmbunătățit. A fost adăugată opțiunea de a vizualiza lanțul de apeluri de scripturi asociate cu inițierea cererii.
S-au adăugat coloanele noi Path și URL, care arată calea absolută și URL-ul complet pentru fiecare resursă de rețea. A fost asigurată evidențierea cererii selectate în diagrama de revizuire.
- În tab-ul Condiții de rețea, a fost adăugată opțiunea de a modifica parametrul User-Agent.
- A fost propus un nou interfață pentru configurarea panoului de audit.
- În tab-ul s-a oferit posibilitatea de a colecta date de acoperire pentru fiecare funcție sau pentru fiecare bloc de cod (statistică mai detaliată, dar necesită mai multe resurse).
- În consola web a apărut posibilitatea de a suprascrie expresiile let și class.
- Acțiunea manifestului AppCache (tehnologie pentru organizarea funcționării aplicației web în mod offline) la directorul curent al site-ului (dacă manifestul a fost încărcat de la www.example.com/foo/bar/, posibilitatea de a rescrie URL-ul va funcționa doar în interiorul /foo/bar/). În Chrome 82, suportul pentru AppCache este planificat să fie eliminat complet. Motivul invocat este dorința de a elimina una dintre vectorii pentru atacurile legate de scripting între site-uri. În loc de AppCache, se recomandă utilizarea API-ului .
- suportul pentru API-ul învechit WebVR 1.1, în locul căruia poate fi folosit API-ul , care permite accesul la componente pentru crearea unor experiențe de realitate virtuală și augmentată și unifică lucrul cu diverse clase de dispozitive, de la căști staționare de realitate virtuală până la soluții bazate pe dispozitive mobile.
- Handlerii de protocoale, conectați prin metodele registerProtocolHandler() și unregisterProtocolHandler(), acum pot funcționa doar în context sigur (prin acces HTTPS).
Pe lângă noutăți și corecții de erori, noua versiune a eliminat . Multe dintre vulnerabilități au fost descoperite ca urmare a testării automate cu instrumentele , , , și . Nu au fost identificate probleme critice care să permită ocolirea tuturor nivelurilor de protecție ale browserului și executarea codului în sistem dincolo de mediu sandbox. În cadrul programului de recompensare pentru descoperirea vulnerabilităților pentru versiunea actuală, compania Google a plătit 37 de premii în valoare totală de 48 de mii de dolari (o recompensă de 10.000 USD, trei recompense de 5.000 USD, trei recompense de 3.000 USD, patru recompense de 2.000 USD, trei recompense de 1.000 USD și șase recompense de 500 USD). Sumele a 17 recompense nu au fost încă definite.
Sursa: opennet.ro


