1 คะแนน โดย GN⁺ 2024-02-05 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ส่วนขยายเบราว์เซอร์เป็น ระบบนิเวศซอฟต์แวร์ที่แฮ็กได้ ที่หาได้ยาก เพราะต่างจากแพลตฟอร์มสมาร์ตโฟนและเดสก์ท็อปตรงที่ผู้ใช้สามารถเปลี่ยนเว็บแอปในแบบที่นักพัฒนาดั้งเดิมไม่ได้ตั้งใจไว้ได้
  • ส่วนขยายมากกว่า 180,000 รายการใน Chrome Store และอัตราการติดตั้งที่เกือบครึ่งหนึ่งของผู้ใช้ Chrome แสดงให้เห็นว่า เมื่อมีวิธีที่ง่ายพอ ผู้ใช้ทั่วไปก็พร้อมจะประกอบ สภาพแวดล้อมการใช้งานแบบเฉพาะตัว ด้วยตัวเอง
  • การใช้งานที่กว้างขวางของส่วนขยายเกิดจาก ความเปิดกว้างของเว็บ เช่น โค้ดฝั่งไคลเอนต์ที่มนุษย์อ่านได้ มาร์กอัปที่มีความหมาย และเลย์เอาต์เว็บมาตรฐาน มากกว่าจะพึ่ง API รายแอป
  • ส่วนขยายอย่างการกรอกรหัสผ่าน การอ่านคันจิ การใส่คำอธิบายประกอบ การบล็อกโฆษณา และการเล่นวิดีโอที่ความเร็ว 2 เท่า คือ เครื่องมือขนาดเล็ก ที่ทำงานข้ามหลายเว็บไซต์ และสร้างประสบการณ์ซอฟต์แวร์ที่ต่างจากโมเดลที่ยึดแอปขนาดใหญ่เป็นศูนย์กลาง
  • แม้ยังต้องจัดการกับส่วนขยายอันตรายและการละเมิดความเป็นส่วนตัวต่อไป แต่หากสร้างสมดุลระหว่างการเข้าถึง ความเข้ากันได้ และสิทธิ์การเข้าถึงได้ ก็จะรักษา ความสามารถในการขยาย ที่ทำให้ผู้ใช้ปรับเปลี่ยนซอฟต์แวร์ที่ตนใช้งานได้ลึกยิ่งขึ้นไว้ได้

ทำไมส่วนขยายเบราว์เซอร์จึงพิเศษ

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

ซอฟต์แวร์ที่ผู้ใช้ประกอบขึ้นเอง

  • เมื่อแพลตฟอร์มซอฟต์แวร์เปิดกว้างถึงระดับหนึ่ง วิธีที่ผู้ใช้ทั่วไปมีความสัมพันธ์กับซอฟต์แวร์ก็เปลี่ยนไปด้วย
  • หากติดตั้งส่วนขยาย Gmail 4 ตัวเพื่อเปลี่ยนตั้งแต่ดีไซน์ภาพลักษณ์ไปจนถึงฟังก์ชันหลัก ในแง่หนึ่งก็คือคุณได้ประกอบ ไคลเอนต์อีเมล ของตัวเองขึ้นมา
  • ผู้ใช้ไม่ได้เป็นเพียงผู้บริโภคแบบรับอย่างเดียวของแอปที่สร้างมาเสร็จแล้ว แต่สามารถจัดวางวิธีใช้คอมพิวเตอร์แบบเฉพาะตัวได้ด้วยตนเอง
  • ใน Chrome Store มีส่วนขยายมากกว่า 180,000 รายการ และผู้ใช้ Chrome เกือบครึ่งหนึ่งติดตั้งส่วนขยายเบราว์เซอร์
  • ความนิยมนี้แสดงให้เห็นว่า เมื่อมีวิธีขยายซอฟต์แวร์ได้ง่าย ผู้ใช้จำนวนมากก็ใช้โอกาสนั้นจริง ๆ

แพลตฟอร์มที่แฮ็กได้ มากกว่า API รายแอป

  • ส่วนขยายเบราว์เซอร์มีกรณีใช้งานที่กว้างมาก เช่น การกรอกรหัสผ่าน การอ่านคันจิภาษาญี่ปุ่น การทำให้ดีไซน์ของ Gmail เรียบง่ายขึ้น การไฮไลต์และใส่คำอธิบายประกอบบทความ การบันทึกไว้อ่านภายหลัง การเล่นวิดีโอที่ความเร็ว 2 เท่า และการบล็อกโฆษณา
  • หัวใจของการใช้งานที่กว้างขวางนี้คือ ส่วนขยายส่วนใหญ่เปลี่ยนแอปพลิเคชันในแบบที่นักพัฒนาดั้งเดิมไม่ได้วางแผนไว้อย่างเฉพาะเจาะจง
    • เมื่อหนังสือพิมพ์ภาษาญี่ปุ่นเผยแพร่บทความ ก็ไม่จำเป็นต้องคำนึงถึงความเข้ากันได้กับส่วนขยายอ่านคันจิ ส่วนขยายนั้นก็ยังทำงานได้
    • นักพัฒนาส่วนขยายจึงไม่ถูกผูกกับ API รายแอปที่สะท้อนมุมมองเรื่องการขยายของนักพัฒนาแอป และมี อิสระในการสร้างสรรค์ มากกว่า
  • คุณลักษณะบางอย่างของแพลตฟอร์มเว็บทำให้เกิดการขยายที่ไม่ได้ถูกวางแผนไว้ล่วงหน้าได้
    • วิธีการเผยแพร่เว็บแบบดั้งเดิมส่งโค้ดฝั่งไคลเอนต์มายังเบราว์เซอร์ในรูปแบบที่มนุษย์อ่านได้
    • แม้โค้ดจะถูกทำให้สับสนหรือคอมไพล์มาจากภาษาอื่น source map ก็ยังสำคัญต่อการรักษาข้อดีนี้ไว้
    • โมเดลเลย์เอาต์ของเว็บส่งเสริมมาร์กอัปเชิงความหมายที่เป็นมาตรฐาน
    • ส่วนขยายจัดการรหัสผ่านทำงานได้เพราะหน้าเว็บใช้แท็ก form อย่างสม่ำเสมอสำหรับการส่งรหัสผ่าน แทนการทำระบบขึ้นเอง
  • แม้เว็บไซต์จะไม่ได้ถูกสร้างมาเพื่อรองรับส่วนขยาย ก็อาจต้องใช้วิธีอ้อมที่ชาญฉลาด แต่โดยมากก็ทำได้ด้วยปริมาณงานที่สมเหตุสมผล โดยไม่ต้องทำ reverse engineering นานหลายปี
  • แม้อาจเกิดความตึงเครียดระหว่างนักพัฒนาเว็บไซต์กับนักพัฒนาส่วนขยาย แต่หากฝั่งเว็บไซต์ไม่ต้องทำงานเพิ่ม ก็มักจะยอมรับส่วนขยายที่สร้างสรรค์ได้มากกว่า
  • ฟีเจอร์เฉพาะทางที่มีผู้ใช้ต้องการเพียงส่วนน้อย สามารถถูกสร้างเป็นส่วนขยายโดยสมาชิกชุมชนที่มีแรงจูงใจได้ ซึ่งช่วยลดภาระของนักพัฒนาแอปพลิเคชันด้วย

