1 คะแนน โดย GN⁺ 2025-11-21 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เพิ่มการรองรับ ข้อกำหนดไดเรกทอรีพื้นฐาน XDG ในเวอร์ชัน Firefox 147
  • ไฟล์การตั้งค่าและแคชจะย้ายไปยัง พาธ XDG มาตรฐาน แทนโฮมไดเรกทอรีแบบเดิม
  • ช่วยเพิ่ม ความสอดคล้องในการจัดการไฟล์คอนฟิก บนสภาพแวดล้อม Linux
  • ข้อมูลผู้ใช้เดิมจะถูก ย้ายไปยังตำแหน่งใหม่โดยอัตโนมัติ
  • ช่วยให้ โครงสร้างไฟล์เป็นระเบียบและปรับปรุงความเข้ากันได้ ทั่วทั้งสภาพแวดล้อมเดสก์ท็อป

การรองรับไดเรกทอรีพื้นฐาน XDG ของ Firefox 147

  • Firefox 147 ถูกปรับให้เป็นไปตาม XDG Base Directory Specification
    • ข้อกำหนดนี้นิยามตำแหน่งจัดเก็บมาตรฐานสำหรับไฟล์การตั้งค่า แคช และข้อมูลของแอปพลิเคชันบนระบบ Linux
  • ก่อนหน้านี้ Firefox จะสร้างโฟลเดอร์ .mozilla ภายในโฮมไดเรกทอรีของผู้ใช้ แต่ตอนนี้จะใช้พาธมาตรฐานอย่าง ~/.config, ~/.cache, ~/.local/share
  • การเปลี่ยนแปลงนี้ทำให้โครงสร้างเปลี่ยนไปเป็นแบบที่อ้างอิงตัวแปรสภาพแวดล้อม XDG_CONFIG_HOME, XDG_CACHE_HOME, XDG_DATA_HOME

ข้อมูลผู้ใช้และการย้ายข้อมูล

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

