Google ได้เปิดตัว Chrome 105 เว็บเบราว์เซอร์ฟรีแล้ว นอกจากนี้ยังมีโครงการ Chromium โอเพนซอร์ส ซึ่งเป็นรากฐานของ Chrome เวอร์ชันเสถียรให้ใช้งานแล้ว Chrome แตกต่างจาก Chromium ในด้านการใช้โลโก้ Google ระบบแจ้งเตือนข้อขัดข้อง โมดูลสำหรับการเล่นเนื้อหาวิดีโอที่ป้องกันการคัดลอก (DRM) การติดตั้งอัปเดตอัตโนมัติ การแยกแซนด์บ็อกซ์แบบเปิดตลอดเวลา การจัดเตรียมคีย์ Google API และการส่งพารามิเตอร์ RLZ ระหว่างการค้นหา สำหรับผู้ที่ต้องการเวลาเพิ่มเติมในการอัปเดต จะมีการแยกส่วน Extended Stable แยกต่างหากเป็นเวลาแปดสัปดาห์ Chrome 106 เวอร์ชันถัดไปมีกำหนดเปิดตัวในวันที่ 27 กันยายน
การเปลี่ยนแปลงที่สำคัญใน Chrome 105:
- การสนับสนุนแอป Chrome แบบเฉพาะได้ถูกยกเลิกแล้ว และถูกแทนที่ด้วยแอปเว็บแบบสแตนด์อโลนที่ใช้เทคโนโลยี Progressive Web Apps (PWA) และ Web API มาตรฐาน เดิมที Google ได้ประกาศความตั้งใจที่จะเลิกใช้แอป Chrome ในปี 2016 และวางแผนที่จะยุติการสนับสนุนภายในปี 2018 แต่ต่อมาได้เลื่อนแผนนี้ออกไป ใน Chrome 105 ผู้ใช้ที่พยายามติดตั้งแอป Chrome จะเห็นคำเตือนเกี่ยวกับการเลิกใช้ แต่แอปจะยังคงทำงานได้ ส่วนใน Chrome 109 ความสามารถในการเรียกใช้แอป Chrome จะถูกปิดใช้งาน
- มีการแยกส่วนเพิ่มเติมสำหรับกระบวนการ "renderer" ซึ่งรับผิดชอบการเรนเดอร์ ขณะนี้กระบวนการนี้ทำงานในคอนเทนเนอร์เพิ่มเติม (App Container) ซึ่งติดตั้งทับระบบแยกส่วนแซนด์บ็อกซ์ที่มีอยู่ หากมีการใช้ประโยชน์จากช่องโหว่ในโค้ดเรนเดอร์ ข้อจำกัดที่เพิ่มเข้ามาเหล่านี้จะป้องกันไม่ให้ผู้โจมตีเข้าถึงเครือข่ายได้โดยการปิดใช้งานการเรียกใช้ระบบที่เกี่ยวข้องกับเครือข่าย
- มีการติดตั้งระบบจัดเก็บใบรับรองรูทแบบรวมที่เป็นกรรมสิทธิ์สำหรับหน่วยงานออกใบรับรอง (Chrome Root Store) แล้ว ระบบจัดเก็บใหม่นี้ยังไม่ได้เปิดใช้งานตามค่าเริ่มต้น และจนกว่าการติดตั้งจะเสร็จสมบูรณ์ ใบรับรองจะยังคงได้รับการตรวจสอบโดยใช้ระบบจัดเก็บเฉพาะสำหรับแต่ละระบบปฏิบัติการ โซลูชันนี้คล้ายกับแนวทางของ Mozilla ซึ่งรักษาระบบจัดเก็บใบรับรองรูทแยกต่างหากสำหรับ Firefox ซึ่งใช้เป็นลิงก์แรกในห่วงโซ่ความน่าเชื่อถือสำหรับใบรับรองเมื่อเข้าถึงเว็บไซต์ผ่าน HTTPS
- ได้เริ่มมีการเตรียมการเลิกใช้ Web SQL API แล้ว ซึ่งไม่ได้มาตรฐาน ใช้งานน้อยมาก และจำเป็นต้องปรับปรุงแก้ไขเพื่อให้เป็นไปตามข้อกำหนดด้านความปลอดภัยสมัยใหม่ Chrome 105 ห้ามการเข้าถึง Web SQL จากโค้ดที่โหลดโดยไม่ใช้ HTTPS และมีการเพิ่มคำเตือนการเลิกใช้ลงใน DevTools Web SQL API มีกำหนดจะยกเลิกในปี 2023 ส่วน Web SQL API ที่ใช้ WebAssembly จะพร้อมใช้งานสำหรับนักพัฒนาที่ต้องการฟังก์ชันการทำงานที่คล้ายคลึงกัน
- Chrome Sync ได้ยกเลิกการสนับสนุนการซิงค์กับ Chrome 73 และรุ่นก่อนหน้าแล้ว
- สำหรับแพลตฟอร์ม macOS и Windows โปรแกรมดูใบรับรองในตัวได้ถูกเปิดใช้งานแล้ว โดยจะแทนที่การเรียกใช้อินเทอร์เฟซที่ระบบปฏิบัติการจัดให้ ก่อนหน้านี้ โปรแกรมดูใบรับรองในตัวนี้ใช้เฉพาะในการสร้างสำหรับ Linux และ ChromeOS
- ในเวอร์ชันสำหรับแพลตฟอร์ม Android เพิ่มการตั้งค่าสำหรับการจัดการ API "หัวข้อและกลุ่มความสนใจ" ซึ่งได้รับการส่งเสริมเป็นส่วนหนึ่งของโครงการ Privacy Sandbox และช่วยให้สามารถระบุหมวดหมู่ความสนใจของผู้ใช้และนำไปใช้แทนคุกกี้ติดตามเพื่อระบุกลุ่มผู้ใช้ที่มีความสนใจคล้ายกันโดยไม่ระบุตัวตนผู้ใช้แต่ละราย การตั้งค่าที่คล้ายกันนี้ได้ถูกเพิ่มเข้าไปในเวอร์ชันของรุ่นก่อนหน้าแล้ว Linux, ChromeOS, macOS и Windows.
- เมื่อคุณเปิดใช้งานการปกป้องเบราว์เซอร์ขั้นสูง (Safe Browsing > การปกป้องขั้นสูง) ระบบจะรวบรวมข้อมูลระยะไกลเกี่ยวกับส่วนเสริมที่ติดตั้ง การเข้าถึง API และการเชื่อมต่อกับเว็บไซต์ภายนอก ข้อมูลนี้จะถูกใช้บนเซิร์ฟเวอร์ของ Google เพื่อตรวจจับกิจกรรมที่เป็นอันตรายและการละเมิดนโยบายโดยส่วนเสริมของเบราว์เซอร์
- ความสามารถในการใช้ตัวอักษรที่ไม่ใช่ ASCII ในโดเมนที่ระบุในส่วนหัวคุกกี้ (สำหรับโดเมน IDN ให้ระบุโดเมนในรูปแบบ punycode) ไม่ได้รับการสนับสนุนอีกต่อไปและจะถูกบล็อกใน Chrome 106 การเปลี่ยนแปลงนี้จะทำให้เบราว์เซอร์สอดคล้องกับ RFC 6265bis และลักษณะการทำงานที่ใช้ใน Firefox
- Custom Highlight API ออกแบบมาเพื่อปรับแต่งรูปแบบของพื้นที่ข้อความที่ไฮไลต์ โดยขจัดรูปแบบคงที่ของเบราว์เซอร์สำหรับการไฮไลต์ (::selection, ::inactive-selection) และการไฮไลต์ข้อผิดพลาดทางไวยากรณ์ (::spelling-error, ::grammar-error) API เวอร์ชันเริ่มต้นรองรับการเปลี่ยนสีข้อความและพื้นหลังโดยใช้องค์ประกอบเทียมสีและสีพื้นหลัง แต่จะมีการเพิ่มตัวเลือกการปรับแต่งรูปแบบอื่นๆ ในอนาคต
ตัวอย่างงานที่สามารถแก้ไขได้ด้วย API ใหม่ ได้แก่ การเพิ่มกลไกการไฮไลต์ข้อความแบบเนทีฟ การไฮไลต์ตัวแปรระหว่างการแก้ไขแบบหลายผู้ใช้พร้อมกัน การค้นหาในเอกสารเสมือน และการตรวจสอบการสะกดคำในเฟรมเวิร์กเว็บที่จัดเตรียมเครื่องมือแก้ไขข้อความ ก่อนหน้านี้ การสร้างไฮไลต์แบบกำหนดเองจำเป็นต้องใช้การจัดการ DOM Tree ที่ซับซ้อน แต่ Custom Highlight API มีการดำเนินการสำเร็จรูปสำหรับการเพิ่มและลบไฮไลต์โดยไม่ส่งผลกระทบต่อโครงสร้าง DOM และการใช้สไตล์ที่เชื่อมโยงกับออบเจ็กต์ Range
- มีการเพิ่มคิวรี @container ลงใน CSS ซึ่งช่วยให้คุณกำหนดสไตล์ขององค์ประกอบตามขนาดขององค์ประกอบหลักได้ คิวรี @container มีลักษณะคล้ายกับคิวรี @media แต่ใช้กับขนาดของบล็อก (คอนเทนเนอร์) ที่วางองค์ประกอบนั้นไว้ แทนที่จะเป็นขนาดของพื้นที่ที่มองเห็นทั้งหมด วิธีนี้ช่วยให้คุณกำหนดตรรกะสไตล์ของคุณเองสำหรับองค์ประกอบย่อยได้ โดยไม่คำนึงว่าองค์ประกอบนั้นจะถูกวางไว้ที่ใดบนหน้าเว็บ