ไม่ใช่แอปใหญ่ แต่เป็นเครื่องมือเล็ก

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

รากฐานของความเปิดกว้างของเว็บ

  • ตั้งแต่ยุคแรกของคอมพิวเตอร์ส่วนบุคคล มีขนบทางปรัชญาที่มองคอมพิวเตอร์เป็นสื่อเชิงโต้ตอบที่ผู้ใช้สามารถเติมไอเดียของตนเองและสร้างเครื่องมือของตัวเองได้
  • ขนบนี้สะท้อนอยู่ในระบบอย่าง Smalltalk, Hypercard และล่าสุดอย่าง Dynamicland
  • ตอนที่ Tim Berners-Lee สร้าง World Wide Web เขาจินตนาการถึงระบบที่อยู่ในขนบนี้
    • วิสัยทัศน์ของเขาคือ “ระบบที่การแบ่งปันสิ่งที่ตนรู้หรือคิดนั้นง่ายพอ ๆ กับการเรียนรู้สิ่งที่ผู้อื่นรู้”
    • เขาคิดว่าเว็บเบราว์เซอร์ควรเป็นเครื่องมือแก้ไขเว็บไซต์ได้ด้วย แต่เบราว์เซอร์ Mosaic กลับได้รับความนิยมโดยไม่มีฟังก์ชันนั้น และเขารู้สึกเสียดายเรื่องนี้
  • ในท้ายที่สุด เว็บก็กลายเป็นสถานที่ที่ใคร ๆ ก็สามารถโพสต์ความคิดเห็นหรือรูปภาพผ่านแพลตฟอร์มโซเชียลมีเดียได้
  • แต่ภายในแอปอย่าง Facebook ผู้ใช้ต้องโพสต์ในรูปแบบที่กำหนด และใช้งานตามวิธีที่แอปกำหนดไว้ รวมถึงการแสดงโฆษณาด้วย
  • ส่วนขยายเบราว์เซอร์ทำให้ไปได้ไกลกว่าการพิมพ์ลงในกล่องข้อความที่มีให้ และสามารถเปลี่ยนวิธีใช้แอปพลิเคชันใด ๆ บนเว็บได้อย่างลึกซึ้ง
  • มันมอบ ความกระจายศูนย์ ที่ทำให้บริษัทผู้สร้างเว็บไซต์ขนาดใหญ่ไม่สามารถกำหนดทุกรายละเอียดของประสบการณ์ผู้ใช้ได้ทั้งหมด

ทิศทางที่จะทำให้ส่วนขยายดีขึ้น

  • ยังจำเป็นต้องปกป้องผู้ใช้เพื่อไม่ให้ส่วนขยายอันตรายละเมิดความเป็นส่วนตัวได้
  • การเข้าถึง

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

    • ส่วนขยายเชื่อมต่อเข้ากับเว็บไซต์ในวิธีที่ไม่ได้รับการรองรับอย่างเป็นทางการ ดังนั้นการอัปเดตเว็บไซต์อาจทำให้ส่วนขยายเสียชั่วคราวได้
    • บางครั้งนักพัฒนาส่วนขยายต้องรีบแก้ไขให้ทันกับการเปลี่ยนแปลง
    • จำเป็นต้องมีวิธีเชื่อมต่อนักพัฒนาเว็บไซต์กับนักพัฒนาส่วนขยายอย่างมั่นคง โดยไม่ต้องพึ่ง API ส่วนขยายแบบชัดเจน
    • มาร์กอัปเชิงความหมายที่สะอาด CSS ที่มนุษย์อ่านได้ และ source map เป็นแนวปฏิบัติที่มีอยู่แล้วซึ่งช่วยให้การพัฒนาส่วนขยายง่ายขึ้น
    • หากหลังจากปล่อยเวอร์ชันใหม่ของซอฟต์แวร์คลาวด์แล้ว ผู้ใช้ยังสามารถใช้เวอร์ชันก่อนหน้าได้ต่ออีก 3 เดือน ก็จะช่วยให้นักพัฒนาส่วนขยายมีเวลาอัปเดตให้เข้ากับเวอร์ชันใหม่
  • สิทธิ์การเข้าถึง

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

ความเป็นไปได้ของแพลตฟอร์มถัดไป

  • Beaker Browser และชุมชนเว็บแบบกระจายศูนย์กำลังสำรวจวิธีที่เว็บจะทำงานได้โดยไม่ต้องมีเซิร์ฟเวอร์กลาง
  • สถาปัตยกรรมแบบนี้อาจมอบการควบคุมที่สมบูรณ์ยิ่งขึ้นให้ผู้ใช้ในการปรับเปลี่ยนฝั่ง “เซิร์ฟเวอร์” ของเว็บแอปพลิเคชัน
  • โปรเจกต์ใหม่ของ Tim Berners-Lee อย่าง SOLID ก็รวมหลักการที่ให้ผู้ใช้มีความเป็นเจ้าของข้อมูลของตนมากขึ้น
  • เมื่อความเป็นเจ้าของข้อมูลเพิ่มขึ้น ผู้ใช้ก็จะสามารถจัดการข้อมูลได้ยืดหยุ่นผ่านส่วนขยายและซอฟต์แวร์อื่น ๆ เกินกว่าขอบเขตที่ API ฝั่งเซิร์ฟเวอร์ของแอปพลิเคชันอนุญาต
  • การคอมพิวเตอร์ยังอายุน้อย และแพลตฟอร์มก็ยังเปลี่ยนแปลงอย่างรวดเร็ว
  • ส่วนขยายเบราว์เซอร์สมัยใหม่และแพลตฟอร์มสมาร์ตโฟนเพิ่งถือกำเนิดมาเพียงราว 10 ปีเท่านั้น
  • แพลตฟอร์มในอนาคตจะเปิดกว้างเพียงใด เป็นเรื่องที่เราต้องตัดสินใจกันในฐานะส่วนรวม
  • ส่วนขยายเบราว์เซอร์เป็นตัวอย่างหนึ่งของพื้นที่ที่ผู้ใช้สามารถแฮ็กซอฟต์แวร์ที่ตนใช้ในชีวิตประจำวันและทำให้มันเป็นของตนเองได้

