هل "تم" مشروع Fugu؟

نظرًا لأنّ أحد أهداف فريق Project Fugu يتمثل في تمكين المطوّرين من تنفيذ أي إجراء على الويب يمكن للتطبيقات الخاصة بنظام التشغيل الأساسي، كان الفريق مشغولاً بإضافة ميزات غير متوفّرة يحتاجها مطوّرو البرامج على الويب لسد هذه الفجوة في التطبيق. إذا كنت لا تصدقني، ما عليك سوى الاطّلاع على قسم "تم الشحن" في أداة التتبُّع Fugu API. في ما يلي 55 واجهة برمجة تطبيقات تم شحنها، بالترتيب من الأقل إلى الأحدث الذي تم شحنه:

اسم واجهة برمجة التطبيقات تم الشحن خلال
Web Bluetooth API56 Chrome
WebUSB APIChrome 61
استهداف المشاركة على الويبChrome 71
المستوى 2 من Web Share APIChrome 75
الحافظة غير المتزامنة: قراءة الصور وكتابتهاالإصدار 76 من Chrome
المستوى 2 من هدف المشاركة على الويبالإصدار 76 من Chrome
إدخال تلميح المفتاحChrome 77
توسيع حصة مساحة التخزينChrome 78
تثبيت واجهة برمجة التطبيقات للتطبيقات ذات الصلةChrome 80
المزامنة الدورية في الخلفيةChrome 80
desktop-pwa: إتاحة وضع عرض "minimal-ui"Chrome 80
برامج ترميز الضغطChrome 80
واجهة برمجة تطبيقات جهات الاتصالChrome 80
واجهة برمجة تطبيقات وضع الشاراتChrome 81
السماح باستخدام Badging API من مشغّل خدمات من خلال PushChrome 81
واجهة برمجة تطبيقات الكشف عن الرمز الشريطيChrome 83
واجهة برمجة تطبيقات فهرسة المحتوىChrome 84
WebOTPChrome 84
واجهة برمجة تطبيقات قفل الشاشةChrome 84
Streams API: أحداث البث القابلة للتحويلChrome 85
اختصارات التطبيقاتChrome 85
الوصول إلى نظام الملفاتChrome 86
إتاحة النصوص/html لواجهة برمجة تطبيقات الحافظة غير المتزامنةChrome 86
إتاحة التحريك/الإمالة للكاميراChrome 87
FUGU تنفيذ عملية التقاط الصوت في النظام والتطبيق لسمّاعات الرأس ومكبّرات الصوت Chrome 88
حركة PointerLock غير مُعدَّلةChrome 88
إنشاء "أداة اختيار الصور" أو "الفيديوهات" تشبه "أداة اختيار الصور" على AndroidChrome 88
دمج ميزة "المشاركة على الويب" (navigator.share) مع نظام التشغيل Windows 10Chrome 88
تقنية الاتصال القصير المدى (NFC) على الويبChrome 89
WebHID (جهاز واجهة بشرية)Chrome 89
Web Serial APIChrome 89
المشاركة على الويب على أجهزة الكمبيوتر المكتبيChrome 89
واجهة برمجة تطبيقات التعرّف على الكتابة بخط اليدChrome 90
الضبط المُدار لتطبيقات الويبChrome 91
تشغيل تطبيق الويب التقدّمي (PWA) عند تسجيل الدخول إلى نظام التشغيلChrome 91
WebCodecsChrome 93
رصد عدم النشاط لفترة قصيرةChrome 94
EyeDropper APIChrome 95
قائمة اختصارات التطبيقات لتطبيقات الويب التقدّمية (PWA) على نظامَي التشغيل macOS وLinuxChrome 96
تسجيل معالج بروتوكول عنوان URL لتطبيقات الويب التقدّمية (PWA) Chrome 96
WebTransportChrome 97
الحافظة: يؤدي لصق صور ريتينا إلى فقدان بيانات pHY الوصفية.Chrome 98
يجب أن يكون بالإمكان إلغاء تثبيت تطبيق الويب التقدّمي (PWA) بالطريقة نفسها التي يمكن بها إلغاء تثبيت "تطبيق فعلي".Chrome 99
تقنية الاتصال القصير المدى (NFC) على الويب: NDEFReader makeReadOnly()Chrome 100
موضع النوافذ المتعددة الشاشاتChrome 100
HIDDevice Accessibility()Chrome 100
USBDevice delete()الإصدار 101 من Chrome
سلوك Web USB sameObjectالإصدار 101 من Chrome
تراكب عناصر التحكم في النافذة لتطبيقات الويب المثبَّتة على أجهزة الكمبيوتر المكتبيChrome 102
معالجة الملفاتChrome 102
لم يعُد بإمكان واجهة برمجة التطبيقات chrome.management API التفاعل مع تطبيقات PWAChrome 102
SerialPort Sense()الإصدار 103 من Chrome
الوصول إلى الخطوط المحليةالإصدار 103 من Chrome
Fugu Request: Dynamic App Shortcuts (الإصدار 2 من الاختصارات)الإصدار 104 من Chrome
تنسيقات الويب المخصّصة لواجهة Async Clipboard APIالإصدار 104 من Chrome
تم شحن كل واجهات برمجة تطبيقات Fugu API حتى الآن.