- มีการเพิ่มคลาสเสมือน CSS ":has()" เพื่อตรวจสอบว่ามีองค์ประกอบย่อยอยู่ในองค์ประกอบหลักหรือไม่ ตัวอย่างเช่น "p:has(span)" จะขยายองค์ประกอบ , ซึ่งภายในมีธาตุ .
- มีการเพิ่ม HTML Sanitizer API ซึ่งทำให้คุณสามารถลบองค์ประกอบต่างๆ ออกจากเนื้อหาที่ส่งผลต่อการแสดงผลและการดำเนินการเมื่อส่งออกผ่านเมธอด setHTML() API นี้สามารถเป็นประโยชน์ในการล้างข้อมูลภายนอกที่เข้ามา เพื่อลบแท็ก HTML ที่อาจนำไปใช้โจมตี XSS ได้
- มีการจัดเตรียมความสามารถในการใช้ Streams (ReadableStream) API เพื่อส่งคำขอดึงข้อมูลก่อนที่จะโหลดเนื้อหาการตอบสนอง ซึ่งหมายความว่า คุณสามารถเริ่มส่งข้อมูลได้โดยไม่ต้องรอให้หน้าสร้างเสร็จ
- สำหรับเว็บแอปพลิเคชันแบบสแตนด์อโลนที่ติดตั้งแล้ว (PWA, Progressive Web App) ขณะนี้สามารถเปลี่ยนการออกแบบแถบชื่อเรื่องของหน้าต่างได้โดยใช้คอมโพเนนต์ Window Controls Overlay คอมโพเนนต์เหล่านี้จะขยายพื้นที่หน้าจอของเว็บแอปพลิเคชันให้ครอบคลุมทั้งหน้าต่าง ทำให้เว็บแอปพลิเคชันมีรูปลักษณ์เหมือนแอปพลิเคชันเดสก์ท็อปมาตรฐาน เว็บแอปพลิเคชันสามารถควบคุมการเรนเดอร์และการจัดการอินพุตสำหรับหน้าต่างทั้งหมดได้ ยกเว้นบล็อกโอเวอร์เลย์ที่มีปุ่มควบคุมหน้าต่างมาตรฐาน (ปิด ย่อ และขยาย)

