Έκδοση Chrome 74

Google παρουσιάζονται έκδοση του προγράμματος περιήγησης ιστού Chrome 74... ΤΑΥΤΟΧΡΟΝΑ διαθέσιμος σταθερή κυκλοφορία ενός δωρεάν έργου Χρώμιο, το οποίο χρησιμεύει ως βάση του Chrome. πρόγραμμα περιήγησης Chrome διαφορετικός η χρήση των λογότυπων της Google, η δυνατότητα λήψης μιας μονάδας Flash κατόπιν αιτήματος, η παρουσία συστήματος για την αποστολή ειδοποιήσεων σε περίπτωση σύγκρουσης, ενότητες για αναπαραγωγή προστατευμένου περιεχομένου βίντεο, σύστημα αυτόματης εγκατάστασης ενημερώσεων και μετάδοσης κατά την αναζήτηση Παράμετροι RLZ. Η επόμενη κυκλοφορία του Chrome 75 έχει προγραμματιστεί για τις 4 Ιουνίου.

Ο κύριος αλλαγές в Chrome 74:

  • Όταν συμβεί το συμβάν onUnload, το οποίο καλείται όταν η σελίδα είναι κλειστή, τώρα Απαγορεύεται εμφάνιση αναδυόμενων παραθύρων (η κλήση window.open() είναι αποκλεισμένη), η οποία θα προστατεύει τους χρήστες από το να αναγκαστούν να ανοίξουν σελίδες διαφήμισης μετά το κλείσιμο αμφίβολων τοποθεσιών.
  • Στη μηχανή JavaScript εφαρμόστηκε μια νέα λειτουργία JIT-λιγότερο (σημαία «—jitless»), η οποία καθιστά δυνατή την εκτέλεση JavaScript χωρίς χρήση JIT (χρησιμοποιείται μόνο ο διερμηνέας) και χωρίς εκχώρηση εκτελέσιμης μνήμης κατά την εκτέλεση του κώδικα. Η απενεργοποίηση του JIT μπορεί να είναι χρήσιμη για τη βελτίωση της ασφάλειας κατά την εργασία με δυνητικά επικίνδυνες εφαρμογές ιστού, καθώς και για τη διασφάλιση δομών σε πλατφόρμες που απαγορεύουν τη χρήση JIT (για παράδειγμα, iOS, ορισμένες έξυπνες τηλεοράσεις και κονσόλες παιχνιδιών. Όταν το JIT είναι απενεργοποιημένο, η εκτέλεση JavaScript Η απόδοση μειώνεται κατά 40% στη δοκιμή Speedometer 2.0 και 80% στη δοκιμή Benchmark Web Tooling, αλλά κατά την προσομοίωση εργασίας με το YouTube, σημειώθηκε μείωση της απόδοσης μόνο κατά 6%, ενώ η κατανάλωση μνήμης μειώθηκε ελαφρά, μόνο κατά 1.7%.
  • Το V8 προσφέρει επίσης ένα μεγάλο μέρος νέων βελτιστοποιήσεων. Για παράδειγμα, η εκτέλεση κλήσεων συνάρτησης στις οποίες ο αριθμός των παραμέτρων που όντως μεταβιβάστηκαν δεν αντιστοιχεί στον αριθμό των ορισμάτων που καθορίζονται κατά τον ορισμό της συνάρτησης έχει επιταχυνθεί κατά 60%. Η πρόσβαση στις ιδιότητες DOM χρησιμοποιώντας τη συνάρτηση λήψης έχει επιταχυνθεί, γεγονός που έχει θετικό αντίκτυπο στην απόδοση του πλαισίου Angular. Η ανάλυση JavaScript έχει επιταχυνθεί: η βελτιστοποίηση του αποκωδικοποιητή UTF-8 κατέστησε δυνατή την αύξηση της απόδοσης του αναλυτή στη λειτουργία ροής (ανάλυση καθώς φορτώνεται) κατά 8%, και η εξάλειψη των περιττών λειτουργιών κατάργησης διπλότυπων έδωσε αύξηση κατά 10.5% ακόμη.
  • Έχουν γίνει εργασίες για τη μείωση της κατανάλωσης μνήμης του κινητήρα JavaScript.
    Προστέθηκε κώδικας για την εκκαθάριση της κρυφής μνήμης bytecode, η οποία καταλαμβάνει περίπου το 15% του συνολικού μεγέθους σωρού. Ένα στάδιο έχει προστεθεί στον συλλέκτη απορριμμάτων για την εξάλειψη του σπάνια μεταγλωττισμένου bytecode από τη μνήμη cache για συναρτήσεις που χρησιμοποιούνται ή συναρτήσεις που καλούνται μόνο κατά την αρχικοποίηση. Η απόφαση για εκκαθάριση λαμβάνεται με βάση νέους μετρητές που λαμβάνουν υπόψη την τελευταία φορά που έγινε πρόσβαση στον bytecode. Αυτή η αλλαγή μείωσε την κατανάλωση μνήμης κατά 5–15% χωρίς να επηρεάσει αρνητικά την απόδοση. Επιπλέον, ο μεταγλωττιστής bytecode αποκλείει τη δημιουργία προφανώς αχρησιμοποίητου κώδικα, για παράδειγμα, που ακολουθεί την επιστροφή ή τη διακοπή (αν δεν υπάρχει μετάβαση μετάβασης σε αυτόν).

    Έκδοση Chrome 74

  • Για WebAssembly εφαρμόστηκε υποστήριξη για νήματα και ατομικές λειτουργίες (API WebAssembly Threads και WebAssembly Atomics).
  • Για ξεχωριστή παράδοση σεναρίων, έχει προστεθεί υποστήριξη για την κεφαλίδα "#!", η οποία καθορίζει τον διερμηνέα που θα εκτελεστεί. Για παράδειγμα, παρόμοια με άλλες γλώσσες δέσμης ενεργειών, ένα αρχείο JavaScript μπορεί να μοιάζει κάπως έτσι:

    #!/usr/bin/env κόμβος
    console.log(42);

  • Ένα νέο ερώτημα μέσων προστέθηκε στο CSS "προτιμά-μειωμένη-κίνηση", επιτρέποντας στον ιστότοπο να προσδιορίζει την κατάσταση των ρυθμίσεων στο λειτουργικό σύστημα που σχετίζονται με την απενεργοποίηση κινούμενων εφέ. Χρησιμοποιώντας το προτεινόμενο αίτημα, ο κάτοχος του ιστότοπου κουτί ανακαλύψτε ότι ο χρήστης έχει απενεργοποιήσει τα κινούμενα εφέ και επίσης απενεργοποιήστε διάφορες λειτουργίες κινούμενων εικόνων στον ιστότοπο, για παράδειγμα, αφαιρέστε το εφέ ανακίνησης των κουμπιών που χρησιμοποιούνται για να προσελκύσουν την προσοχή.
  • Εκτός από τη δυνατότητα ορισμού δημόσιων πεδίων που εισήχθη στο Chrome 72 υποστήριξη που εφαρμόζεται Επισήμανση πεδίων ως ιδιωτικών, μετά την οποία η πρόσβαση στις τιμές τους θα είναι ανοιχτή μόνο εντός της τάξης. Για να επισημάνετε ένα πεδίο ως ιδιωτικό, προσθέστε ένα σύμβολο "#" πριν από το όνομα του πεδίου. Όπως και με τα δημόσια πεδία, οι ιδιωτικές ιδιοκτησίες δεν απαιτούν τη ρητή χρήση ενός κατασκευαστή.
  • Προστέθηκε η κεφαλίδα Feature-Policy HTTP, η οποία σας επιτρέπει να ελέγχετε τη συμπεριφορά του API και να ενεργοποιείτε ορισμένες λειτουργίες (για παράδειγμα, μπορείτε να ενεργοποιήσετε τη σύγχρονη λειτουργία του XMLHttpRequest ή να απενεργοποιήσετε το API γεωγραφικής τοποθεσίας). API JavaScript για τον έλεγχο της δραστηριότητας ορισμένων ευκαιριών. Για τους προγραμματιστές, υπάρχουν δύο νέες μέθοδοι document.featurePolicy και frame.featurePolicy, που προσφέρουν τρεις λειτουργίες:
    allowFeatures() για λήψη μιας λίστας χαρακτηριστικών που επιτρέπονται για τον τρέχοντα τομέα, allowFeature() για να ελέγχει επιλεκτικά εάν είναι ενεργοποιημένες συγκεκριμένες λειτουργίες και getAllowlistForFeature() για να επιστρέψει μια λίστα τομέων για τους οποίους επιτρέπεται ένα συγκεκριμένο χαρακτηριστικό στην τρέχουσα σελίδα.

  • Προστέθηκε πειραματική υποστήριξη ("chrome://flags#enable-text-fragment-anchor") για τη λειτουργία Κύλιση σε κείμενο, το οποίο σας επιτρέπει να σχηματίζετε συνδέσμους προς μεμονωμένες λέξεις ή φράσεις, χωρίς να προσδιορίζετε ρητά ετικέτες στο έγγραφο χρησιμοποιώντας την ετικέτα "a name" ή την ιδιότητα "id". Για να στείλετε έναν σύνδεσμο, προσφέρεται μια ειδική παράμετρος "#targetText=", στην οποία μπορείτε να καθορίσετε το κείμενο για τη μετάβαση. Επιτρέπεται ο καθορισμός μιας μάσκας που περιλαμβάνει φράσεις που υποδεικνύουν την αρχή και το τέλος του τμήματος χρησιμοποιώντας κόμμα ως διαχωριστικό τους (για παράδειγμα, "example.com#targetText=start%20words, end%20words");
  • Μια επιλογή έχει προστεθεί στον κατασκευαστή AudioContext ρυθμός δειγματοληψίας, που σας επιτρέπει να ορίσετε τον ρυθμό δειγματοληψίας για λειτουργίες ήχου μέσω του Web Audio API.
  • Προστέθηκε υποστήριξη τάξης Intl.Locale, το οποίο παρέχει μεθόδους ανάλυσης και επεξεργασίας παραμέτρων γλώσσας, περιοχής και στυλ που ορίζονται από τις τοπικές ρυθμίσεις, καθώς και για ανάγνωση και εγγραφή ετικετών επέκτασης Unicode, αποθήκευση ρυθμίσεων τοπικών ρυθμίσεων χρήστη σε σειριακή μορφή.
  • Μηχανισμός Υπογεγραμμένα ανταλλακτήρια HTTP (SXG) επεκτάθηκε με εργαλεία για ενημέρωση διανομείς περιεχομένου σχετικά με σφάλματα κατά τη λήψη υπογεγραμμένου περιεχομένου, όπως προβλήματα με την επαλήθευση πιστοποιητικού. Ο χειρισμός σφαλμάτων πραγματοποιείται μέσω επεκτάσεων API Καταγραφή σφαλμάτων δικτύου. Θυμηθείτε ότι το SXG позволяет ο κάτοχος ενός ιστότοπου, χρησιμοποιώντας μια ψηφιακή υπογραφή, εξουσιοδοτεί την τοποθέτηση ορισμένων σελίδων σε έναν άλλο ιστότοπο, μετά την οποία, εάν γίνει πρόσβαση σε αυτές τις σελίδες σε έναν δεύτερο ιστότοπο, το πρόγραμμα περιήγησης θα εμφανίσει στον χρήστη τη διεύθυνση URL του αρχικού ιστότοπου, παρά το γεγονός ότι ότι η σελίδα φορτώθηκε από διαφορετικό κεντρικό υπολογιστή.
  • Μια μέθοδος έχει προστεθεί στην κλάση TextEncoder encodeInto(), το οποίο σας επιτρέπει να γράψετε μια κωδικοποιημένη συμβολοσειρά απευθείας σε ένα προκατανεμημένο buffer. Η μέθοδος encodeInto() είναι μια εναλλακτική λύση υψηλής απόδοσης στη μέθοδο encode(), η οποία απαιτεί να εκτελείται μια λειτουργία κατανομής buffer κάθε φορά που γίνεται πρόσβαση σε αυτήν.
  • Εργαζόμενος στο Service εξασφαλισμένη αποθήκευση της κλήσης client.postMessage() μέχρι να είναι έτοιμο το έγγραφο. Τα μηνύματα που αποστέλλονται μέσω του client.postMessage() θα διατηρούνται μέχρι να αυξηθεί το συμβάν DOMContentLoaded, να οριστεί το onemessage ή να κληθεί το startMessages().
  • Όπως απαιτείται από την προδιαγραφή CSS Transitions προστέθηκε transitionrun, transitioncancel, transitionstart και transitionend συμβάντα που δημιουργούνται όταν μια μετάβαση CSS βρίσκεται στην ουρά, ακυρώνεται, ξεκινά ή τελειώνει την εκτέλεση.
  • Όταν καθορίζετε έναν λανθασμένο χαρακτήρα που κωδικοποιεί μέσω overrideMimeType() ή τύπου MIME για ένα XMLHttpRequest, τώρα επιστρέφει στο UTF-8 αντί για το Latin-1.
  • Η ιδιότητα "επιτρέπω-λήψεις-χωρίς-χρήστη-ενεργοποίηση", μέσω της οποίας ήταν δυνατή η αυτόματη λήψη αρχείων κατά την επεξεργασία iframes, έχει καταργηθεί και θα καταργηθεί σε μελλοντική κυκλοφορία. Στο μέλλον, η έναρξη λήψης αρχείων χωρίς ρητή ενέργεια από τον χρήστη θα απαγορεύεται, καθώς έχει χρησιμοποιηθεί ενεργά για κατάχρηση, αναγκαστική λήψη και εισαγωγή τμημάτων κακόβουλου λογισμικού στον υπολογιστή του χρήστη. Θα απαιτηθεί ένα κλικ από τον χρήστη στην ίδια σελίδα για να ξεκινήσει η λήψη. Η ιδιότητα είχε αρχικά προγραμματιστεί να καταργηθεί στο Chrome 74, αλλά η κατάργηση έγινε αναβλήθηκε έως το Chrome 76.
  • Ένα προαιρετικό σκοτεινό θέμα για τη σχεδίαση διεπαφής προσφέρεται για την πλατφόρμα των Windows (στην προηγούμενη έκδοση, ετοιμάστηκε ένα σκοτεινό θέμα για το macOS). Δεδομένου ότι η σκοτεινή σχεδίαση είναι σχεδόν πανομοιότυπη με τη σχεδίαση σε κατάσταση ανώνυμης περιήγησης, έχει προστεθεί μια ειδική ένδειξη αντί για το εικονίδιο του προφίλ χρήστη για να τονίσει τον ιδιωτικό τρόπο λειτουργίας.
  • Προστέθηκε μια ευκαιρία για εταιρικούς χρήστες Διαχείριση cloud του προγράμματος περιήγησης Chrome για τη διαχείριση των ρυθμίσεων του προγράμματος περιήγησης χρήστη μέσω της κονσόλας διαχειριστή Google·

    Έκδοση Chrome 74

Εκτός από τις καινοτομίες και τις διορθώσεις σφαλμάτων, η νέα έκδοση εξαλείφει 39 τρωτά σημεία. Πολλά από τα τρωτά σημεία εντοπίστηκαν ως αποτέλεσμα αυτοματοποιημένων δοκιμών με εργαλεία AddressSanitizer, MemorySanitizer, Ακεραιότητα ροής ελέγχου, LibFuzzer и AFL. Δεν έχουν εντοπιστεί κρίσιμα προβλήματα που θα επέτρεπαν σε κάποιον να παρακάμψει όλα τα επίπεδα προστασίας του προγράμματος περιήγησης και να εκτελέσει κώδικα στο σύστημα εκτός του περιβάλλοντος sandbox. Ως μέρος του προγράμματος για την πληρωμή ανταμοιβών σε μετρητά για τον εντοπισμό τρωτών σημείων για την τρέχουσα έκδοση, η Google κατέβαλε 19 βραβεία ύψους 26837 $ (τέσσερα βραβεία 3000 $, τέσσερα βραβεία 2000 $, ένα βραβείο $1337, τέσσερα βραβεία $1000, τρία βραβεία $500). Το μέγεθος των 4 ανταμοιβών δεν έχει ακόμη καθοριστεί.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο