Google นำเสนอ การเปิดตัวเว็บเบราว์เซอร์ 74 Chrome... พร้อมกัน ใช้ได้ การเปิดตัวโครงการฟรีที่เสถียร โครเมียมซึ่งเป็นพื้นฐานของ Chrome เบราว์เซอร์ Chrome ต่าง การใช้โลโก้ Google, ความสามารถในการดาวน์โหลดโมดูล Flash ตามคำขอ, การมีระบบสำหรับส่งการแจ้งเตือนในกรณีที่เกิดข้อขัดข้อง, โมดูลสำหรับการเล่นเนื้อหาวิดีโอที่มีการป้องกัน, ระบบสำหรับการติดตั้งการอัปเดตและการส่งโดยอัตโนมัติระหว่างการค้นหา พารามิเตอร์ RLZ. Chrome 75 รุ่นถัดไปมีกำหนดการในวันที่ 4 มิถุนายน

หลัก การเปลี่ยนแปลง в Chrome 74:

  • เมื่อเกิดเหตุการณ์ onUnload ซึ่งเรียกว่าเมื่อปิดเพจแล้ว ห้าม แสดงหน้าต่างป๊อปอัป (การเรียก window.open() ถูกบล็อก) ซึ่งจะปกป้องผู้ใช้จากการถูกบังคับให้เปิดหน้าโฆษณาหลังจากปิดไซต์ที่น่าสงสัย
  • ในเอ็นจิ้นจาวาสคริปต์ นำไปใช้ ระบอบการปกครองใหม่ได้ปรากฏขึ้น JIT น้อยกว่า (“—jitless”) ซึ่งทำให้สามารถรัน JavaScript ได้โดยไม่ต้องใช้ JIT (ใช้เฉพาะล่ามเท่านั้น) และไม่มีการจัดสรรหน่วยความจำที่ปฏิบัติการได้ในระหว่างการเรียกใช้โค้ด การปิดใช้งาน JIT อาจมีประโยชน์ในการปรับปรุงความปลอดภัยเมื่อทำงานกับแอปพลิเคชันเว็บที่อาจเป็นอันตราย รวมถึงเพื่อให้แน่ใจว่าบิลด์บนแพลตฟอร์มที่ห้ามการใช้ JIT (เช่น iOS สมาร์ททีวีบางรุ่น และคอนโซลเกม เมื่อปิดใช้งาน JIT การดำเนินการ JavaScript ประสิทธิภาพลดลง 40% ในการทดสอบ Speedometer 2.0 และ 80% ในการทดสอบ Web Tooling Benchmark แต่เมื่อจำลองการทำงานกับ YouTube ประสิทธิภาพลดลงเพียง 6% ในขณะที่การใช้หน่วยความจำลดลงเล็กน้อยเพียง 1.7%
  • V8 ยังมีการเพิ่มประสิทธิภาพใหม่ๆ มากมายอีกด้วย ตัวอย่างเช่น การดำเนินการเรียกฟังก์ชันซึ่งจำนวนพารามิเตอร์ที่ส่งจริงไม่ตรงกับจำนวนอาร์กิวเมนต์ที่ระบุเมื่อกำหนดฟังก์ชันจะถูกเร่งขึ้น 60% การเข้าถึงคุณสมบัติ DOM โดยใช้ฟังก์ชัน get ได้รับการเร่งความเร็ว ซึ่งส่งผลดีต่อประสิทธิภาพของกรอบงาน Angular การแยกวิเคราะห์ JavaScript ได้รับการเร่ง: การเพิ่มประสิทธิภาพของตัวถอดรหัส UTF-8 ทำให้สามารถเพิ่มประสิทธิภาพตัวแยกวิเคราะห์ในโหมดสตรีมมิ่ง (การแยกวิเคราะห์ขณะโหลด) ได้ 8% และการกำจัดการดำเนินการขจัดข้อมูลซ้ำซ้อนที่ไม่จำเป็นออกไปทำให้เพิ่มขึ้นอีก 10.5%
  • มีการทำงานเพื่อลดการใช้หน่วยความจำของเอ็นจิ้น JavaScript
    เพิ่มโค้ดเพื่อล้างแคช bytecode ซึ่งกินพื้นที่ประมาณ 15% ของขนาดฮีปทั้งหมด มีการเพิ่มขั้นตอนลงในตัวรวบรวมขยะเพื่อกำจัดไบต์โค้ดที่คอมไพล์ไม่บ่อยออกจากแคชสำหรับฟังก์ชันที่ใช้หรือฟังก์ชันที่ถูกเรียกใช้เฉพาะเมื่อเตรียมใช้งานเท่านั้น การตัดสินใจล้างข้อมูลจะขึ้นอยู่กับตัวนับใหม่ที่คำนึงถึงครั้งล่าสุดที่มีการเข้าถึงรหัสไบต์ การเปลี่ยนแปลงนี้ลดการใช้หน่วยความจำลง 5–15% โดยไม่ส่งผลเสียต่อประสิทธิภาพ นอกจากนี้ คอมไพลเลอร์ bytecode ยังไม่รวมการสร้างโค้ดที่ไม่ได้ใช้อย่างเห็นได้ชัด เช่น ซึ่งตามหลังการส่งคืนหรือตัวแบ่ง (หากไม่มีการเปลี่ยน Jump)

    Chrome รุ่น 74

  • สำหรับ WebAssembly นำไปใช้ รองรับเธรดและการดำเนินการอะตอมมิก (API WebAssembly Threads และ WebAssembly Atomics)
  • สำหรับการจัดส่งสคริปต์แยกกัน มีการเพิ่มการรองรับส่วนหัว “#!” ซึ่งกำหนดล่ามที่จะทำงาน ตัวอย่างเช่น เช่นเดียวกับภาษาสคริปต์อื่นๆ ไฟล์ JavaScript อาจมีลักษณะดังนี้:

    #!/usr/bin/env โหนด
    คอนโซล.บันทึก(42);

  • มีการเพิ่มคิวรีสื่อใหม่ลงใน CSS "ชอบ-ลด-การเคลื่อนไหว“ ช่วยให้ไซต์สามารถกำหนดสถานะของการตั้งค่าในระบบปฏิบัติการที่เกี่ยวข้องกับการปิดใช้งานเอฟเฟกต์ภาพเคลื่อนไหว โดยใช้คำขอที่แนะนำเจ้าของไซต์ สามารถ พบว่าผู้ใช้ปิดใช้งานเอฟเฟกต์ภาพเคลื่อนไหวและปิดใช้งานฟีเจอร์ภาพเคลื่อนไหวต่าง ๆ บนไซต์ เช่น ลบเอฟเฟกต์การสั่นของปุ่มที่ใช้เพื่อดึงดูดความสนใจ
  • นอกเหนือจากความสามารถในการกำหนดช่องสาธารณะที่นำมาใช้ใน Chrome 72 แล้ว การสนับสนุนดำเนินการ การทำเครื่องหมายฟิลด์เป็นส่วนตัว หลังจากนั้นการเข้าถึงค่าของฟิลด์นั้นจะเปิดเฉพาะภายในคลาสเท่านั้น หากต้องการทำเครื่องหมายช่องให้เป็นส่วนตัว ให้เพิ่มเครื่องหมาย “#” หน้าชื่อช่อง เช่นเดียวกับฟิลด์สาธารณะ คุณสมบัติส่วนตัวไม่จำเป็นต้องใช้ตัวสร้างอย่างชัดเจน
  • เพิ่มส่วนหัว Feature-Policy HTTP ซึ่งช่วยให้คุณควบคุมพฤติกรรมของ API และเปิดใช้งานคุณสมบัติบางอย่างได้ (เช่น คุณสามารถเปิดใช้งานโหมดการทำงานแบบซิงโครนัสของ XMLHttpRequest หรือปิดการใช้งาน Geolocation API) ได้ถูกเพิ่มแล้ว JavaScript API เพื่อควบคุมกิจกรรมของโอกาสบางอย่าง สำหรับนักพัฒนา มีสองเมธอดใหม่ document.featurePolicy และ frame.featurePolicy ซึ่งมี 3 ฟังก์ชัน:
    AllowFeatures() เพื่อรับรายการคุณสมบัติที่อนุญาตสำหรับโดเมนปัจจุบัน AllowFeature() เพื่อเลือกตรวจสอบว่าได้เปิดใช้งานคุณสมบัติเฉพาะหรือไม่ และ getAllowlistForFeature() เพื่อส่งคืนรายการโดเมนที่อนุญาตให้ใช้คุณสมบัติที่ระบุในหน้าปัจจุบัน

  • เพิ่มการรองรับการทดลอง (“chrome://flags#enable-text-fragment-anchor”) สำหรับโหมดนี้ เลื่อนเป็นข้อความซึ่งช่วยให้คุณสามารถสร้างลิงก์ไปยังคำหรือวลีแต่ละรายการ โดยไม่ต้องระบุป้ายกำกับในเอกสารอย่างชัดเจนโดยใช้แท็ก "ชื่อ" หรือคุณสมบัติ "id" ในการส่งลิงก์ มีการเสนอพารามิเตอร์พิเศษ “#targetText=” ซึ่งคุณสามารถระบุข้อความสำหรับการเปลี่ยนแปลงได้ อนุญาตให้ระบุมาสก์ที่มีวลีที่ระบุจุดเริ่มต้นและจุดสิ้นสุดของส่วนย่อยโดยใช้เครื่องหมายจุลภาคเป็นตัวคั่น (เช่น “example.com#targetText=start%20words, end%20words”)
  • มีการเพิ่มตัวเลือกให้กับตัวสร้าง AudioContext อัตราการสุ่มตัวอย่างซึ่งช่วยให้คุณตั้งค่าอัตราการสุ่มตัวอย่างสำหรับการทำงานด้านเสียงผ่าน Web Audio API
  • เพิ่มการสนับสนุนชั้นเรียน นานาชาติสถานที่ซึ่งจัดเตรียมวิธีการสำหรับการแยกวิเคราะห์และประมวลผลพารามิเตอร์ภาษา ภูมิภาค และสไตล์ที่ตั้งค่าโดยโลแคล เช่นเดียวกับการอ่านและเขียนแท็กส่วนขยาย Unicode บันทึกการตั้งค่าโลแคลของผู้ใช้ในรูปแบบซีเรียลไลซ์
  • กลไก การแลกเปลี่ยน HTTP ที่ลงนาม (SXG) ขยายด้วยเครื่องมือสำหรับ แจ้งให้ทราบ ผู้จัดจำหน่ายเนื้อหาเกี่ยวกับข้อผิดพลาดในการดาวน์โหลดเนื้อหาที่เซ็นชื่อ เช่น ปัญหาในการตรวจสอบใบรับรอง การจัดการข้อผิดพลาดทำได้ผ่านส่วนขยาย API การบันทึกข้อผิดพลาดของเครือข่าย. จำได้ว่า SXG ช่วยให้ เจ้าของไซต์หนึ่งโดยใช้ลายเซ็นดิจิทัลอนุญาตให้วางตำแหน่งของหน้าบางหน้าบนไซต์อื่น หลังจากนั้นหากเข้าถึงหน้าเหล่านี้บนไซต์ที่สอง เบราว์เซอร์จะแสดงให้ผู้ใช้เห็น URL ของไซต์ดั้งเดิม แม้ว่าข้อเท็จจริงแล้ว เพจถูกโหลดจากโฮสต์อื่น
  • มีการเพิ่มวิธีการในคลาส TextEncoder เข้ารหัสเข้า()ซึ่งช่วยให้คุณสามารถเขียนสตริงที่เข้ารหัสลงในบัฟเฟอร์ที่จัดสรรไว้ล่วงหน้าได้โดยตรง เมธอด encodeInto() เป็นทางเลือกที่มีประสิทธิภาพสูงแทนเมธอด encode() ซึ่งจำเป็นต้องมีการดำเนินการจัดสรรบัฟเฟอร์ทุกครั้งที่มีการเข้าถึง
  • ในพนักงานบริการ ที่ให้ไว้ บัฟเฟอร์การเรียก client.postMessage() จนกว่าเอกสารจะพร้อม ข้อความที่ส่งผ่าน client.postMessage() จะถูกเก็บไว้จนกว่าเหตุการณ์ DOMContentLoaded จะเพิ่มขึ้น ตั้งค่า onmessage หรือเรียก startMessages()
  • ตามที่กำหนดโดยข้อกำหนดเฉพาะของการเปลี่ยน CSS เพิ่ม เหตุการณ์ transitionrun, transitioncancel, transitionstart และ transitionend ที่สร้างขึ้นเมื่อมีการจัดคิว ยกเลิก เริ่ม หรือเสร็จสิ้นการดำเนินการการเปลี่ยนแปลง CSS
  • เมื่อระบุการเข้ารหัสอักขระที่ไม่ถูกต้องผ่าน overrideMimeType() หรือประเภท MIME สำหรับ XMLHttpRequest ตอนนี้จะถอยกลับไปเป็น UTF-8 แทนที่จะเป็น Latin-1
  • คุณสมบัติ “อนุญาตให้ดาวน์โหลดโดยไม่ต้องเปิดใช้งานผู้ใช้” ซึ่งทำให้ดาวน์โหลดไฟล์ได้โดยอัตโนมัติเมื่อประมวลผล iframe นั้นเลิกใช้แล้วและจะถูกลบออกในรุ่นต่อๆ ไป ในอนาคต การดาวน์โหลดไฟล์โดยไม่ให้ผู้ใช้ดำเนินการอย่างชัดแจ้งจะถูกห้าม เนื่องจากมีการใช้งานในทางที่ผิด บังคับให้ดาวน์โหลด และแทรกมัลแวร์บางส่วนลงในคอมพิวเตอร์ของผู้ใช้ ผู้ใช้จะต้องคลิกบนหน้าเดียวกันเพื่อเริ่มการดาวน์โหลด เดิมทีมีการวางแผนให้นำทรัพย์สินออกใน Chrome 74 แต่การลบออกแล้ว เลื่อนออกไป จนถึง Chrome 76
  • มีการเสนอธีมสีเข้มเสริมสำหรับการออกแบบอินเทอร์เฟซสำหรับแพลตฟอร์ม Windows (ในรีลีสก่อนหน้านี้ ธีมสีเข้มได้เตรียมไว้สำหรับ macOS) เนื่องจากการออกแบบสีเข้มเกือบจะเหมือนกับการออกแบบในโหมดไม่ระบุตัวตน จึงมีการเพิ่มตัวบ่งชี้พิเศษแทนไอคอนโปรไฟล์ผู้ใช้เพื่อเน้นโหมดการทำงานส่วนตัว
  • เพิ่มโอกาสสำหรับผู้ใช้องค์กรแล้ว การจัดการระบบคลาวด์ของเบราว์เซอร์ Chrome เพื่อจัดการการตั้งค่าเบราว์เซอร์ของผู้ใช้ผ่านคอนโซลผู้ดูแลระบบของ Google

    Chrome รุ่น 74

นอกจากนวัตกรรมและการแก้ไขข้อบกพร่องแล้ว เวอร์ชันใหม่ยังกำจัดอีกด้วย 39 ช่องโหว่. ช่องโหว่จำนวนมากถูกระบุเป็นผลจากเครื่องมือทดสอบอัตโนมัติ ที่อยู่Sanitizer, MemorySanitizer, ควบคุมความสมบูรณ์ของการไหล, LibFuzzer и แอฟ. ไม่พบปัญหาสำคัญที่ทำให้สามารถข้ามการป้องกันเบราว์เซอร์ทุกระดับและรันโค้ดบนระบบภายนอกสภาพแวดล้อมแซนด์บ็อกซ์ Google จ่ายเงินรางวัล 19 รางวัลเป็นมูลค่า 26837 ดอลลาร์ (รางวัล 3000 ดอลลาร์ 2000 รางวัล 1337 ดอลลาร์ 1000 รางวัล 500 รางวัล 4 ดอลลาร์ XNUMX รางวัล XNUMX ดอลลาร์ XNUMX รางวัล และ XNUMX ดอลลาร์ XNUMX รางวัล) ขนาดของรางวัลทั้ง XNUMX ยังไม่ได้กำหนด

ที่มา: opennet.ru

เพิ่มความคิดเห็น