- ความสามารถในการเข้าถึงส่วนขยายแหล่งสื่อจากเวิร์กเกอร์เฉพาะ (ในบริบทของ DedicatedWorker) ได้รับการพัฒนาให้มีเสถียรภาพแล้ว ซึ่งสามารถใช้เพื่อปรับปรุงประสิทธิภาพการเล่นสื่อบัฟเฟอร์ได้ เช่น การสร้างอ็อบเจ็กต์ MediaSource ในเวิร์กเกอร์แยกต่างหาก และออกอากาศผลลัพธ์ไปยัง HTMLMediaElement ในเธรดหลัก
- ใน Client Hints API ซึ่งกำลังได้รับการพัฒนาเพื่อทดแทนส่วนหัว User-Agent และอนุญาตให้ส่งคืนข้อมูลเกี่ยวกับพารามิเตอร์ของเบราว์เซอร์และระบบที่เฉพาะเจาะจง (เวอร์ชัน แพลตฟอร์ม ฯลฯ) เฉพาะหลังจากได้รับการร้องขอเท่านั้น เซิร์ฟเวอร์เพิ่มการรองรับคุณสมบัติ Sec-CH-Viewport-Heigh ซึ่งช่วยให้คุณได้รับข้อมูลเกี่ยวกับความสูงของวิวพอร์ต รูปแบบมาร์กอัปสำหรับการระบุพารามิเตอร์ Client Hints ในแท็ก "meta" สำหรับทรัพยากรภายนอกได้ถูกเปลี่ยนแปลง: ก่อนหน้านี้: มันกลายเป็น:
- เพิ่มความสามารถในการสร้างตัวจัดการเหตุการณ์ onbeforeinput ทั่วโลก (document.documentElement.onbeforeinput) ซึ่งแอปพลิเคชันเว็บสามารถใช้เพื่อแทนที่พฤติกรรมเมื่อแก้ไขข้อความในบล็อกได้ - และองค์ประกอบอื่นๆ ที่มีชุดแอตทริบิวต์ "contenteditable" ในระยะก่อนที่เบราว์เซอร์จะเปลี่ยนเนื้อหาขององค์ประกอบและต้นไม้ DOM
- Navigation API ได้ขยายขีดความสามารถ ช่วยให้เว็บแอปพลิเคชันสามารถดักจับการทำงานของการนำทางหน้าต่าง เริ่มต้นการเปลี่ยนผ่าน และวิเคราะห์ประวัติของแอปพลิเคชันได้ มีการเพิ่มเมธอดใหม่ ได้แก่ intercept() สำหรับการดักจับการเปลี่ยนผ่าน และ scroll() สำหรับการเลื่อนไปยังตำแหน่งที่กำหนด
- เพิ่มวิธีคงที่ Response.json() ซึ่งทำให้คุณสามารถสร้างเนื้อหาการตอบสนองโดยอิงตามข้อมูล JSON ได้
- มีการปรับปรุงเครื่องมือสำหรับนักพัฒนาเว็บ ในส่วนของดีบักเกอร์ การแก้ไขสแต็กฟังก์ชันบนสุดเมื่อเกิดจุดพัก (breakpoint) สามารถทำได้โดยไม่ต้องขัดจังหวะเซสชันดีบัก แผง Recorder ซึ่งช่วยให้สามารถบันทึก เล่นซ้ำ และวิเคราะห์การกระทำของผู้ใช้บนหน้าเว็บได้ รองรับทั้ง breakpoint, single-step playback และการบันทึกเหตุการณ์ขณะเลื่อนเมาส์
มีการเพิ่มเมตริก LCP (Largest Contentful Paint) ลงในแผงการวิเคราะห์ประสิทธิภาพ เพื่อระบุความล่าช้าเมื่อเรนเดอร์องค์ประกอบขนาดใหญ่ (ที่ผู้ใช้มองเห็นได้) ในวิวพอร์ต เช่น รูปภาพ วิดีโอ และองค์ประกอบแบบบล็อก ขณะนี้แผงองค์ประกอบจะแสดงภาพซ้อนทับที่แสดงบนเนื้อหาอื่นๆ ด้วยไอคอนพิเศษ สำหรับ WebAssembly ได้มีการเพิ่มความสามารถในการดาวน์โหลดข้อมูลการดีบักในรูปแบบ DWARF
นอกเหนือจากฟีเจอร์ใหม่และการแก้ไขข้อบกพร่องแล้ว เวอร์ชันใหม่นี้ยังได้แก้ไขช่องโหว่ 24 จุด ช่องโหว่จำนวนมากได้รับการระบุผ่านการทดสอบอัตโนมัติโดยใช้ AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer และ AFL ไม่พบปัญหาสำคัญที่อาจนำไปสู่การข้ามการป้องกันเบราว์เซอร์ทุกชั้นและรันโค้ดในระบบนอกสภาพแวดล้อมแซนด์บ็อกซ์ ในโครงการ Vulnerability Bounty Program ของเวอร์ชันปัจจุบัน Google ได้มอบรางวัล 21 รายการ รวมมูลค่า 60500 ดอลลาร์สหรัฐ (รางวัล 10000 ดอลลาร์สหรัฐ 1 รายการ, รางวัล 9000 ดอลลาร์สหรัฐ 1 รายการ, รางวัล 7500 ดอลลาร์สหรัฐ 1 รายการ, รางวัล 7000 ดอลลาร์สหรัฐ 1 รายการ, รางวัล 5000 ดอลลาร์สหรัฐ 2 รายการ, รางวัล 3000 ดอลลาร์สหรัฐ 4 รายการ, รางวัล 2000 ดอลลาร์สหรัฐ 2 รายการ และรางวัล 1000 ดอลลาร์สหรัฐ 1 รายการ) ยังไม่ได้กำหนดจำนวนเงินรางวัลทั้ง 7 รายการ
ที่มา: opennet.ru