ความหมายต่อระบบนิเวศ Linux

  • การปฏิบัติตามข้อกำหนด XDG ช่วยเสริม ความสอดคล้องกับแอปพลิเคชันเดสก์ท็อปอื่น ๆ
  • ปรับปรุง การผสานรวมกับสภาพแวดล้อมเดสก์ท็อปหลัก เช่น GNOME และ KDE
  • Firefox ตอกย้ำสถานะของตนในฐานะ เบราว์เซอร์ที่เป็นมิตรต่อมาตรฐาน บนแพลตฟอร์ม Linux

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

 
GN⁺ 2025-11-21
ความคิดเห็นใน Hacker News
  • ในที่สุดก็ดูเหมือนว่า Mozilla จะเริ่มแก้บั๊กที่ค้างมานานเสียที
    แต่พอดูรายละเอียดแล้ว จาก diff code เหมือนไม่เห็น logic การย้ายข้อมูล
    ดูเหมือนว่าถ้ามี ~/.mozilla อยู่แล้วก็จะใช้ต่อไป และถ้าไม่มีจึงจะใช้ ~/.config/mozilla เลยสงสัยว่าถ้าไม่ได้ตั้งค่า MOZ_LEGACY_HOME=1 จะทำให้การตั้งค่าเดิมหายหรือไม่
    อีกอย่างคือดูเหมือนยังแยก ~/.cache, ~/.config, ~/.local/share ได้ไม่ถูกต้อง และเหมือนจะย้ายข้อมูลโปรไฟล์ทั้งหมดไปไว้ใน ~/.config

    • พูดเล่นเหมือนเป็นมุก แต่จริง ๆ แล้ว บั๊กอายุ 27 ปี เพิ่งถูกปิดไปไม่นานนี้เอง
      มีการเพิ่ม about:keyboard ในเวอร์ชัน Nightly ทำให้สามารถแก้ไขหรือล้างคีย์ลัดพื้นฐานอย่างบันทึก ย้อนกลับ รีเฟรช เครื่องมือนักพัฒนา ฯลฯ ได้โดยตรง
    • ถ้าดูจาก diff โครงสร้างเหมือนจะเป็นว่า ถ้ามี ~/.mozilla อยู่หรือมีการตั้งค่า MOZ_LEGACY_HOME ก็จะใช้แบบเดิม และถ้าไม่มีก็จะใช้ $XDG_CONFIG_HOME/.mozilla
      สรุปคือ ไม่ได้ทิ้งข้อมูล แต่ก็ไม่มีการย้ายข้อมูลเช่นกัน
    • ถ้าดู diff ทั้งหมด จะเห็นว่า ~/.cache ถูกใช้อยู่แล้ว แต่ไม่มีอะไรเกี่ยวกับ ~/.local/share
    • ถ้าเอาข้อมูลทั้งหมดไปไว้ใน ~/.config จริง ก็ถือว่า ไม่เหมือนกับการทำตามสเปก XDG Base Directory
      ถึงอย่างนั้น อย่างน้อยก็เป็นการลด dotfile ที่ทำให้ home directory รกรุงรังลงไปได้หนึ่งตัว
    • ผมคิดว่ายังอีกไกลกว่าจะจัดการแยกโฟลเดอร์ .mozilla ได้อย่างสมบูรณ์
      เพราะที่ผ่านมาใส่ทุกอย่างไว้ในโฟลเดอร์เดียวมาตลอด งานแยกแคช การตั้งค่า และข้อมูลแอปพลิเคชันออกจากกันน่าจะยากขึ้น
  • การเปลี่ยนแปลงครั้งนี้ถือว่าเป็นความคืบหน้าที่มีความหมายมาก
    แอปหลัก ๆ จำนวนมากยังไม่ได้ทำตาม XDG Base Directory อย่างเหมาะสม และการที่ Firefox นำมาใช้ อาจส่งผลต่อโปรเจกต์อื่นด้วย
    ดูเหมือนว่า เอกสารใน Arch Wiki ก็น่าจะต้องอัปเดต

    • นักพัฒนา OpenSSH มองว่าการนำ XDG มาใช้เป็น ความเสี่ยงด้านความปลอดภัย
      เพราะ .ssh เกี่ยวข้องกับสิทธิ์เข้าถึงระบบ ถ้ากระจาย path ของการตั้งค่าออกไปหลายที่ก็อาจทำให้การจัดการซับซ้อนขึ้นและมีช่องโหว่มากขึ้น
      ~/.ssh/config หรือ known_hosts อาจย้ายไป XDG ได้ แต่ถ้าย้ายแค่บางส่วนก็จะทำให้จุดประสงค์เรื่องการจัดระเบียบ dotfile ไม่ชัดเจน
      มีการถกเถียงที่เกี่ยวข้องอยู่ใน mailing list
    • น่าแปลกใจที่ทั้งที่เป็นการแก้ไขง่าย ๆ แบบนี้ แต่รายชื่อ แอปที่ยังไม่ทำตามมาตรฐาน ก็ยังยาวมาก
      เป็นปัญหาที่น่าจะแก้ได้ในไม่กี่ชั่วโมงด้วย PR เดียวแท้ ๆ
    • ตอนก่อนหน้านี้สมัย Debian เปลี่ยนชื่อจาก icedove → thunderbird เคยเกิดความสับสนหนักจาก การชนกันของ path การตั้งค่า
      ถ้าเป็นโครงสร้าง XDG ที่แยกการตั้งค่ากับข้อมูลออกจากกัน ปัญหาแบบนี้ก็คงไม่เกิดขึ้น
    • Chromium เองก็ยังใช้ $HOME/.pki อยู่และทำให้ home directory รกรุงรัง
      ปัญหานี้เกิดจากการไม่ได้ใช้ libnss อย่างถูกต้อง และแอปที่ฝัง Chromium ไว้ เช่น QtWebEngine ก็เจอปัญหาเดียวกัน
  • โฟลเดอร์ .mozilla เป็นหนึ่งใน dotfile สุดท้ายที่ยังเหลืออยู่ใน home directory ของผม
    พอคิดว่ามันจะถูกจัดระเบียบเสียทีแล้วก็ดีใจ
    ยังสามารถใช้เครื่องมือชื่อ xdg-ninja (ลิงก์) เพื่อตรวจหาแอปที่ฝ่าฝืนกฎ XDG ได้ด้วย
    หลายโปรแกรม hardcode ~/.config หรือ ~/.local ไว้แล้วพยายามสร้างใหม่ทุกครั้ง ดังนั้นควรหลีกเลี่ยงแอปแบบนี้

    • อาจแก้ด้วย hardlink ได้ แต่การใช้ environment variable ก็ยังเป็นส่วนที่ยุ่งยากอยู่ดี
      น่าจะดีถ้ามี การตั้งค่าระดับไดรเวอร์ ที่ map XDG_CONFIG_HOME ไปยัง path เสมือนได้
    • ขอบคุณที่ทำให้เพิ่งรู้จัก xdg-ninja
      ผมเกลียดพวกโปรแกรมที่ทำให้ home directory รกเละเทะจริง ๆ
      เบื่อเต็มทนกับวิธีตั้งค่าที่ต้องไปแก้ hidden file โดยตรง
  • เป็นข่าวดีมาก
    Firefox บน Windows และ macOS ทำตามโฟลเดอร์ของระบบได้ดีอยู่แล้ว
    ส่วนบน Linux แม้จะไม่มีมาตรฐานตายตัว แต่การทำตาม คำแนะนำของ XDG ก็ถือว่าเป็นความคืบหน้าครั้งใหญ่

  • ในที่สุดก็ถึงเวลาที่ควรจะเป็นเสียที
    ซอฟต์แวร์ทุกตัวควรรองรับ XDG น่าแปลกใจที่แต่แรก Firefox ไม่ได้ทำตาม

    • XDG เกิดขึ้นหลัง Firefox นานมาก และตลอดช่วงเวลาส่วนใหญ่ก็ ไม่ได้ถูกนำมาใช้อย่างแพร่หลาย
    • เหตุผลที่ซอฟต์แวร์ส่วนใหญ่ไม่ทำตาม XDG ก็เพราะว่า สเปกเพิ่งเกิดขึ้นราวปี 2003
      ตอนนี้เริ่มมีการนำไปใช้มากขึ้นเรื่อย ๆ และ home directory ก็น่าจะสะอาดขึ้นมาก
      แต่สิ่งสำคัญคือควรมี เส้นทางการย้ายข้อมูลที่ชัดเจน เพื่อไม่ให้การตั้งค่าเดิมหายไป
  • นี่เป็นข่าวที่น่ายินดีจริง ๆ
    เหมือนกับบั๊กที่รอกันมานานแบบ Gimp 3 ในที่สุดก็แก้ได้เสียที

  • ช่วงหลัง Firefox ดูดีขึ้นเรื่อย ๆ ทั้งการเพิ่ม รองรับ .mkv และการปรับปรุงแบบนี้
    สิ่งที่ผมยังไม่พอใจเหลืออยู่คือ คีย์ลัดที่ hardcode มา เท่านั้น

    • มีการเพิ่ม about:keyboard ใน Firefox Nightly ทำให้แก้ไขคีย์ลัดได้เอง
      ตอนนี้ยังรองรับแค่ฟังก์ชันพื้นฐาน แต่ก็ใช้งานได้ดีพอสมควร
  • ปรับปรุงแบบนี้หลังผ่านไป 21 ปี ช้าไปหน่อยแต่ก็ดีใจ 😄

    • มีเรื่องเล่าว่าตอนมีคนถามว่า “ทำไมใช้เวลานานขนาดนี้” นักพัฒนาตอบว่า “ไม่มีเวลา”
      ยาวนานถึง 21 ปี ฟังแล้วก็อดขำไม่ได้
  • สงสัยว่าคนที่รายงานบั๊กนี้เป็นคนแรกยังมีชีวิตอยู่ไหม

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

    • สำหรับผม บางครั้งมี ปัญหาคลิกลิงก์ไม่ติด อยู่บ้าง
      น่าจะเป็นปัญหาจาก ad blocker หรือการ implement ของ SaaS vendor
      กับเว็บสำคัญแบบนี้ก็เลยจำใจต้องใช้ Safari