‫Chrome 148

تاريخ الإصدار الثابت: 5 مايو 2026

ما لم يُذكر خلاف ذلك، تنطبق التغييرات التالية على إصدار القناة الثابتة 148 من Chrome على أجهزة Android وChromeOS وLinux وmacOS وWindows.

CSS وواجهة المستخدم

طلبات البحث في حاويات CSS التي تتضمّن الاسم فقط

يمكن طلب البحث عن حاوية طلب بحث CSS استنادًا إلى container-name فقط، ولا تحتاج الحاوية إلى أي container-type محدّد:

#container {
  container-name: --foo;
}
@container --foo {
  input { background-color: green; }
}
<div id="container">
  <div><input></div>
</div>

في السابق، كان @container يتطلّب نوع حاوية بالإضافة إلى الاسم.

تتبُّع الخطأ رقم 40287550 | إدخال ChromeStatus.com | المواصفات

قاعدة @: رصد ميزات CSS

تضيف هذه الميزة الدالة at-rule() إلى @supports في CSS، ما يتيح للمؤلفين رصد الميزات المتوافقة مع قواعد CSS @.

تتبُّع الخطأ رقم 40211832 | إدخال ChromeStatus.com | المواصفات

Open Font Format avar2 text shaping and glyph rendering

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

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

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

يمنح تنسيق Avar2 مصمّمي الخطوط تحكّمًا أفضل في مساحة الأشكال المتغيرة القابلة للاستخدام في خطوطهم، ويتيح لهم تنسيق تعديل محاور التصميم على مستوى عدة محاور.

من خلال تحديد العلاقات بين المحاور رياضيًا ضمن جدول الإصدار 2 من Avar، يمكن أن تحقق الخطوط تصاميم معقدة باستخدام عدد أقل من الخطوط الأساسية، ما يؤدي إلى أحجام ملفات أصغر، لأنّ الاستيفاء يتم تخزينه بشكل أكثر كفاءة.

تتبُّع الخطأ رقم 40246300 | إدخال ChromeStatus.com | المواصفات

الكلمة الرئيسية لقاعدة الإرجاع

تعمل الكلمة الرئيسية revert-rule على إرجاع التتالي إلى القاعدة السابقة، على غرار طريقة عمل revert-layer في إرجاع التتالي إلى الطبقة السابقة. على سبيل المثال:

div { color: green; }
div { color: revert-rule; /* Effectively green */ }

ويكون ذلك مفيدًا بشكل خاص عند دمجه مع عبارات شرطية، لأنّه يتيح لك إلغاء القاعدة الحالية إذا لم يتم استيفاء بعض الشروط:

div {
  display: if(style(--layout: fancy): grid; else: revert-rule);
}

تتبُّع الخطأ رقم 393582263 | إدخال ChromeStatus.com | المواصفات

التحميل الكسول لعناصر الفيديو والصوت

تضيف هذه الميزة السمة loading إلى العنصرَين <video> و<audio>، ما يتيح للمطوّرين تأجيل تحميل موارد الوسائط إلى أن يصبح العنصر بالقرب من إطار العرض باستخدام loading="lazy". يتطابق ذلك مع السلوك الحالي للتحميل الكسول لعنصرَي <img> و<iframe>، ما يؤدي إلى تحسين أداء تحميل الصفحة وتقليل استخدام البيانات.

خطأ التتبّع ‎ #469111735 | إدخال ChromeStatus.com | المواصفات

text-decoration-skip-ink: all

أضِفنا إمكانية استخدام القيمة all للسمة text-decoration-skip-ink في CSS.

تتيح السمة text-decoration-skip-ink استخدام auto وnone. توسّع القيمة all هذا السلوك من خلال تطبيق ميزة &quot;تخطّي الحبر&quot; بشكل غير مشروط على جميع الرموز الرسومية —بما في ذلك أحرف CJK—بينما تترك auto أحرف CJK بدون تخطّي لأنّ ميزة &quot;تخطّي الحبر&quot; تؤدي عادةً إلى نتائج مرئية غير مرغوب فيها للنصوص التصويرية في مواضع التسطير النموذجية.

باستخدام text-decoration-skip-ink: all، يمكن للمطوّرين الذين عدّلوا text-underline-position أو text-underline-offset لتجنُّب التعارض مع الرموز الرسومية للغات الصينية واليابانية والكورية، تفعيل ميزة "تخطّي الحبر" لهذه الأحرف أيضًا.

