محاذاة الموقتات مع قيود العزل من مصادر متعددة

قبل الإصدار 91، كانت دقة الموقّت في Chrome تقتصر على 5 ميكرو ثانية على أجهزة الكمبيوتر المكتبي، حيث تكون ميزة عزل المواقع الإلكترونية مفعّلة، وعلى 100 ميكرو ثانية على Android، حيث تكون هذه الميزة غير مفعّلة.

اعتبارًا من الإصدار 91، بعد تغيير في المواصفات، سيحدّ Chrome من دقة الموقّتات الصريحة (performance.now() وperformance.timeOrigin وواجهات برمجة التطبيقات الأخرى المتعلّقة بالأداء التي توفّر DOMHighResTimestamps) إلى 100 ميكرو ثانية على جميع المنصات. من خلال تفعيل ميزة حظر الوصول من نطاقات أخرى، يمكن للمواقع الإلكترونية تخفيف القيود إلى 5 ميكرو ثانية بغض النظر عن المنصة.

إنّ الحصول على إمكانات أكثر فعالية من خلال تفعيل ميزة "حظر الوصول من نطاقات أخرى" هو نهج مشابه تم طرحه في SharedArrayBuffer. "الحظر من مصادر أخرى" هو حالة يتم فيها عزل صفحة ويب عن مصادر أخرى باستثناء المصادر التي تم تفعيلها.

هل عليّ اتّخاذ أي إجراء بشأن ذلك؟

على الأرجح أنّ هذه المطالبات لن تسبّب لك أي مشكلة. تم اقتصار performance.now() على درجات دقة أكثر خشونة في المتصفّحات الأخرى (على سبيل المثال، ملي ثانية واحدة = 0.001 ثانية)، لذا من المفترض ألا تعتمد على درجة الدقة الحالية على أي حال.

في الوقت نفسه، إذا كنت تريد الاستفادة من دقة أعلى لموقّتاتك، على سبيل المثال لقياسات أداء أكثر دقة، عليك التأكّد من أنّ موقعك الإلكتروني معزول عن مصادر متعددة. سيؤدي ذلك إلى توفير درجة دقة أفضل في كلّ من Chrome والمتصفحات الأخرى المستندة إلى Chromium، بالإضافة إلى Firefox.

ما علاقة الموقّتات بحظر الوصول من نطاقات أخرى؟

قرّر مورّدو المتصفّحات حصر الموقّتات بدرجات دقة أكثر تقرّبًا (بالإضافة إلى توفّر SharedArrayBuffers التي يمكن استخدامها كموقّتات ضمنية) عند اكتشاف Spectre. ويعود سبب ذلك إلى أنّ هجمات Spectre وغيرها من هجمات التنفيذ التوقّعي المشابهة تعتمد على الموقّتات لقياس الوقت الذي تستغرقه عمليات معيّنة، ثم تخمين محتوى ذاكرة العملية.

على الرغم من أنّه يمكن تنفيذ هجمات التنفيذ التوقّعي باستخدام أدوات ضبط الوقت التقريبية، يمكن أن تزيد أدوات ضبط الوقت العالية الدقة من سرعتها. استخدَم Chrome بنية عزل المواقع الإلكترونية ، بالإضافة إلى آليات أخرى، للحد من المخاطر وإعادة تفعيل هذه الوظائف، ولكنّها تقتصر على منصات أجهزة الكمبيوتر المكتبي ومتصفّحات Chromium فقط. إنّ استخدام واجهات برمجة التطبيقات التي تعتمد على بنية المتصفّح الأساسية ليس مثاليًا حقًا.

يقدّم عزل الموارد المشتركة النطاق الأساس العادي للمتصفّحات لتشغيل الصفحات في بيئة معزولة كي لا تتمكّن من تحميل موارد غير مرغوب فيها من مصادر متعددة، وبالتالي، لا تتعرّض لخطر Spectre. من خلال عزل مصادر متعددة، يمكننا الآن السماح للصفحات بالوصول إلى أدوات ضبط الوقت العالية الدقة، SharedArrayBuffer، وواجهات برمجة التطبيقات الأخرى التي لا يُسمح بعرضها في العمليات التي يمكنها قراءة بيانات عشوائية من مصادر متعددة.

لمزيد من المعلومات عن الخلفية وراء هذا التغيير، يمكنك الاطّلاع على مقالة سبب الحاجة إلى "الميزات المنعزلة بين مصادر مختلفة" للحصول على ميزات فعّالة.

صورة الغلاف مقدمة من ليندا بيريز جوهانسن على Unsplash.