Chrome Dev Summit - สรุปข้อมูลเกี่ยวกับแพลตฟอร์มเว็บแบบเปิด

โดย Greg Simon & เอริค ซีเดล

Blink เป็นเครื่องมือแสดงผลแบบโอเพนซอร์สของ Chrome ทีม Blink กำลังพัฒนาเว็บและแก้ไขปัญหาที่นักพัฒนาซอฟต์แวร์พบ

เราได้ปรับปรุงเบื้องหลังจำนวนหนึ่งตั้งแต่การเปิดตัวในเดือนเมษายน

สิ่งแรกที่เราทำคือลบแหล่งที่มาครึ่งหนึ่ง ซึ่งเราไม่จำเป็นต้องใช้ ยังไม่เสร็จ และเราไม่ได้ดำเนินการเช่นนี้โดยการนำโค้ดออก คือการนำโค้ดออกจะอิงตามสถิติโดยรวมที่มีการรายงานแบบไม่ระบุตัวตนจากผู้ใช้ Chrome ที่เลือกรับการรายงาน

เราเผยแพร่ API ใหม่สำหรับนักพัฒนาซอฟต์แวร์ทุก 6 สัปดาห์ ซึ่งเหมือนกับกำหนดการจัดส่งของ Chrome

การเปลี่ยนแปลงสำคัญอย่างหนึ่งที่เราทำเมื่อแยกออกจาก Blink คือการเพิ่มระบบ Intent ทุกครั้งก่อนที่เราจะเปลี่ยนแพลตฟอร์มเว็บ เราจะส่งประกาศต่อสาธารณะไปยัง Blink dev เพื่อแจ้งให้ทราบถึงความตั้งใจที่จะเพิ่มหรือนำฟีเจอร์ออก เสร็จแล้วก็เขียนโค้ดได้เลย และในวันถัดมาหลังจากเช็คอินฟีเจอร์ ฟีเจอร์ก็เริ่มทำการจัดส่งในเวอร์ชัน Canary แล้ว ฟีเจอร์นี้จะปิดอยู่โดยค่าเริ่มต้น แต่คุณเปิดได้โดยใช้ about:flags

จากนั้น ในรายชื่ออีเมลแบบสาธารณะของเรา เราได้ประกาศความตั้งใจในการจัดส่ง

ดูฟีเจอร์ที่เราพัฒนา ฟีเจอร์ที่เราจัดส่ง และฟีเจอร์ที่เราวางแผนจะเลิกใช้งานได้ที่ chromestatus.com นอกจากนี้ คุณยังสามารถดูบล็อกรุ่น Chromium ซึ่งมีลิงก์ไปยังข้อบกพร่องและหน้าแดชบอร์ดเครื่องมือติดตามของเรา

การเปลี่ยนแปลงที่สําคัญอีกอย่างคือเราจะนำคำนำหน้า WebKit ออก จุดประสงค์ไม่ได้ใช้คำนำหน้า Blink แต่ให้มีแฟล็กรันไทม์ (ไม่ใช่แค่แฟล็กเวลาคอมไพล์)

Android WebView ถือเป็นความท้าทายครั้งใหญ่ แต่ HTML5Test แสดงให้เห็นว่าสิ่งต่างๆ ดีขึ้นเรื่อยๆ เรามีความใกล้เคียงกับเดสก์ท็อปมากกว่าในแง่ของการใช้ API ของแพลตฟอร์มเว็บชุดเดียวในทุกๆ ที่ (เสียงบนเว็บเป็นตัวอย่างที่ดีเลย)

แต่เครื่องไส้กรอกทำงานอย่างไร การเปลี่ยนแปลงทุกอย่างที่เราทำกับ Blink จะผ่านการทดสอบกว่า 30,000 รายการทันที ยังไม่รวมถึงการทดสอบ Chromium ทั้งหมดที่ทำในภายหลัง เราใช้การช่วยตรวจสอบตลอด 24 ชั่วโมง โดยมีบ็อตหลายพันตัว ตัวเปรียบเทียบหลายพันตัว และระบบที่นำหน้าเว็บที่ไม่ทำงานหลายล้านหน้ามาใส่ในเครื่องมือค้นหาของเราเพื่อให้แน่ใจว่าหน้าเว็บจะไม่ร่วงหล่นลง เราทราบดีว่าอุปกรณ์เคลื่อนที่ทำงานช้าลงอย่างมากและเรากำลังปรับปรุงข้อมูลนี้อย่างเต็มที่