تتبُّع الخطأ ‎ #40675832 | إدخال ChromeStatus.com | المواصفات

ضبط dropEffect بشكل صحيح للأحداث dragEnter وdragLeave وdragOver

تتطلّب مواصفات السحب والإفلات أن تتضمّن السمة dropEffect الخاصة بالكائن dataTransfer قيمًا محدّدة مسبقًا على dragEnter وdragOver وdragLeave. يجب أن يتضمّن حدثا "السحب للدخول" و"السحب فوق" dropEffect استنادًا إلى effectAllowed الحالي، ويجب أن يتضمّن dragLeave دائمًا none dropEffect. في الوقت الحالي، لا يلتزم Chromium بهذه القواعد. مع إطلاق هذه الميزة، سيبدأ Chromium في الالتزام بالمواصفات وتعيين القيم الصحيحة لهذه السمة، ما يتيح لمطوّري الويب البدء في الاعتماد عليها.

تتبُّع الخطأ رقم 434151262 | إدخال ChromeStatus.com | المواصفات

إيقاف أحداث المؤشر عند بدء السحب

وفقًا لمواصفات HTML، عندما تبدأ عملية سحب، يجب أن يرسل وكيل المستخدم الأحداث المناسبة إلى مصدر السحب للإشارة إلى أنّ سلسلة أحداث المؤشر قد انتهت، وأنه لا يجب أن يتوقّع المزيد من الأحداث من هذا المؤشر. تم تنفيذ هذا الرمز جزئيًا لأحداث الماوس وكاملاً لعمليات السحب باللمس على Android. من خلال العمل على هذه الميزة، نهدف إلى تلبية متطلبات المواصفات هذه بالكامل على جميع المنصات الأخرى. يعني ذلك عمليًا أنّه بعد بدء عملية السحب، سيتلقّى مصدر السحب الأحداث pointercancel وpointerout وpointerleave للإشارة إلى أنّ دفق الأحداث الحالي قد انتهى.

تتبُّع الخطأ رقم 452372355 | إدخال ChromeStatus.com | المواصفات

الإمكانات

تحديد لغة البيان

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

يمكنك الاطّلاع على مزيد من المعلومات في إتاحة أقلمة بيانات بيان تطبيقات الويب.

خطأ التتبُّع رقم 380491647 | إدخال ChromeStatus.com | المواصفات

الويب على Android

Web Serial API على Android

توفّر Web Serial API واجهة للاتصال بالأجهزة التسلسلية، إمّا من خلال منفذ تسلسلي على نظام المستخدم أو أجهزة USB وبلوتوث قابلة للإزالة تحاكي منفذًا تسلسليًا. أصبحت هذه الميزة متاحة الآن على Android.

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

لمزيد من المعلومات، يمكنك الاطّلاع على دليل Web Serial API على web.dev ومواصفات Web Serial.

تتبُّع الخطأ رقم ‎365514951 | إدخال ChromeStatus.com

SharedWorker على Android

تم إيقاف SharedWorker على Android لفترة طويلة بسبب مخاوف بشأن دورة حياة العملية غير المتوقّعة. قد يتم إيقاف مثيلات SharedWorker بشكل غير متوقّع بدون إرسال إشعار إلى المستخدمين أو مطوّري الويب.

ومع ذلك، تشير مناقشة حديثة على GitHub (راجِع مناقشة GitHub) إلى أنّ الطبيعة غير المتوقّعة لمراحل نشاط عملية SharedWorker قد لا تكون مشكلة كبيرة كما كان يُعتقد سابقًا. بناءً على ذلك، سيتم إعادة تفعيل SharedWorker على إصدارات Android الأقدم من 10، بينما يتم التحقيق في هذا السلوك لضمان توفير تجربة مستقرة وموثوقة.

تتبُّع الخطأ رقم 40290702 | إدخال ChromeStatus.com | المواصفات

واجهات برمجة التطبيقات على الويب

ميزة WebGPU: linear_indexing

تضيف هذه الميزة وظائف إلى مواصفات WebGPU بعد شحنها لأول مرة في أحد المتصفّحات.

تضيف هذه السمة قيمتَين مدمجتَين جديدتَين في برنامج تظليل الحساب لتحسين تجربة المستخدم. يتم تنفيذها لجميع الأنظمة الخلفية (كبدائل للقيم المضمّنة الحالية).