อัปเดตปี 2024

  • เมื่อกลับมามองบทความที่เขียนไว้ในปี 2019 อีกครั้งหลังผ่านไป 5 ปี ก็มีโปรเจกต์ที่เกี่ยวข้องเพิ่มขึ้นอีกหลายอย่าง
  • ผู้เขียนได้สร้างส่วนขยายเบราว์เซอร์ยอดนิยมสำหรับ Twitter และเขียน บทความสรุปประสบการณ์ เกี่ยวกับการใช้ส่วนขยายเป็นวิธีแก้ปัญหาในซอฟต์แวร์ที่ใช้งานทุกวัน
  • ระหว่างศึกษาปริญญาเอกกับ Daniel Jackson ที่ MIT ผู้เขียนได้พัฒนา Wildcard ซึ่งทำให้ผู้ที่ไม่ใช่นักเขียนโปรแกรมสามารถสร้างส่วนขยายเบราว์เซอร์จากสเปรดชีตได้
  • Glen กำลังพัฒนา ExtensionPay แพลตฟอร์มสร้างรายได้สำหรับผู้ที่ต้องการทำให้ส่วนขยายเบราว์เซอร์เป็นโปรเจกต์ที่ยั่งยืน
  • ช่วงหลังมานี้ ผู้เขียนกำลังทำงานที่ห้องวิจัย Ink & Switch ไปสู่ malleable software ที่ขับเคลื่อนด้วย AI