มีอะไรใหม่

  • เว็บคอมโพเนนต์: ดูการบรรยายของ Eric Bidelman
  • ภาพเคลื่อนไหวบนเว็บ: ภาพเคลื่อนไหวประสิทธิภาพสูงที่ผ่านการซิงค์ข้อมูลและซับซ้อนซึ่งใช้ GPU ทุกครั้งที่ทำได้
  • เลย์เอาต์บางส่วน: คำนวณเฉพาะสิ่งที่คุณต้องการ
  • ตารางกริด CSS
  • รูปภาพที่ตอบสนองตามอุปกรณ์: srcset หรือ srcN หรือ ?
  • การปรับขนาดข้อความอัตโนมัติที่รวดเร็วขึ้นและแบบอักษรพิกเซลย่อยที่สม่ำเสมอ
  • Skia ซึ่งเป็นระบบกราฟิกที่ Blink ใช้กำลังจะย้ายจาก GDI ไปยัง DirectWrite ใน Windows

เราอยากทราบว่าคุณคิดอย่างไร

หากคุณรู้สึกว่า C++ เป็นเลือดและอยากจะเขียน C++ กับเรา โค้ดทั้งหมดของเรานั้นเปิดกว้างสำหรับคุณ คุณไม่จำเป็นต้องบอกใครหรือบอกให้เรารู้ คุณโพสต์แพตช์หรือรายงานข้อบกพร่องได้เลย!

สไลด์: กะพริบ

ความปลอดภัย

โดย Parisa Tabriz

ทุกวันนี้ ผู้คนเชื่อมต่อกับเว็บมากขึ้นกว่าที่เคย และจากที่ต่างๆ เพิ่มมากขึ้น

เราเชื่อมต่อกับแล็ปท็อป โทรศัพท์ และแท็บเล็ต และน่าจะเร็วพอๆ กับอุปกรณ์และอุปกรณ์เสริมส่วนตัว เราเข้าถึงอินเทอร์เน็ตจากเครือข่ายที่ไม่น่าเชื่อถือและบางครั้งก็ไม่เป็นมิตร หลายสิ่งมีชีวิตที่เปลี่ยนแปลงไปในโลกออนไลน์ เราจำเป็นต้องดำเนินการเพื่อปกป้องข้อมูลและตัวผู้ใช้ของเรา

เหนือสิ่งอื่นใด ในฐานะนักพัฒนาซอฟต์แวร์ เราต้องเข้าใจถึงความจำเป็นและประโยชน์ใช้สอยของ SSL

SSL คืออะไร โดยย่อมาจาก Secure Sockets Layer ซึ่งเป็นโปรโตคอลการเข้ารหัสที่ออกแบบมาเพื่อให้ความปลอดภัยในการสื่อสารผ่านอินเทอร์เน็ต รับประกันความเป็นส่วนตัวผ่านการเข้ารหัสและความสมบูรณ์ เพื่อป้องกันการสอดแนมหรือการปลอมแปลงการเชื่อมต่ออินเทอร์เน็ตของคุณ SSL ก็มีข้อเสียก็จริง แต่ก็เป็นวิธีที่ดีที่สุดและเป็นทางเดียวที่จะรับประกันความปลอดภัยในการสื่อสารข้อมูลทุกประเภทบนอินเทอร์เน็ต

จากข้อมูลของ SSL Pulse ปีที่แล้วเรามีการใช้งาน SSL ราว 15% โดยประมาณ ตอนนี้เรามีการใช้งานมากกว่า 50%

ตัวย่อ 2 คำ ได้แก่

  • TLS: สำหรับ Intent และวัตถุประสงค์ส่วนใหญ่เหมือนกับ SSL กล่าวให้ชัดเจนคือ SSL 3.1 ได้เปลี่ยนชื่อเป็น TLS และ TLS เป็นชื่อมาตรฐาน IETF แต่สามารถใช้แทนกันได้

  • HTTPS: เป็น HTTP ผ่าน SSL ซึ่งเป็นเพียงการสร้างเลเยอร์ความสามารถในการรักษาความปลอดภัยของ SSL และ HTTP มาตรฐาน ขั้นแรก แฮนด์เชคไคลเอ็นต์กับเซิร์ฟเวอร์ที่ใช้การเข้ารหัสคีย์สาธารณะ/ส่วนตัวเพื่อสร้างคีย์ที่ใช้ร่วมกัน ซึ่งใช้โดยส่วนที่ 2 ของโปรโตคอล SSL เพื่อเข้ารหัสการสื่อสาร