تتبُّع الخطأ رقم 482840564 | إدخال ChromeStatus.com | المواصفات

وضع واجهة المستخدم الفورية لمصادقة الويب

وضع جديد للوظيفة navigator.credentials.get() يؤدي إلى عرض واجهة مستخدم تسجيل الدخول في المتصفّح للمستخدم إذا كانت هناك كلمة مرور أو مفتاح مرور للموقع الإلكتروني يعرفه المتصفّح على الفور، وإلا سيتم رفض الوعد باستخدام NotAllowedError إذا لم تتوفر بيانات الاعتماد هذه. يتيح ذلك للموقع الإلكتروني تجنُّب عرض صفحة تسجيل الدخول إذا كان بإمكان المتصفّح تقديم خيار لبيانات اعتماد تسجيل الدخول التي من المحتمل أن تنجح، مع السماح في الوقت نفسه بتوفير مسار تقليدي لصفحة تسجيل الدخول في الحالات التي لا تتوفّر فيها بيانات الاعتماد هذه.

تتبُّع الخطأ رقم 408002783 | إدخال ChromeStatus.com | المواصفات

الحصول على إمكانات تأكيد الدفع الآمن

تضيف هذه السمة طريقة ثابتة جديدة إلى Payment Request تتيح لمطوّري الويب التعرّف على إمكانات تنفيذ ميزة &quot;تأكيد الدفع الآمن&quot; في المتصفح.

يساعد ذلك مطوّري الويب في معرفة الإمكانات المتاحة في ميزة &quot;تأكيد الدفع الآمن&quot; ليتمكّنوا من تحديد ما إذا كانوا يريدون استخدامها مع هذه الإمكانات أم لا.

تتبُّع الخطأ رقم 484043990 | إدخال ChromeStatus.com | المواصفات

العاملون المشتركون ذوو مدة التشغيل الإضافية

يضيف هذا التحديث خيارًا جديدًا، وهو extendedLifetime: true، إلى الدالة الإنشائية SharedWorker. يطلب هذا الخيار الجديد إبقاء العامل المشترَك نشطًا حتى بعد أن يتم إيقاف تحميل جميع العملاء الحاليين. يتيح ذلك للصفحات تنفيذ مهام غير متزامنة تتطلّب JavaScript بعد إلغاء تحميل الصفحة، بدون الحاجة إلى الاعتماد على مشغّل الخدمات.

تتبُّع الخطأ رقم 400473072 | إدخال ChromeStatus.com | المواصفات

Prompt API

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

يتيح التنفيذ الأوّلي إدخال النصوص والصور والمقاطع الصوتية. بالإضافة إلى ذلك، تضمن قيود الردود أن يتوافق النص الذي يتم إنشاؤه مع التعبيرات العادية المحدّدة مسبقًا وتنسيقات مخطّط JSON.

يتيح ذلك مجموعة متنوعة من حالات الاستخدام، بدءًا من إنشاء شرح للصور وإجراء عمليات بحث مرئية، وصولاً إلى تحويل الصوت إلى نص وتصنيف الأحداث الصوتية وإنشاء نص باتّباع تعليمات محددة واستخراج المعلومات أو الإحصاءات من مواد مصدر متعددة الوسائط.

تتبُّع الخطأ رقم 417526788 | إدخال ChromeStatus.com | المواصفات

الشبكة والاتصال

قواعد IDNA ContextJ

‫IDNA هي الآلية المستخدمة للأحرف بتنسيق غير ASCII في أسماء النطاقات. وهو يرمّز عنوان URL مثل http://네이버.한국/ إلى http://xn--950bt9s8xi.xn--3e0b707e/ (إعادة توجيه إلى naver.com).

يضبط تحديد عنوان URL العلامة CheckJoiners، ما يتيح استخدام قواعد ContextJ في IDNA2008. يؤدي ذلك إلى عدم السماح باستخدام ZWNJ (U+200C ZERO WIDTH NON-JOINER) وZWJ (U+200D ZERO WIDTH JOINER) في معظم مواضع عناوين URL. يمرّر التنفيذ الخيار UIDNA_CHECK_CONTEXTJ إلى ICU، حيث يتم تنفيذ هذه القاعدة.