إنها قائمة طويلة، وهناك المزيد في طبقنا. لا تزال هناك مجموعة من واجهات برمجة التطبيقات والميزات التي لا تزال في مرحلة التجربة التجريبية للمطوّرين حاليًا (أي التي تم تنفيذها، ولكنها قائمة على الميزة التجريبية)، وبعضها بدأنا العمل عليها، والكثير منها قيد المراجعة. كما ترى، لم حان الوقت للاسترخاء والقول إننا انتهينا.

طُرق الملفات المتزامنة لنظام الملفات الخاص الأصلي

بالعكس تمامًا، بدلاً من إعلاننا عن اكتمال جهودنا، بدأنا في الواقع للتو. على سبيل المثال، انظر إلى الرسم البياني أدناه الذي يعرض النمو النسبي في الاستخدام المتزايد لطريقة navigator.storage.getDirectory()، المستخدَمة كنقطة دخول إلى نظام الملفات الخاصة المصدر (OPFS). وتُستخدَم هذه الطريقة، على سبيل المثال، لتلبية احتياجات مساحة التخزين العالية الأداء في Photoshop، ويهمّ منتدى مساحة التخزين جدًا منذ بداية إيقاف لغة الاستعلامات البنيوية (SQL) على الويب نهائيًا، وحتى قبل ذلك.

رسم بياني يعرض الاستخدام النسبي المتزايد لطريقة navigator.storage.getDirectory

والآن بعد أن أصبح عدد أكبر من الأشخاص يستخدمون OPFS، ظهرت متطلبات إضافية. على سبيل المثال، الحاجة إلى مجموعة متزامنة بالكامل من طرق الملفات في سياق العامل (راجع whatwg/fs#7 للاطّلاع على الخلفية) وبالرغم من أنّ واجهات برمجة تطبيقات الويب الجديدة غير متزامنة بشكل عام، فإنّ استخدام طرق متزامنة سيجعل العمل مع OPFS أسهل كثيرًا في سياق Wasm، وبما أنّ ذلك يحدث في العامل، لا يمكن حظر سلسلة التعليمات الرئيسية.

تحسينات على الخصوصية لواجهات برمجة تطبيقات الأجهزة

ومن الأمثلة الأخرى واجهات برمجة تطبيقات الأجهزة التي تتيح لك الاتصال بأجهزة HID وserial وUSB والبلوتوث وNFC. وعلى الرغم من أن بعض واجهات برمجة التطبيقات هذه موجودة منذ فترة، إلا أنه حتى وقت قريب لم تكن هناك طريقة لحذف جهاز سبق أن اتصلت به. وبفضل طرق forget() لبعض واجهات برمجة التطبيقات. على سبيل المثال، إليك طريقة حذف بيانات جهاز تسلسلي سبق توصيله، ما يحسّن خصوصية واجهة برمجة التطبيقات.

// Request a serial port.
const port = await navigator.serial.requestPort();
// Then later revoke permission to the serial port.
await port.forget();

عوامل تنقيح لواجهة برمجة تطبيقات وضع نوافذ متعددة الشاشات

أحد الأمثلة الأخيرة على ذلك هو واجهة برمجة تطبيقات مواضع الشاشات المتعددة، حيث تم استبدال تصنيفات الشاشات السابقة، مثل "Internal Display 1"، استنادًا إلى ملاحظات المطوّرين، بتصنيفات أكثر فائدة مثل "Built-in Retina Display" حتى يتمكن المستخدمون من ربط هذه التصنيفات بسهولة أكبر بالشاشات المتوفرة على إعدادات الشاشات المتعددة.

الاستنتاجات

وكما ترى من هذه الأمثلة الثلاثة فقط، فإن مشروع Project Fugu بعيد جدًا عن الإنجاز. يمكنك الاستمرار في استخدام واجهات برمجة التطبيقات أو البدء باستخدامها وإرسال التعليقات. نظرًا لأن جميع مواصفات Fugu تم تطويرها علنًا على GitHub، يمكنك الإبلاغ عن مشكلة في المواصفات على مستودع GitHub المقابل أو إضافة أفكارك إلى مشكلة حالية. إذا عثرت على خطأ في تنفيذ Chrome أو اكتشفت أنّ التنفيذ مختلف عن المواصفات، يُرجى الإبلاغ عن الخطأ على new.crbug.com. واحرص على تضمين أكبر قدر ممكن من التفاصيل وتوفير تعليمات بسيطة لإعادة الإنتاج.

وإذا كنت قلقًا بشأن التوافق مع المتصفح، فإن العديد من واجهات برمجة تطبيقات Fugu تقدم تحسينات تدريجية رائعة. يمكنك الاطّلاع على مقالتي SVGcode: a PWA لتحويل الصور النقطية إلى رسومات SVG متّجهية للحصول على الإلهام. ولا نعتبر مهمتنا منجزة إلا بعد أن تكون واجهات برمجة التطبيقات هذه قابلة للتشغيل التفاعلي، وسنواصل العمل على إجراء المزيد من عمليات توحيد المقاييس واختبارها واعتمادها من خلال متصفحات أخرى.