การสร้างเครือข่ายบนอินเทอร์เน็ตอาจให้ความรู้สึกปลอดภัย รวดเร็ว และรวดเร็ว ให้ความรู้สึกเหมือนเรากำลังพูดกับเว็บไซต์โดยตรง แต่ในความเป็นจริงแล้ว นั่นไม่ใช่การเชื่อมต่อโดยตรง การสื่อสารของเราส่งผ่านเราเตอร์ Wi-Fi, ISP และพร็อกซีที่เป็นตัวกลางอื่นๆ ระหว่างอุปกรณ์ของคุณและเว็บไซต์ เมื่อไม่มี HTTPS การสื่อสารทั้งหมดของเราจะเป็นข้อความธรรมดา

ปัญหาคือผู้ใช้ไม่ค่อยพิมพ์ URL แบบเต็มซึ่งระบุ HTTPS หรือคลิกลิงก์ที่ใช้ HTTP ที่แย่ไปกว่านั้นคือ คุณอาจใส่การโจมตีแบบแทรกกลางการสื่อสาร (ผู้หญิง) และแทนที่ HTTPS ด้วย HTTP ได้ เพียงแต่เครื่องมือชื่อ SSLstrip ที่เปิดตัวเมื่อปี 2009 เท่านั้น Firesheep ตั้งแต่ปี 2010 เพิ่งฟังเครือข่าย Wi-Fi ที่เปิดอยู่สำหรับการส่งคุกกี้ไปอย่างชัดเจน ซึ่งหมายความว่าคุณสามารถฟังในแชทหรือเข้าสู่ระบบบัญชี Facebook ของคนอื่นได้

แต่ SSL มีราคาถูก (ค่อนข้าง) มาก รวดเร็ว และง่ายดายในการติดตั้งใช้งาน (ลองอ่าน ssllabs.com และหนังสือ High Performance Browser Networking ของ Ilya Grigorik) การปักหมุดคีย์สาธารณะได้รับการออกแบบมาเพื่อช่วยให้ผู้ให้บริการเว็บไซต์จำกัดได้ว่าผู้ออกใบรับรองรายใดสามารถออกใบรับรองให้กับไซต์ของตนได้

"ในเดือนมกราคมปีนี้ (2010) Gmail ได้เปลี่ยนมาใช้ HTTPS สำหรับทุกอย่างโดยค่าเริ่มต้น ในการทำเช่นนั้น เราจำเป็นต้องติดตั้งใช้งานเครื่องอื่นๆ เพิ่มเติม และไม่จำเป็นต้องมีฮาร์ดแวร์พิเศษ ในเครื่องฟรอนท์เอนด์เวอร์ชันที่ใช้งานจริงของเรา บัญชี SSL สำหรับ < 1% ของการใช้งาน CPU, < หน่วยความจำ 10 KB ต่อการเชื่อมต่อ และ < 2% ของค่าใช้จ่ายในเครือข่าย...

ถ้าคุณหยุดอ่านตอนนี้ คุณเพียงแค่ต้องจำสิ่งหนึ่งไว้เท่านั้น นั่นคือ SSL ไม่ได้มีต้นทุนในการประมวลผลสูงอีกต่อไป"

Overclocking SSL, Adam Langley (Google)

สุดท้าย ข้อบกพร่อง 2 อย่างที่เราพบบ่อยที่สุด ได้แก่

  • เนื้อหาผสม: เว็บไซต์ที่ใช้ HTTP และ HTTPS ผู้ใช้จะรำคาญเพราะต้องคลิกปุ่มสิทธิ์เพื่อโหลดเนื้อหา (จริงๆ แล้ว Chrome และ Firefox ห้ามไม่ให้มีเนื้อหาผสมจาก iframe) ตรวจสอบว่าทรัพยากรทั้งหมดในหน้า HTTPS โหลดโดย HTTPS โดยใช้ URL สัมพัทธ์หรือสัมพัทธ์ เช่น <style src="//foo.com/style.css">
  • คุกกี้ที่ไม่ปลอดภัย: ส่งแบบไม่ระบุตัวตนผ่านการเชื่อมต่อ HTTP คุณหลีกเลี่ยงปัญหานี้ได้โดยการตั้งค่าแอตทริบิวต์ที่ปลอดภัยในส่วนหัวของคุกกี้ คุณยังใช้ "Strict Transport Security" ใหม่ได้ด้วย ส่วนหัวที่ต้องใช้ SSL Transport Security (HSTS)