تتبُّع الخطأ رقم 40765949 | إدخال ChromeStatus.com | المواصفات

إعادة استخدام صور no-store عند إعادة تعيين same-src

السماح بإعادة استخدام الصورة المتاحة في المستند نفسه لتجاوز إعادة التحميل Cache-Control: no-store عندما تتم إعادة تعيين قيمة src نفسها إلى عنصر <img>. في السابق، كان Blink يعيد جلب الصورة حتى لو تم فك ترميزها وكانت متاحة في المستند. يتوافق ذلك مع السلوك الحالي في Gecko وWebKit.

تتبُّع الخطأ رقم 486562295 | إدخال ChromeStatus.com | المواصفات

الأداء

ContentType في Resource Timing

تضيف هذه السمة الحقل contentType إلى PerformanceResourceTiming لاحتواء سلسلة تتوافق مع عنوان HTTP الخاص بنوع المحتوى للمورد الذي تم جلبه كما يعرضه الخادم.

تتبُّع الخطأ رقم 1366706 | إدخال ChromeStatus.com | المواصفات

WebRTC Datachannel: التفاوض دائمًا على قنوات البيانات

تنفّذ هذه السمة إضافة WebRTC alwaysNegotiateDataChannels التي تحدّد طريقة تتيح للتطبيق التفاوض على قنوات البيانات في عرض SDP قبل إنشاء قناة بيانات. يتفاوض هذا الخيار أيضًا على قسم البيانات m= قبل أي أقسام صوتية أو فيديو m، ويستخدمه كـ "قسم m= الذي تم وضع علامة عليه من قِبل مقدّم العرض" لـ BUNDLE.

ويعني هذا أنّ:

const pc = new RTCPeerConnection({ alwaysNegotiateDataChannels: true });
const offer = await pc.createOffer();

سيتم إنشاء عرض يتضمّن سطر m لتطبيق في بروتوكول وصف الجلسة (SDP) على أن:

const pc = new RTCPeerConnection({ alwaysNegotiateDataChannels: true });
pc.addTransceiver('audio');
pc.createDataChannel('somechannel');
const offer = await pc.createOffer();

سيؤدي ذلك إلى إنشاء عرض يتضمّن تفاوضًا على سطر m خاص بالتطبيق، يليه سطر m خاص بالصوت في بروتوكول وصف الجلسة (SDP).

تتبُّع الخطأ رقم 433898678 | إدخال ChromeStatus.com | المواصفات

مراحل تجربة وتقييم جديدة

برامج نصية لوحدات CSS تعريفية

إنّ النصوص البرمجية لوحدات CSS التعريفية هي إضافة إلى النصوص البرمجية الحالية لوحدات CSS المستندة إلى النصوص البرمجية. تتيح للمطوّرين مشاركة أوراق أنماط تعريفية مع عناصر جذر الظل، بما في ذلك عناصر جذر الظل التعريفية. يمكن للمطوّرين تحديد وحدات الأنماط المضمّنة باستخدام <style type="module" specifier="foo"> وتطبيق وحدة تعريفية على DOM الظاهري التعريفي من خلال الإشارة إلى محدّد أو عنوان URL، مثل <template shadowrootmode="open" shadowrootadoptedstylesheets="foo">.

التجربة الأصلية | تتبُّع الخطأ رقم 448174611 | إدخال ChromeStatus.com | المواصفات

Container Timing API

تتيح واجهة برمجة التطبيقات Container Timing API رصد الوقت الذي يتم فيه عرض الأقسام المشروحة من نموذج المستند (DOM) على الشاشة والوقت الذي يتم فيه الانتهاء من عرضها الأوّلي. سيتمكّن المطوّر من وضع علامة على الأقسام الفرعية من DOM باستخدام السمة containertiming (على غرار elementtiming في Element Timing API) وتلقّي إدخالات الأداء عند عرض هذا القسم للمرة الأولى. ستتيح واجهة برمجة التطبيقات هذه للمطوّرين قياس توقيت المكوّنات المختلفة في صفحاتهم.

التجربة الأصلية | تتبُّع الخطأ رقم 382422286 | إدخال ChromeStatus.com | المواصفات

عنصر HTML لتثبيت تطبيق الويب