1 ความคิดเห็น

 
GN⁺ 2024-02-05
ความคิดเห็นใน Hacker News
  • ผู้เขียนเอง เขียนบทความนี้เมื่อ 5 ปีก่อน และหลังจากนั้นก็ยิ่งมั่นใจมากขึ้นในคุณค่าของ ซอฟต์แวร์ที่ผู้ใช้ปรับแต่งได้ แต่ก็มีบางความคิดที่เปลี่ยนไป

    1. AI: AI กำลังเขียนโค้ดได้เร็วและเก่งขึ้นมาก AI ตอนนี้มักยังไม่เก่งด้านสถาปัตยกรรมระดับสูง แต่ทำการแก้ไขจุดเล็กๆ เฉพาะส่วนได้ดี จึงดูเข้ากันได้ดีกับโค้ดที่ต้องใช้ในการเขียนส่วนขยายเบราว์เซอร์ ผมกำลังสำรวจแนวทางนี้อยู่ และเขียนเพิ่มไว้ใน “Malleable software in the age of LLMs”: https://www.geoffreylitt.com/2023/03/25/llm-end-user-program...
    2. ความปลอดภัย: หลังจากได้คุยกับคนที่สร้างแพลตฟอร์มส่วนขยายหลายแบบ รวมถึง browser extension API ผมยิ่งเห็นชัดกว่าตอน 5 ปีก่อนว่า ความปลอดภัยมักเป็นคอขวดสำคัญในการเผยแพร่แพลตฟอร์มส่วนขยายสู่คนหมู่มาก เป็นเรื่องยากที่จะปกป้องระบบ หากต้องการให้ผู้ใช้ทั่วไปติดตั้งส่วนขยายที่ล่วงล้ำจากบุคคลที่สามที่ไม่น่าเชื่อถือ ลงในซอฟต์แวร์สำคัญ
      ถึงอย่างนั้น ผมก็คิดว่าการถกเรื่องส่วนขยายมักเทไปทางความปลอดภัยมากเกินไปจนไปลดทอนคุณค่าอื่นๆ ความสามารถในการปรับแต่งโดยผู้ใช้อาจสำคัญมากพอที่จะมาก่อนความปลอดภัยได้ในบางกรณี และก็มีวิธีแก้หลายแบบ เช่น แทนที่จะติดตั้งจากคนแปลกหน้าบนอินเทอร์เน็ต ก็อาจแลกเปลี่ยนส่วนขยายกันในความสัมพันธ์ที่มีความเชื่อใจกัน เช่น เพื่อนร่วมงานหรือเพื่อน หรือใช้เฉพาะส่วนขยายที่ทำเอง การเขียนโปรแกรมโดยมี AI ช่วยอาจทำให้การสร้างเองเป็นเรื่องจริงได้มากขึ้น แต่ก็สร้างปัญหาด้านความปลอดภัยใหม่ด้วย อีกทั้งผมยังได้พบคนที่มีไอเดียด้านสถาปัตยกรรมซอฟต์แวร์ซึ่งช่วยลดความตึงเครียดหลักนี้ได้ ตัวอย่างอยู่ที่ https://www.wildbuilt.world/p/inverting-three-key-relationsh...
    3. การเข้าถึงแบ็กเอนด์: ผมยิ่งตระหนักมากขึ้นว่า ในเว็บที่มีเซิร์ฟเวอร์เป็นศูนย์กลาง ส่วนขยายเบราว์เซอร์มักเข้าถึงได้แค่โค้ดฝั่งไคลเอนต์ ทำให้การปรับแต่งอย่างลึกซึ้งถูกจำกัด คุณอาจอ่านข้อมูลที่ต้องการไม่ได้ หรือไม่มี write API สำหรับทำงานที่จำเป็น ผมยังมองโลกในแง่ดีต่อสิ่งที่ส่วนขยายทำได้ภายในขอบเขตฝั่งไคลเอนต์ แต่ก็เป็นข้อจำกัดโดยเนื้อแท้ของแพลตฟอร์มเอง
      ที่ Ink & Switch ซึ่งเป็นสถาบันวิจัยที่ผมทำงานอยู่ตอนนี้ เรากำลังสร้างซอฟต์แวร์แบบ local-first: ซอฟต์แวร์ทำงานร่วมกันที่ข้อมูลและโค้ดอยู่บนอุปกรณ์ของผม นอกจากข้อดีอย่างเรื่องความเป็นส่วนตัวแล้ว ผมมองว่านี่คือพื้นฐานที่ถูกต้องสำหรับส่วนขยายที่ทรงพลังยิ่งกว่าเดิม เพราะข้อมูลและโค้ดแอปไม่ได้ถูกล็อกไว้บนเซิร์ฟเวอร์: https://www.inkandswitch.com/local-first/
    • แก่นของเรื่องคือ ปัญหาด้านความปลอดภัย ของแพลตฟอร์มแบบเปิด หากระบบเปิดมากพอให้คนที่มีทักษะปรับแต่งได้ตามใจ ผู้ไม่หวังดีก็สามารถโน้มน้าวคนที่ไม่ค่อยรู้เรื่องให้เปลี่ยนระบบไปในทางที่เป็นอันตรายได้เช่นกัน
      การที่ Android ให้คุณสร้างคีย์บอร์ดแบบคัสตอมเองได้เป็นเรื่องยอดเยี่ยม แต่การที่ใครสักคนสามารถโน้มน้าวให้คุณปู่คุณย่าติดตั้งคีย์บอร์ดที่ฝังคีย์ล็อกเกอร์มากับตัวได้ ไม่ใช่เรื่องดีเลย ส่วนขยายเบราว์เซอร์เป็นระบบนิเวศที่มีมัลแวร์เยอะมาโดยตลอด และมุกที่ว่าทุกครั้งที่กลับบ้านช่วง Thanksgiving ต้องไปลบ toolbar ออกจาก Internet Explorer ของพ่อแม่ ก็มีมาตั้งแต่ราวปี 1999 แล้ว
    • ถ้าเบราว์เซอร์และระบบปฏิบัติการมือถือทำให้การป้อน ทรัพยากรปลอม ให้แอปหรือส่วนขยายทำได้ง่าย โค้ดที่ไม่น่าเชื่อถือก็จะรันได้ปลอดภัยขึ้นมาก
      “ครับ อ่านข้อมูลในโทรศัพท์ผมได้เลย สำหรับคุณ นั่นคือข้อมูลทั้งหมดและทั้งหมดก็มีแค่นั้น แต่ในมุมของผม มันเป็นแค่โฟลเดอร์เดียว แล้วก็เป็นโฟลเดอร์ว่างด้วย เพราะเป็นโทรศัพท์เครื่องใหม่ครับ”
      “ครับ นี่คือรายชื่อผู้ติดต่อของผม ขอโทษที่มันแทบจะว่างนะครับ มีแค่เบอร์พรีเมียมราคาแพงอยู่หนึ่งเบอร์ หวังว่าสำนักงานใหญ่ของคุณจะไม่โทรไปที่นั่นนะ”
      “ครับ นี่คือไมโครโฟนของผม ขอบคุณนะ ผมเลียนเสียง Rick Astley ได้ดีทีเดียว”
      “รูปในโทรศัพท์เหรอ นี่ไงครับ ทั้งหมดเป็นรูปหัวผักกาด คุณชอบไหม?”
    • ผมตื่นเต้นมากกับจุดตัดกันของ ซอฟต์แวร์ดัดแปลงได้, local-first และ AI ที่รันบนเครื่อง มันให้ความรู้สึกเหมือนกำลังเข้าสู่ยุคใหม่ของซอฟต์แวร์ และถ้าทำได้ดี เราอาจได้อำนาจควบคุมข้อมูลกลับคืนมาจากบริษัทยักษ์ใหญ่ และมีอำนาจเหนือความเป็นเจ้าของกับวิธีการทำงานของตัวเองมากขึ้น
      โดยเฉพาะอย่างยิ่ง ผมสนใจแนวทางที่เครื่องมือ CRDT อเนกประสงค์อย่าง Automerge หรือ Yjs จะกลายเป็นฟอร์แมตไฟล์พื้นฐานของซอฟต์แวร์ local-first และต่อเข้ากับแบ็กเอนด์สำหรับซิงก์และการทำงานร่วมกันที่ทำงานข้ามกันได้ ผู้ใช้สามารถเข้าถึงข้อมูลเบื้องล่างได้โดยตรงด้วยเครื่องมือมาตรฐาน และไฟล์สามารถเชื่อมกัน แทรกกัน แตกแขนง และรวมกลับได้ เราอาจสร้างแพลตฟอร์มไฮเปอร์มีเดียแบบใหม่ที่เอกสารทุกชิ้นแชร์ ฟอร์ก และแก้ไขร่วมกันแบบเรียลไทม์ได้ ผมชอบงานที่ Ink & Switch ทำมากและตั้งตารอการประกาศครั้งต่อไป
    • ข้อจำกัดใหญ่ของส่วนขยายเบราว์เซอร์คือ ต่อให้เขียนไว้ใช้คนเดียว ก็ยังไม่มี วิธีติดตั้งที่เป็นมิตรกับผู้ใช้และขยายต่อได้ เลย ไม่มีวิธีบอกเบราว์เซอร์ว่า ให้เชื่อถือส่วนขยายทั้งหมดในไดเรกทอรีนี้ แล้วโหลดอัตโนมัติโดยไม่ต้องเซ็น และไม่ต้องแพ็กเป็น XPI
      ไม่มีฟีเจอร์แบบ “ใส่โค้ดกับ manifest ไว้ในไดเรกทอรี แล้วเบราว์เซอร์ก็ใช้งานมัน” สมัยก่อนที่ greasemonkey ยังโหลดไฟล์ธรรมดาจากไดเรกทอรีย่อย gm_scripts/ ในโปรไฟล์เบราว์เซอร์ได้ตรงๆ การเผยแพร่ที่เรียบง่ายแบบนี้ทำให้มีการสร้าง userscript จำนวนมหาศาล ตอนนั้นการขยายความสามารถของเว็บไซต์ทั้งสนุกและง่าย แต่ Mozilla ลบมันออกไปหมด
      การเผยแพร่นี่แย่มากจริงๆ ผมไม่คิดจะส่งส่วนขยายขึ้นอินเทอร์เน็ตที่ไหนสักแห่งเพื่อให้เซ็นทุกครั้งที่มีการแก้ไข เพียงเพื่อจะใช้โค้ดที่ผมเขียนบนคอมพิวเตอร์ของตัวเอง ยิ่งไปกว่านั้น ตอนที่ผมเช็กครั้งล่าสุด เครื่องมือสำหรับเซ็นก็เป็นแอป NPM/node ขนาดเกิน 100MiB ที่คุณต้องเชื่อถือ และมันยังใหญ่กว่าการ build Linux kernel เสียอีก
    • โดยรวมแล้วผมเห็นด้วยกับการประเมินนี้ แต่ปัญหาคือผู้ผลิตเบราว์เซอร์มักจะ ถอน API ซึ่งทำให้ส่วนขยายที่ดีและได้รับความนิยมพัง
  • ในปี 2024 ตัวกรอบแนวคิดของ ส่วนขยายเบราว์เซอร์ เองมีปัญหามากอยู่แล้ว ส่วนขยายเบราว์เซอร์ส่วนใหญ่แทบจะเป็นส่วนขยายของ Google Chrome โดยพฤตินัย และ Google Chrome ก็แสดงให้เห็นอย่างชัดเจนแล้วว่าในกระบวนการไล่หารายได้เพิ่มนั้น ไม่มี API ใดที่ปลอดภัยจริง
    คนที่สร้างส่วนขยายด้วย Chrome API ควรรู้ว่าตนอาจกำลังทุ่มแรงไปกับสิ่งที่บริษัทยักษ์ใหญ่สามารถเหยียบให้หายไปได้แบบไม่คิดอะไร ฉันไม่อยากอยู่ในเกมที่แพ้เชิงกลยุทธ์ไปแล้วแบบนั้น เลยคิดว่าควรคุยกันเรื่องส่วนขยายของ Firefox มากกว่า Firefox เองก็ไม่ได้มีประวัติที่ดีนัก เรื่องที่เปลี่ยนไปใช้ความเข้ากันได้กับ Google Chrome เมื่อหลายปีก่อนยังน่าหงุดหงิดมากอยู่ดี ถึงอย่างนั้นก็ยังเป็นฝั่งที่รับมือด้วยได้ดีกว่าในเชิงคุณภาพ

    • พักเรื่องนั้นไว้ก่อน ส่วนขยายนั้น 1) เพิ่ม พื้นผิวการโจมตี ของเบราว์เซอร์ 2) มักถูกขายต่อให้ผู้ไม่หวังดีหรือถูกยึดไปบ่อย และ 3) แม้คนชำนาญจะพอรับได้ แต่สำหรับผู้ใช้อื่นก็มักพังแบบละเอียดอ่อนจนกลายเป็นงานซัพพอร์ต สรุปคือโลกของส่วนขยายมันเละเทะทั้งระบบ
    • ดูเหมือนว่าส่วนขยายเบราว์เซอร์จะถูกใช้ใน Firefox มากกว่า เพราะ Google เป็นปฏิปักษ์กับส่วนขยาย Chrome มากเกินไป และเมื่อ Firefox เสื่อมความนิยมลง โลกของส่วนขยายก็หดตัวลงด้วย
      ตลอด 10 ปีที่ผ่านมา ฉันใช้สิ่งที่ชื่อว่า “Ad Limiter” ทั้งบน Firefox และ Chrome และโค้ดก็เหมือนกัน ปีที่แล้ว Google ส่งข้อความเชิงข่มขู่มาเพราะเข้มงวดกับตัวบล็อกโฆษณามากขึ้น เลยเลิกทำฝั่ง Chrome ไป
    • จะมองว่ามันไม่ได้ต่างอะไรจากการพัฒนาในสภาพแวดล้อมอื่นเลยก็ได้ตามตัวอักษร
    • สงสัยว่าฟังก์ชันซิงก์ของ Firefox ถูกแก้ดีแล้วหรือยัง แต่ก่อนต้องย้ายไฟล์โปรไฟล์กันจริง ๆ ตอนทำงาน IT เมื่อก่อน Firefox เป็นฝันร้ายในการดูแลในองค์กร แน่นอนว่าตอนนั้นก็คุมการติดตั้งส่วนขยาย Chrome ไม่ได้เหมือนกัน
    • ส่วนขยายเบราว์เซอร์มี มาตรฐาน อยู่ ฉันเคยทำส่วนขยายเบราว์เซอร์ตั้งแต่ก่อนจะมีมาตรฐาน ตอนนี้คุณสามารถสร้างส่วนขยายที่ทำงานได้บน Chrome, Firefox, Edge และ Safari
      แน่นอนว่ายังใช้ API เฉพาะของแต่ละเบราว์เซอร์ได้ แต่นั่นแย่พอ ๆ กับการทำเว็บที่ใช้ได้กับเบราว์เซอร์เดียว ค่าเริ่มต้นควรต้องเข้ากันได้ และโค้ดต้นฉบับของส่วนขยายก็ดูได้เสมอ จึงแก้ให้เป็นเวอร์ชันที่ทำงานดีกับเบราว์เซอร์ของตัวเองแล้วนำกลับไปแชร์ต่อก็ได้
  • ส่วนขยายเบราว์เซอร์ยอดนิยมจำนวนมากถูกซื้อกิจการโดย data broker แล้วนำไปใช้ดูดประวัติการท่องเว็บ จึงยากจะบอกว่ามันถูกประเมินค่าต่ำไป โมเดลด้านความปลอดภัยและความเป็นส่วนตัวของส่วนขยายนั้นค่อนข้างแย่ หรือยังคงแย่อยู่มาก จึงต้องระวังอย่างยิ่ง
    ตัวอย่างเช่น ฉันรู้ว่าส่วนขยายจับภาพหน้าจออย่าง Awesome Screenshot เคยดูดประวัติการท่องเว็บแล้วส่งไปให้ data broker ในอิสราเอล ฟังก์ชันแบบนี้น่าจะดีกว่าถ้ามีเป็นความสามารถพื้นฐานของเบราว์เซอร์

    • ในฐานะคนที่สร้างส่วนขยายเว็บเบราว์เซอร์แบบ จ่ายเงินล่วงหน้า ฉันจะบอกว่าสิ่งที่ถูกประเมินค่าต่ำไปคือ ส่วนขยายแบบจ่ายเงินล่วงหน้า
      คำพูดที่ว่า “ถ้าฉันไม่ใช่ลูกค้า งั้นฉันก็คือสินค้า” ถูกต้องเสียจนกลายเป็นคำพูดซ้ำซาก แต่ถ้าฉันเป็นลูกค้าจริง ๆ ล่ะ? ฉันคิดว่าความไม่ไว้วางใจต่อส่วนขยายจำนวนมากเกิดจากการที่ทำเงินจากส่วนขยายโดยตรงได้ยาก เมื่อหารายได้จากส่วนขยายไม่ได้ แล้วมีคนมายื่นเช็คงาม ๆ เพื่อขอซื้อกิจการ โดยเฉพาะถ้าเป็นส่วนขยายที่สร้างภาระซัพพอร์ตให้ผู้พัฒนา ก็ยากจะปฏิเสธ แน่นอนว่าเหมือนคนอื่นแทบทุกคน ฉันก็มีราคาของฉัน แต่ตอนนี้คงต้องระดับเงินดอลลาร์ 7 หลัก หรืออาจ 8 หลัก และคงไม่มีใครจ่ายเงินนั้นเพื่อส่วนขยายของฉัน มันเป็นแบบเสียเงินเลยมีฐานผู้ใช้ค่อนข้างเล็ก และเพราะอย่างนั้นเองจึงไม่ใช่โอกาสใหญ่สำหรับการเก็บข้อมูลหรือแผนการชั่วร้าย
    • ด้วยเหตุนี้และเพราะการขาดสิทธิ์การเข้าถึงแบบละเอียดพอ ฉันจึงใช้ แอปเดสก์ท็อป แทนส่วนขยายเมื่อทำได้ และพยายามให้รายการส่วนขยายน้อยที่สุด โดยพื้นฐานจะติดตั้งเฉพาะส่วนขยาย FOSS จากผู้พัฒนาที่เชื่อถือได้ระดับ “รายใหญ่” อย่าง Raymond Hill หรือโครงการที่ไม่น่าถูกขายต่อ
      แน่นอนว่าแอปเดสก์ท็อปก็มีความเสี่ยง แต่ในเชิงประวัติศาสตร์ วิธีข้อมูลรั่วไหลหลังการซื้อกิจการแบบนี้พบในแอปเดสก์ท็อปค่อนข้างน้อยกว่า โดยเฉพาะบน macOS แอปที่เซ็นรับรองแล้วจะถูก sandbox และทำอะไรได้ไม่มากหากไม่มีสิทธิ์จากผู้ใช้
    • การที่ต้องฝากข้อมูลเบราว์เซอร์ทั้งหมดของฉันไว้กับโค้ดเดอร์นิรนาม เพียงเพื่อใช้ แท็บแนวตั้ง บน Firefox นั้นบ้าชัด ๆ เลยเห็นด้วยว่าควรเป็นฟังก์ชันพื้นฐานของเบราว์เซอร์มากกว่า
      แน่นอนว่าส่วนขยายพวกนี้หลายตัวเป็นโอเพนซอร์สจึงตรวจสอบได้ เพียงแต่ฉันไม่มีทักษะพอจะหาโค้ดอันตราย จึงสงสัยว่านี่อาจเป็นกรณีใช้งานที่ดีของ AI หรือไม่ อยากรู้ว่ามีความเห็นอย่างไรเกี่ยวกับการทำพรอมป์ต์ดี ๆ สำหรับตรวจจับมัลแวร์
  • อยากให้ส่วนขยายเบราว์เซอร์มีสิทธิ์แบบละเอียดกว่านี้ แต่ปัญหาการตรวจสอบว่าซอฟต์แวร์ใช้สิทธิ์ในทางร้ายหรือไม่นั้นยาก ดูได้จาก Obfuscated C Code Contest หรือ Underhand C Contest อีกทั้งการสื่อสารสิทธิ์ที่มีความละเอียดอ่อนให้ผู้ใช้เข้าใจก็ยาก ผู้ใช้ส่วนใหญ่ไม่อ่านหรือไม่เข้าใจรายละเอียดทางเทคนิค และถูกชี้นำผิดได้ง่าย
    มีเคล็ดลับอย่างหนึ่งสำหรับการใช้ส่วนขยายบน Chrome ให้ปลอดภัยขึ้น คือเข้าไปที่ Profiles > Add profile > Continue without account สร้างโปรไฟล์แยกต่างหาก แล้วติดตั้งส่วนขยายที่ต้องการไว้ที่นั่น แบบนี้จะถูกแยกจากแท็บ การล็อกอิน ประวัติ คุกกี้ ฯลฯ ของโปรไฟล์หลักอย่างสมบูรณ์ ในทำนองเดียวกันก็สามารถใช้ Chrome Beta หรือ Chrome Canary ควบคู่กับ Chrome ปกติสำหรับติดตั้งส่วนขยายได้
    ตัวอย่างเช่น คุณอาจติดตั้งส่วนขยายสำหรับพัฒนาเว็บที่มีความเสี่ยงได้หลายสิบตัวไว้ในโปรไฟล์นี้ แล้วแยกไว้เหมือน sandbox จากโปรไฟล์ที่ใช้ทำธุรกรรมธนาคารส่วนตัวหรือเข้าสู่ระบบเว็บไซต์บริษัท วิธีนี้ไม่เหมาะกับทุกส่วนขยาย แต่สำหรับงานพัฒนาเว็บฉันทำแบบนี้ ส่วนโปรไฟล์ส่วนตัวใช้ส่วนขยายเพียงไม่กี่ตัว
    สิทธิ์ที่ฉันอยากขอจริง ๆ สำหรับส่วนขยายเบราว์เซอร์ที่ขายอยู่คือ “ดูได้เฉพาะทราฟฟิกเครือข่ายที่ส่งและรับในแท็บของตัวเอง” แต่ในความเป็นจริงกลับต้องขอสิทธิ์ “อ่านและเขียนข้อมูลทั้งหมด” ดังนั้นฉันจึงแชร์เคล็ดลับข้างต้นไว้ในคำอธิบายด้วย: https://chromewebstore.google.com/detail/checkbot-seo-web-sp...

    • ในฐานะผู้ใช้ Firefox อยากให้Multi-Account Containersสามารถปิดส่วนขยายแยกตามคอนเทนเนอร์ได้ เว็บไซต์ธนาคารไม่จำเป็นต้องมีส่วนขยายใดเลย แม้จะใช้โปรไฟล์แยกได้ แต่ประสบการณ์ผู้ใช้ไม่ดี
    • สิทธิ์ “อ่านและเปลี่ยนแปลงข้อมูลทั้งหมด” เป็นอุปสรรคใหญ่สำหรับส่วนขยายช็อปปิง ทั้งที่จริงแล้วแค่ต้องระบุให้ได้ว่าเป็นหน้าช็อปปิงเท่านั้น เพื่อสร้างความเชื่อมั่น ฉันเคยเปิดซอร์สระบบวิเคราะห์การติดตามไว้ด้วย: https://github.com/Score-Extension/score-extension-analytics...
      หวังว่าความโปร่งใสจะเป็นวิธีหนึ่งในการข้ามกำแพงความเชื่อใจนี้
    • อยากให้มีวิธีจำกัดขอบเขตสิทธิ์ทั้งหมดของส่วนขยายด้วยรายการอนุญาตโดเมน Chromium มีวิธีกำหนดรายการอนุญาตของโดเมนที่ส่วนขยายสามารถทำงานได้[1] แต่เท่าที่เห็นมันไม่ส่งผลต่อสิทธิ์ที่กว้างกว่านั้น เช่น ประวัติการใช้งานทั่วไป
      [1] คลิก ‘Details’ ของส่วนขยาย แล้วเปลี่ยนตัวเลือก ‘Allow this extension to read and change all your data on websites you visit’ เป็น ‘On specific sites’ จากนั้นเพิ่มเว็บไซต์ลงในรายการอนุญาต
    • บน Windows สามารถใช้แอปที่แพ็กเกจโดย portableapps.com ได้ ต้องตั้งค่า AllowMultipleInstances=true ใน .ini
  • ที่บอกว่า “ส่วนขยายเบราว์เซอร์ทำให้นึกถึงความรู้สึกของการควบคุมวิธีใช้คอมพิวเตอร์อย่างลึกซึ้ง” นี่คงทำให้ผู้ใช้ Linuxอยากพูดอะไรสักหน่อย
    ในภาพกว้างกว่านั้น มันคล้ายกับคำถามที่ฉันเคยพยายามอภิปรายไว้เมื่อหลายปีก่อนในบทความ “Is Open Source a diversion from what users really want?” มาก ความตื่นเต้นต่อวิธี “แฮ็ก” ซอฟต์แวร์โดยไม่ต้องไปแตะระบบ build ดูจะมากกว่าการเข้าถึงแบบสมบูรณ์ เปิดกว้าง และในทางทฤษฎีไร้ขีดจำกัดที่ FLOSS มอบให้อย่างชัดเจน แม้จะมีเหตุผลที่เห็นได้ชัดว่าทำไมถึงเป็นเช่นนั้น แต่ก็ยังน่าผิดหวังอยู่นิดหน่อย
    ฉันเคยคุยเรื่องนี้ไว้ที่นี่โดยเปรียบเทียบแนวทางของ Reaper ที่สคริปต์ได้แต่เป็นซอฟต์แวร์ปิดซอร์ส กับ Ardour ที่สคริปต์ได้และเป็นโอเพนซอร์ส: https://discourse.ardour.org/t/is-open-source-a-diversion-fr...

    • ฉันเป็นผู้ใช้ Linux แต่ไม่เห็นด้วย มันไม่ใช่ปัญหาเดียวกันทั้งหมด ถ้าต้องการก็สามารถคอมไพล์เคอร์เนลใหม่ได้ และโดยมากก็สามารถคอมไพล์ user space ส่วนใหญ่ใหม่ได้เช่นกัน แต่โดยเฉพาะถ้าต้องแยกจาก upstream และต้องบำรุงรักษาความต่างนั้นระยะยาว มันยุ่งยาก
      คุณทำแฮ็กสนุก ๆ ด้วยอะไรอย่าง LD_PRELOAD ได้ แต่ก็ยังเทียบไม่ได้เลยกับความยืดหยุ่นและความเข้าถึงง่ายของส่วนขยายเบราว์เซอร์ คุณมีสิทธิ์แก้ไขซอฟต์แวร์ทั้งหมดได้ตามต้องการ แต่แรงเสียดทานในการทำจริงค่อนข้างสูง
    • การที่ Linux ย้ายไปใช้systemdเป็นประสบการณ์ที่คล้ายกับความเสื่อมถอยของส่วนขยายเบราว์เซอร์มาก แน่นอนว่าฉันยังเปลี่ยนวิธีทำงานของคอมพิวเตอร์ตัวเองได้ แต่ถ้าไม่พร้อมทุ่มแรงอย่างมากเพื่อรักษาการเปลี่ยนแปลงนั้นไว้ API ที่ฉันใช้ก็จะค่อย ๆ ถูกดึงออกจากใต้เท้า และยิ่งทำให้คอมพิวเตอร์ของฉันทำงานในแบบที่ฉันต้องการ ไม่ใช่แบบที่คนอื่นคิดไว้ ได้ยากขึ้นเรื่อย ๆ
    • ส่วนขยายดูเหมือนเป็นวิธีเลี่ยงการเซ็นโค้ด การจัดจำหน่าย และการสร้างแบรนด์ ดังนั้นเบราว์เซอร์อย่าง Chrome จึงกลายเป็นแพลตฟอร์มสำหรับแจกจ่ายและรันซอฟต์แวร์
  • ฉันเคยสร้างส่วนขยาย Chromeที่ถูกแนะนำใน Chrome Web Store [1] และจำนวนคำขอที่ส่งมาจาก data broker น่าสงสัยที่อยากซื้อส่วนขยายของฉันไปยัด spyware ใส่นั้นน่ากังวลมาก
    นักพัฒนาที่ไร้เดียงสาอาจสร้างของดีขึ้นมา แล้วคิดว่าขายต่อให้คนอื่นดูแลก็คงดี แต่ความจริงอาจกลายเป็นการสร้างความเสี่ยงให้ผู้ใช้ได้ Google ดูเหมือนจะตรวจการใช้สิทธิ์ได้ค่อนข้างดี แต่ก็มีส่วนขยายแบบของฉันที่จำเป็นต้องเข้าถึงทุกอย่างบนหน้าเว็บ แค่จินตนาการว่า data broker จะทำอะไรกับสิ่งนั้นได้ก็พอแล้ว ตอนติดตั้งจึงต้องระวัง
    [1] https://chromewebstore.google.com/detail/css-selector-helper...

  • สิ่งที่จำเป็นที่สุดน่าจะเป็น view source สำหรับส่วนขยายเบราว์เซอร์ที่ติดตั้งจากสโตร์ ควรดูซอร์สได้ง่าย และควรแตกส่วนขยายเบราว์เซอร์ออกมาเป็นโฟลเดอร์ได้
    ควรดูได้ง่ายด้วยว่าเข้าถึงเว็บเพจไหนและแก้ไขอะไรไปบ้าง โค้ดที่ถูกย่อหรือเข้ารหัสในส่วนขยายควรถูกห้าม และโค้ดควรอ่านได้ง่ายมาก ตัวอย่างเช่น ส่วนขยายนี้บอกว่า “บันทึกกิจกรรมของผู้ใช้” แต่ยากที่จะรู้ว่าจริง ๆ แล้วหมายถึงอะไร: https://chromewebstore.google.com/detail/coffeelings/hcbddpp...

    • ใน Chrome ถ้าไปที่ chrome://extensions แล้วเปิดโหมดนักพัฒนา ก็สามารถ ดูซอร์ส ของส่วนขยายใดก็ได้ใน devtools ส่วน content script นั้นดูได้อยู่แล้วใน devtools ของเว็บเพจปกติแม้ไม่ต้องเปิดโหมดนักพัฒนา
      รายชื่อเว็บไซต์ทั้งหมดดูได้จากป๊อปอัปตอนติดตั้งส่วนขยาย Chrome Web Store ห้ามการทำ code obfuscation อยู่แล้ว ส่วนการย่อนั้นยังอนุญาต เพราะไม่มีวิธีที่มีความหมายในการบังคับคุณภาพของชื่อตัวแปร
    • ดูซอร์สของส่วนขยายเบราว์เซอร์ที่อยู่บน Chrome Web Store ได้โดยไม่ต้องติดตั้งด้วยซ้ำ บางครั้งก็ใช้เครื่องมือนี้เพื่อจุดประสงค์นั้น: https://robwu.nl/crxviewer/
      มันอาจไม่ช่วยกับโค้ดที่ถูกทำให้อ่านยากโดยตั้งใจ แต่ก็น่าจะช่วยงานวิจัยด้านความปลอดภัยและความเป็นส่วนตัวของส่วนขยายส่วนใหญ่ได้
  • แม้จะไม่ใช่ส่วนขยายเต็มรูปแบบ แต่ userscript และ user style ก็ทำอะไรได้เยอะมาก และก็มีส่วนขยายที่ช่วยให้คนสร้างและใช้งานสิ่งเหล่านี้ในเบราว์เซอร์ได้ด้วย เช่น Tampermonkey[0] และ Stylus[1]
    ถึงจะทำได้ไม่มากเท่าส่วนขยาย แต่คิดว่าสำคัญมาก
    [0] https://www.tampermonkey.net/
    [1] https://chrome.google.com/webstore/detail/stylus/clngdbkpkpe...

    • userscript ถูกประเมินค่าต่ำเกินไป ใช้มันกับสารพัดอย่าง เช่น แก้หน้า landing page ที่ไร้ประโยชน์ของ GitHub ให้พาไปที่ repository ของฉัน, hardcode โดเมน instance ของฉันเพื่อให้ปุ่ม “follow” ของ Mastodon ใช้งานได้, และบล็อกผลลัพธ์ไร้ประโยชน์อย่าง stackshare ออกจากผลค้นหาของ Google
      ยังใช้รีไดเร็กต์จากหน้าดู YouTube “short” ไปเป็นหน้าวิดีโอปกติ และเอาช่องว่างงี่เง่าด้านขวาของ scrollbar ใน Gmail ออกด้วย
  • ฉันไม่ใช่สาย JavaScript/TypeScript แต่ก็เขียนโปรแกรม ใช้ส่วนขยายเยอะมาก และคิดว่าตัวเองเป็น power user ที่จะไม่ใช้เบราว์เซอร์ที่ไม่มี ecosystem ของส่วนขยาย Chrome/Firefox เด็ดขาด เคยทำธีมให้ทั้ง Chrome และ VSCode ด้วย แต่ก็ยังรู้สึกแบบนี้อยู่ ถ้าชอบสีชมพู/ฟ้าอมเขียว ก็อยู่ที่นี่: https://marketplace.visualstudio.com/items?itemName=mikejk8s...
    แค่ดูจาก prompt ของ Chrome ฉันไม่รู้เลยว่าส่วนขยายทำอะไรได้ อ่านอะไรได้ เห็นอะไรได้ หรือเข้าถึงอะไรได้บ้าง “อนุญาตให้เข้าถึงข้อมูลของทุกเว็บไซต์” นี่คือทุกข้อมูลจริง ๆ เหรอ? รวมถึงสิ่งที่ฉันพิมพ์ด้วยไหม? มันรู้ไหมว่าฉันย้ายจาก URL หนึ่งไปอีก URL หนึ่ง? หรือแค่อ่าน asset ได้? มี Chrome API ที่จำกัดการเข้าถึงพวกนี้ไหม แล้วฉันดูได้หรือเปล่า? ฉันไม่รู้เลยว่าจริง ๆ ควรกังวลเรื่องอะไร
    ฉันใช้ส่วนขยายซูมวิดีโอที่ทำให้ซูมวิดีโอใดก็ได้บนเว็บไซต์ใดก็ได้ แล้วฉันต้องตรวจสอบแต่ละส่วนขยายเองหรือเปล่าว่ามันไม่ได้คัดลอกข้อมูลของฉันไปที่ไหนสักแห่ง? ไม่รู้เลย และผู้ใช้ที่ไม่ใช่สายเทคนิคจะไปรู้ได้ยังไง

    • ฟังดูแย่อย่างที่คิดจริง ๆ ดังนั้นอย่างที่คนอื่นพูดไว้ ฉันจึงไว้ใจสิทธิ์เข้าถึงแบบนี้ให้แค่ส่วนขยายหลักไม่กี่ตัว เช่น uBlock, Bitwarden
      ผลิตภัณฑ์สตาร์ตอัปแนวบันทึกหน้าจอ/บันทึกเซสชันนี่น่าจะต้องระวังเป็นพิเศษ อย่างน้อยก็เพราะมันอาจเปราะบางต่อ supply chain attack เป็นพิเศษ
    • ใช่ มันแย่ขนาดนั้นจริง ๆ ฉันเคยเขียน webext มาหลายตัว และถ้าขอข้อมูลทั้งหมด นั่นก็คือ ข้อมูลทั้งหมด จริง ๆ แต่ถ้าจะไปเปลี่ยนอะไรบางอย่างบนหน้าเว็บ มันจะทำงานแบบอื่นได้ยังไงล่ะ
      เพราะงั้นรายการส่วนขยายของฉันจึงมีแค่ส่วนขยายใช้ครั้งเดียวที่ฉันเขียนเอง, ส่วนขยายใหญ่ ๆ ที่มีชื่อเสียง, หรือไม่ก็สิ่งที่ฉันตรวจโค้ดเองแล้วเท่านั้น
  • ฉันชอบ bookmarklet มากกว่า เพราะแก้ไขง่าย, ไม่ทำงานจนกว่าจะกดคลิก, ใช้ได้กับทุกเบราว์เซอร์, ใช้บนมือถือได้, และเข้ากับ UI ได้ดี
    จะย้ายไปไหนก็ได้ ใส่ไว้ในโฟลเดอร์บุ๊กมาร์กไหนก็ได้ และกำหนดคีย์ลัดได้ด้วย ฉันทำตัวแก้ไขที่ช่วยแปลงไปมาระหว่างโค้ดแบบอ่านง่ายกับ bookmarklet ได้สะดวก: https://www.gibney.org/bookmarklet_editor

    • เป็นเว็บที่มีประโยชน์มาก ครั้งล่าสุดที่ฉันเล่นกับ bookmarklet มันยังใช้ไม่ได้บน Firefox for Android แต่ตอนนี้ใช้ได้แล้ว น่าจะมีประโยชน์ถ้าใช้ร่วมกับ instance Node-RED ของฉัน
      สงสัยว่ามี bookmarklet ดี ๆ อะไรที่น่าแชร์กันบ้าง