Chrome 130 มีการเปิดตัวการเปลี่ยนแปลงใน Shared Storage API เพื่อเปิดใช้สคริปต์เวิร์กเลตข้ามแหล่งที่มากับ createWorklet()
และ addModule()
นอกจากนี้ เรายังเปิดตัวการอัปเดต Select URL API ที่มีพื้นที่เก็บข้อมูลที่ใช้ร่วมกันใน Chrome 132 ซึ่งรองรับการค้นหาที่บันทึกไว้

Worklet แบบข้ามแหล่งที่มาด้วย Shared Storage API ใน Chrome 130
เราได้เปิดตัวการเปลี่ยนแปลง Shared Storage API ใน Chrome 130 เพื่อให้คุณมีความยืดหยุ่นมากขึ้นเมื่อทำงานกับสคริปต์ Worklet ข้ามแหล่งที่มา
มีอะไรเปลี่ยนแปลงบ้าง
เราได้นําข้อจํากัดต้นทางเดียวกันออกสําหรับ addModule()
แล้ว ตอนนี้คุณจึงโหลดสคริปต์เวิร์กเลตจากต้นทางใดก็ได้ สคริปต์เวิร์กเล็ตข้ามแหล่งที่มาช่วยให้ใช้กรณีการใช้งานที่สำคัญได้ เช่น โฮสต์สคริปต์เวิร์กเล็ตใน CDN เมื่อสคริปต์เวิร์กเลตมาจากแหล่งที่มาอื่นนอกเหนือจากบริบทการท่องเว็บที่เรียกใช้ ระบบจะใช้ต้นทางของบริบทที่เรียกใช้เป็นแหล่งที่มาของพาร์ติชันข้อมูลสำหรับการเข้าถึงพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน
เราได้เพิ่มพร็อพเพอร์ตี้ dataOrigin
ลงในคําเรียก createWorklet()
เพื่ออนุญาตให้อ่านและเขียนลงในพาร์ติชันข้อมูลพื้นที่เก็บข้อมูลที่ใช้ร่วมกันซึ่งแตกต่างจากบริบทการเรียกดูที่เรียกใช้ เพื่อให้การทำงานสอดคล้องกับลักษณะการทำงานใหม่ของ addModule()
และลดความสับสนที่อาจเกิดขึ้น วิธีนี้ช่วยให้คุณควบคุมได้ละเอียดมากขึ้นว่าจะให้แต่ละเวิร์กเลตเข้าถึงพื้นที่เก็บข้อมูลร่วมของต้นทางใด แม้ว่าจะใช้สคริปต์เวิร์กเลตข้ามแหล่งที่มาก็ตาม
มีอะไรเปลี่ยนแปลงบ้าง
ตั้งแต่ Chrome 125 เป็นต้นไป สคริปต์ข้ามแหล่งที่มาของบุคคลที่สามในหน้าเว็บสามารถสร้างเวิร์กเลตข้ามแหล่งที่มาได้โดยไม่ต้องใช้ iframe ข้ามแหล่งที่มาโดยการเรียกใช้ createWorklet(url)
ก่อนหน้านี้ createWorklet(url)
ใช้ต้นทาง URL (url
) ของสคริปต์เป็นต้นทางของพาร์ติชันข้อมูล โดยไม่คำนึงถึงบริบทการเรียกใช้
ใน Chrome 130 createWorklet()
จะใช้บริบทการเรียกใช้เป็นแหล่งที่มาของพาร์ติชันข้อมูลเริ่มต้นด้วย เพื่อให้สอดคล้องกับลักษณะการทำงานใหม่ของ addModule()
หากต้องการใช้ต้นทาง URL สคริปต์เป็นต้นทางของพาร์ติชันข้อมูลต่อไป เราจะเปิดตัวพร็อพเพอร์ตี้ใหม่ dataOrigin
เพื่อช่วยให้คุณตั้งค่าต้นทางของพาร์ติชันข้อมูลได้อย่างชัดเจน
พร็อพเพอร์ตี้ dataOrigin
ใหม่ยอมรับ "script-origin"
ซึ่งจะตั้งค่าต้นทางของพาร์ติชันข้อมูลเป็นต้นทางของสคริปต์ และ "context-origin"
ซึ่งจะตั้งค่าต้นทางของพาร์ติชันข้อมูลเป็นต้นทางของบริบทการท่องเว็บที่เรียกใช้ ในรุ่นที่จะเปิดตัวในอนาคต เราวางแผนที่จะรองรับต้นทางของพาร์ติชันข้อมูลที่กําหนดเองด้วย ซึ่งสคริปต์ของเวิร์กเลตจะเข้าถึงข้อมูลพื้นที่เก็บข้อมูลที่แชร์จากต้นทางใดก็ได้โดยขึ้นอยู่กับการเลือกรับ
เมื่อโหลดสคริปต์ข้ามแหล่งที่มาโดยตั้งค่าแหล่งที่มาของข้อมูลเป็น "script-origin"
คำขอสคริปต์ที่ส่งจากเบราว์เซอร์จะมีส่วนหัว "Sec-Shared-Storage-Data-Origin: <origin>"
หากต้องการเปิดใช้ ในสคริปต์จะต้องมีส่วนหัวการตอบกลับ"Shared-Storage-Cross-Origin-Worklet-Allowed: ?1"
การเลือกใช้ด้วย
How to use
หากใช้ createWorklet()
อยู่แล้วโดยที่ต้นทางสคริปต์เป็นต้นทางของพาร์ติชันข้อมูลของเวิร์กเลต ให้ตั้งค่า dataOrigin
ดังนี้
sharedStorage.createWorklet(scriptUrl, {dataOrigin: "script-origin"});
เนื่องจาก createWorklet()
อนุญาตให้สร้างการแบ่งพาร์ติชันข้อมูลข้ามแหล่งที่มาและการสร้างเวิร์กเลตหลายรายการ เราจึงขอแนะนำให้เปลี่ยนไปใช้ createWorklet()
แทนการใช้ addModule()
เราได้อัปเดตเอกสารประกอบสำหรับนักพัฒนาแอปเพื่อให้สอดคล้องกับการเปลี่ยนแปลงเหล่านี้และเพื่อเป็นแนวทางเพิ่มเติม
การค้นหาที่บันทึกไว้ด้วย Select URL API ใน Chrome 132
เราขอแนะนำการอัปเดต Select URL API ที่มีพื้นที่เก็บข้อมูลที่ใช้ร่วมกันใน Chrome 132 ซึ่งรองรับการค้นหาที่บันทึกไว้
สิ่งที่จะเปลี่ยนแปลง
ปัจจุบัน Select URL API มีงบประมาณต่อหน้าเว็บ 2 รายการที่จำกัดจำนวนการเรียก API ในการโหลดหน้าเว็บแต่ละครั้ง เราขอแนะนำความสามารถในการบันทึกและนําการค้นหามาใช้ซ้ำในแต่ละหน้า เมื่อคุณใช้คําค้นหาที่บันทึกไว้ ระบบจะเรียกเก็บงบประมาณต่อการโหลดหน้าเว็บ 1 ครั้งเมื่อเรียกใช้คําค้นหาที่บันทึกไว้เป็นครั้งแรก แต่จะไม่เรียกเก็บสําหรับการเรียกใช้คําค้นหาที่บันทึกไว้ครั้งต่อๆ ไปในระหว่างการโหลดหน้าเว็บเดียวกัน
วิธีใช้การค้นหาที่บันทึกไว้
ตั้งแต่ Chrome เวอร์ชัน 132 เป็นต้นไป คุณจะใช้พารามิเตอร์ savedQuery
ในตัวเลือกสำหรับ selectURL()
ได้โดยระบุชื่อการค้นหาดังนี้
await sharedStorage.selectURL('experiment', urls, {
savedQuery: 'control_or_experiment',
keepAlive: true
});
ใช้ชื่อ savedQuery
เดียวกันสําหรับการเรียกใช้ selectURL()
ทุกครั้งเพื่อให้มั่นใจว่าจะมีการเรียกเก็บเงินสําหรับการค้นหาที่ตามมาจากงบประมาณเดียวกัน
เราได้อัปเดตเอกสารประกอบเพื่อแสดงการเปลี่ยนแปลงเหล่านี้และระบุรายละเอียดเพิ่มเติมเกี่ยวกับการกำหนดงบประมาณสำหรับ selectURL()
มีส่วนร่วมและแชร์ความคิดเห็น
โปรดทราบว่าข้อเสนอ Shared Storage API อยู่ระหว่างการพูดคุยและการพัฒนาอย่างต่อเนื่อง จึงอาจมีการเปลี่ยนแปลง
เรายินดีรับฟังความคิดเห็นของคุณเกี่ยวกับ Shared Storage API
- ข้อเสนอ: ตรวจสอบข้อเสนอโดยละเอียด
- การสนทนา: เข้าร่วมการสนทนาอย่างต่อเนื่องเพื่อถามคำถามและแชร์ข้อมูลเชิงลึก
ติดตามข้อมูลอยู่เสมอ
- รายชื่ออีเมล: สมัครรับอีเมลจากรายชื่ออีเมลของเราเพื่อรับข้อมูลอัปเดตและประกาศล่าสุดเกี่ยวกับ Shared Storage API
หากต้องการความช่วยเหลือ
- การสนับสนุนนักพัฒนาแอป: เชื่อมต่อกับนักพัฒนาแอปคนอื่นๆ และรับคำตอบสำหรับคำถามของคุณในที่เก็บข้อมูลการสนับสนุนนักพัฒนาแอป Privacy Sandbox