يسمح لأحد المواقع الإلكترونية بأن يطلب من المستخدمين بشكل إلزامي تثبيت تطبيق ويب. يقبل العنصر اختياريًا سمتَين تسمحان بتثبيت المحتوى من مصدر مختلف.

التجربة الأصلية | تتبُّع الخطأ رقم 454827186 | إدخال ChromeStatus.com | المواصفات

مدة نمط "الصور المتحركة التي يستغرق عرضها وقتًا طويلاً"

أضِف معلومات styleDuration وforcedStyleDuration إلى Long Animation Frame API، ما يتيح للمطوّرين التمييز بين أوقات الأنماط والتنسيقات.

التجربة الأصلية | تتبُّع الخطأ رقم 476826067 | إدخال ChromeStatus.com | المواصفات

‫HTML في لوحة العرض

تتيح ميزة "HTML في لوحة العرض" تخصيص عرض HTML باستخدام لوحة العرض مع ثلاثة عناصر أساسية جديدة: سمة لتفعيل عناصر لوحة العرض (layoutsubtree)، وطُرق لرسم العناصر الفرعية (ثنائية الأبعاد: drawElementImage، وWebgl: ‏ texElementImage2D، وWebgpu:‏ copyElementImageToTexture)، وحدث رسم يتم تنشيطه للتعامل مع التعديلات.

التجربة الأصلية | تتبُّع الخطأ رقم 500967896 | إدخال ChromeStatus.com | المواصفات

قوائم الاتصالات المسموح بها

قوائم السماح بالاتصال هي ميزة مصمّمة لتوفير تحكّم صريح في نقاط النهاية الخارجية من خلال حظر الاتصالات التي يتم بدؤها باستخدام Fetch API أو واجهات برمجة التطبيقات الأخرى لمنصة الويب من مستند أو عامل.

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

التجربة الأصلية | تتبُّع الخطأ رقم 447954811 | إدخال ChromeStatus.com | المواصفات

مَعلَمات اختيار العيّنات في Prompt API

تضيف هذه الطريقة مَعلَمات اختيار العيّنات إلى Prompt API. تتحكّم هذه المَعلمات في طريقة أخذ عيّنات من الرموز المميزة من النموذج، ما يتيح للمطوّرين التحكّم في مستوى "الإبداع" أو "العشوائية" في الردود. بالإضافة إلى ذلك، تضيف سمات إلى مثيل LanguageModel لقراءة القيم المحدّدة، بالإضافة إلى دالة ثابتة LanguageModel للحصول على القيم التلقائية والحد الأقصى لهذه المَعلمات.

تضيف عملية التنفيذ الأولى المَعلمتَين temperature وtopK.

التجربة الأصلية | تتبُّع الخطأ رقم ‎496663356 | إدخال ChromeStatus.com | المواصفات

تحليل تعليمات المعالجة في HTML

تعليمات المعالجة (البنية: <?target data>) هي بنية DOM حالية، معروضة في XML، وتسمح بكائنات العُقد التي ليست عناصر ولكن يمكن أن يكون لها بعض المعنى الدلالي لمعالجة المستند.

على سبيل المثال، يمكن استخدامها للإشارة إلى نطاقات للبث أو التمييز بدون الحاجة إلى عناصر DOM جديدة وتغيير بنية DOM من ناحية CSS، أو كإرشادات لمحلّل HTML حول كيفية التخزين المؤقت والبث.

تتبُّع الخطأ رقم 481087638 | إدخال ChromeStatus.com

OpaqueRange

يمثّل OpaqueRange نطاقًا مباشرًا من النص ضمن قيمة عنصر تحكّم في النموذج، مثل <textarea> أو <input> مستند إلى نص، ما يتيح للمطوّرين العمل مع نص القيمة باستخدام واجهات برمجة تطبيقات شبيهة بالنطاق.

تتيح هذه الواجهة عمليات مثل getBoundingClientRect() وgetClientRects()، بالإضافة إلى الدمج مع CSS Custom Highlight API لعناصر واجهة المستخدم، مثل الاقتراحات المضمّنة والتمييز والوسائل المنبثقة الثابتة. ويحافظ على التغليف من خلال عرض إزاحات القيم فقط أثناء عرض null لكل من startContainer وendContainer، وبالتالي لا يتم عرض نقاط نهاية DOM والبنية الداخلية.

التجربة الأصلية | تتبُّع الخطأ ‎ #421421332 | إدخال ChromeStatus.com