ทีมวิศวกร Chrome เล่าเบื้องหลังการแก้ปัญหา Chrome บน Android เลื่อนหน้าจอแล้วไม่ลื่นเท่ากับบน iOS ซึ่งอาการเกิดเป็นช่วงๆ ไม่เกิดขึ้นสม่ำเสมอด้วย เป็นบั๊กปริศนาที่กวนใจทีมงานมานาน จึงตั้งใจสืบสวนสาเหตุว่าเกิดจากอะไรกันแน่
ทีมงานลองหาาสาเหตุหลายจุด ก่อนไปพบว่าการดักจับความเคลื่อนไหวของนิ้วบนหน้าจอ (screen displacement รูปขวา) ไม่เท่ากับความเคลื่อนไหวของนิ้วจริงๆ (finger displacement รูปซ้าย) ทำให้เมื่อนำข้อมูลนิ้วที่จับได้ไปประมวลผลจึงออกมาไม่ตรงกับนิ้วจริงๆ
ทีมงานลองค้นหาสาเหตุว่าทำไมถึงเป็นอย่างนี้ เจอสาเหตุร่วมกัน 2 ข้อ
ตัว API ของ Android ที่ดักจับความแม่นยำระดับ nanosecond ยังไม่เปิดให้แอพภายนอกเรียกใช้ ซึ่งจะเปลี่ยนแปลงใน Android 14 ที่กำลังจะออกปีนี้ (getEventTimeNanos) ระหว่างนี้ ทีมงานจึงพัฒนาฟิลเตอร์การดักจับอินพุตใหม่ที่แก้ปัญหาข้อ 2 ซึ่งได้ผลดีขึ้นมากแล้วเช่นกัน (ใครสนใจ ดูวิดีโอสาธิตเปรียบเทียบได้) การปรับปรุงนี้เริ่มใช้แล้วใน Chrome 116 แต่จะย้อนกลับไปอัพเดตให้ถึง Chrome 110 ด้วย ซึ่งจะทำให้ประสบการณ์เลื่อนหน้าจอของ Chrome บน Android เทียบเท่ากับบน iOS แล้ว
ที่มา - Chromium Blog