สรุปประเด็นสำคัญ

  • หากคุณให้ความสำคัญกับความเป็นส่วนตัวและความสมบูรณ์ของผู้ใช้ คุณต้องใช้ SSL ซึ่งทั้งเร็ว ง่าย และประหยัดกว่าที่เคย
  • หลีกเลี่ยงข้อผิดพลาดทั่วไปในการใช้งาน เช่น ข้อบกพร่องของเนื้อหาผสม หรือไม่ตั้งค่าบิตส่วนหัว HTTP ที่ถูกต้อง
  • ใช้ URL สัมพัทธ์หรือแบบสัมพัทธ์
  • ดูฟีเจอร์เจ๋งๆ ใหม่ๆ บางส่วน เช่น HSTS และการปักหมุดใบรับรอง

สไลด์: หากคุณใช้ SSL

API สื่อสำหรับเว็บที่มีหลายอุปกรณ์

โดย Sam Dutton และ ยาน ลินเดน

นอกจากความแพร่หลายของอุปกรณ์และแพลตฟอร์มใหม่ๆ บนเว็บแล้ว เรายังเห็นการเติบโตที่ยิ่งใหญ่ของเสียง วิดีโอ และการสื่อสารแบบเรียลไทม์ สื่อออนไลน์กำลังเปลี่ยนแปลงวิธีการที่เราบริโภคสื่อทุกประเภท

การศึกษาของรัฐบาลสหราชอาณาจักรพบว่าผู้ใหญ่ 53% "ทำหลายอย่างพร้อมกันผ่านสื่อ" ขณะดูทีวี: ใช้อุปกรณ์เคลื่อนที่เพื่อแชร์และรับชมสื่อ ในหลายประเทศ การดูทีวีลดลงแต่การดูทางออนไลน์เพิ่มขึ้น ตัวอย่างเช่น ในปี 2012 ของจีนมีเพียง 30% ของครัวเรือนในปักกิ่งที่ดูทีวี ซึ่งลดลงจาก 70% ในปี 2009 จากข้อมูลของ W3C Highlights 2013 "ในช่วงปีที่ผ่านมา การดูวิดีโอบนอุปกรณ์เคลื่อนที่ได้เพิ่มขึ้นเป็น 2 เท่า ปีนี้ในสหรัฐอเมริกา เวลาเฉลี่ยที่ใช้กับสื่อดิจิทัลต่อวันจะแซงหน้าการดูทีวี การดูจะไม่ใช่การกระทำแบบติดตัวอีกต่อไป ในสหรัฐอเมริกา ผู้บริโภคด้านความบันเทิง 87% กล่าวว่าตนใช้อุปกรณ์หน้าจอที่ 2 อย่างน้อย 1 เครื่องขณะดูทีวี จากข้อมูลของ Cisco "วิดีโอ... จะอยู่ในช่วง 80-90 เปอร์เซ็นต์จากการเข้าชมของผู้บริโภคทั่วโลกภายในปี 2017" ซึ่งเท่ากับเวลาของวิดีโอเกือบ 1 ล้านนาที

แล้วเรามีอะไรบ้างสำหรับนักพัฒนาเว็บ ระบบนิเวศของ API สื่อสำหรับเว็บแบบเปิด: เทคโนโลยีมาตรฐานที่ทำงานร่วมกันได้ และทำงานได้ในหลายแพลตฟอร์ม

สรุปประเด็นสำคัญ

  • WebRTC ให้บริการการสื่อสารแบบเรียลไทม์ในเบราว์เซอร์ และรองรับการใช้งานอย่างแพร่หลายทั้งในอุปกรณ์เคลื่อนที่และเดสก์ท็อปแล้ว โดยรวมแล้ว มีปลายทาง WebRTC มากกว่า 1.2 พันล้านรายการ
  • เสียงบนเว็บมีเครื่องมือที่มีประสิทธิภาพสำหรับการสังเคราะห์และประมวลผลเสียง
  • Web MIDI ที่ผสานรวมกับ Web Audio จะช่วยให้โต้ตอบกับอุปกรณ์ MIDI ได้
  • ขณะนี้เบราว์เซอร์ในอุปกรณ์เคลื่อนที่และเดสก์ท็อปมากกว่า 85% รองรับองค์ประกอบเสียงและวิดีโอแล้ว
  • ส่วนขยายแหล่งที่มาของสื่อสามารถใช้สำหรับการสตรีมแบบปรับเปลี่ยนได้และการเปลี่ยนเวลา
  • EME ช่วยให้เล่นเนื้อหาที่ได้รับการคุ้มครองได้
  • ข้อความถอดเสียง คำบรรยายแทนเสียง และองค์ประกอบแทร็กจะเปิดใช้คำบรรยาย, คำบรรยายแทนเสียง, ข้อมูลเมตาที่มีการกำหนดเวลา, การทำ Deep Link และการค้นหาแบบ Deep

สไลด์: API สื่อสำหรับเว็บที่มีหลายอุปกรณ์