لغو و حذف در Chrome 80

جو مدلی
Joe Medley

غیر مجاز XMLHTTPRequest() همزمان در رد کردن صفحه

کروم اکنون تماس‌های همزمان با XMLHTTPRequest() را در حین رد کردن صفحه، زمانی که صفحه از کاربر دور می‌شود یا توسط کاربر بسته می‌شود، ممنوع می‌کند. این امر در مورد beforeunload ، unload ، pagehide و visibilitychange اعمال می شود.

برای اطمینان از ارسال داده‌ها به سرور هنگام بارگیری صفحه، sendBeacon() یا Fetch keep-alive را توصیه می‌کنیم. در حال حاضر، کاربران سازمانی می‌توانند از پرچم خط‌مشی AllowSyncXHRInPageDismissal استفاده کنند و توسعه‌دهندگان می‌توانند از پرچم آزمایشی مبدا allow-sync-xhr-in-page-dismissal استفاده کنند تا درخواست‌های همگام XHR را در حین بارگیری صفحه مجاز کنند. این یک اقدام موقت «انصراف» است و ما انتظار داریم این پرچم را در Chrome 88 حذف کنیم.

برای جزئیات در مورد این و گزینه‌های جایگزین، به غیر مجاز کردن XMLHTTPRequest() همزمان در حین رد کردن صفحه مراجعه کنید.

قصد حذف | وضعیت پلتفرم کروم | اشکال کروم

پشتیبانی از FTP منسوخ شده است

اجرای فعلی FTP در Chrome از اتصالات رمزگذاری شده (FTPS) و پروکسی پشتیبانی نمی کند. استفاده از FTP در مرورگر به اندازه کافی کم است که دیگر امکان سرمایه گذاری برای بهبود مشتری FTP موجود وجود ندارد. علاوه بر این، کلاینت‌های توانمندتر FTP در همه پلتفرم‌های آسیب‌دیده در دسترس هستند.

Chrome 72 پشتیبانی از واکشی منابع فرعی سند از طریق FTP و ارائه منابع FTP سطح بالا را حذف کرد. در حال حاضر پیمایش به URL های FTP بسته به نوع منبع، منجر به نمایش فهرست فهرست یا دانلود می شود. یک اشکال در Google Chrome 74 و نسخه‌های بعدی منجر به قطع پشتیبانی برای دسترسی به URLهای FTP از طریق پراکسی‌های HTTP شد. پشتیبانی پروکسی برای FTP به طور کامل در Google Chrome 76 حذف شد.

قابلیت‌های باقی‌مانده پیاده‌سازی FTP Google Chrome به نمایش فهرست فهرست یا دانلود منبع از طریق اتصالات رمزگذاری نشده محدود می‌شود.

جدول زمانی منسوخ شدن به طور آزمایشی به شرح زیر تنظیم می شود:

Chrome 80 (در فوریه 2020 پایدار است)

FTP به طور پیش‌فرض برای مشتریان غیر سازمانی غیرفعال است، اما ممکن است با استفاده از --enable-ftp یا --enable-features=FtpProtocol پرچم‌های خط فرمان روشن شود. از طرف دیگر، می توان آن را با استفاده از گزینه #enable-ftp در chrome://flags روشن کرد.

Chrome 81 (در مارس 2020 پایدار است)

FTP به طور پیش‌فرض برای همه نصب‌های Chrome غیرفعال است، اما ممکن است با استفاده از --enable-ftp یا --enable-features=FtpProtocol پرچم‌های خط فرمان روشن شود.

Chrome 82 (در آوریل 2020 پایدار است)

پشتیبانی از FTP به طور کامل حذف خواهد شد.

قصد حذف | وضعیت پلتفرم کروم | اشکال کروم

اجازه دادن به پنجره های بازشو در حین بارگیری صفحه را مجاز نکنید

صفحات ممکن است دیگر از window.open() برای باز کردن صفحه جدید در حین بارگیری استفاده نکنند. مسدودکننده پنجره بازشو Chrome قبلاً این کار را ممنوع کرده بود، اما اکنون ممنوع است که مسدودکننده پنجره بازشو فعال باشد یا نباشد.

شرکت‌ها می‌توانند از پرچم سیاست AllowPopupsDuringPageUnload برای اجازه دادن به پنجره‌های بازشو در حین بارگیری استفاده کنند. کروم انتظار دارد این پرچم را در کروم 82 حذف کند.

قصد حذف | ردیاب Chromestatus | اشکال کروم

سریال‌سازی و انتقال تصویر بیت‌مپ غیرمبدیل حذف شد

اکنون هنگامی که یک اسکریپت سعی می کند یک ImageBitmap غیر پاک را به صورت سریالی یا انتقال دهد، خطاها ایجاد می شود. ImageBitmap بدون منبع پاک، حاوی داده هایی از تصاویر متقاطع است که توسط منطق CORS تأیید نشده است.

قصد حذف | وضعیت پلتفرم کروم | اشکال کروم

مدیریت پروتکل اکنون به یک زمینه امن نیاز دارد

متدهای registerProtocolHandler() و unregisterProtocolHandler() اکنون به یک زمینه امن نیاز دارند. این روش‌ها می‌توانند حالت‌های کلاینت را مجدداً پیکربندی کنند تا امکان انتقال داده‌های حساس بالقوه را از طریق شبکه فراهم کنند.

متد registerProtocolHandler() مکانیزمی را به یک صفحه وب می‌دهد تا پس از رضایت کاربر، خود را برای مدیریت پروتکل ثبت کند. به عنوان مثال، یک برنامه ایمیل مبتنی بر وب می تواند برای مدیریت طرح mailto: ثبت نام کند. متد unregisterProtocolHandler() مربوطه به سایت اجازه می دهد تا ثبت پروتکل خود را رها کند.

قصد حذف | وضعیت پلتفرم کروم | اشکال کروم

Web Components v0 حذف شد

Web Components v0 اکنون از کروم حذف شده است. API های Web Components v1 یک استاندارد پلتفرم وب هستند که در کروم، سافاری، فایرفاکس و (به زودی) Edge عرضه شده است. برای راهنمایی در مورد ارتقا، به‌روزرسانی مؤلفه‌های وب: زمان بیشتر برای ارتقا به APIهای v1 را بخوانید. ویژگی های زیر اکنون حذف شده اند. این منسوخ شدن موارد ذکر شده در زیر را پوشش می دهد.

عناصر سفارشی

قصد حذف | وضعیت پلتفرم کروم | اشکال کروم

واردات HTML

قصد حذف | وضعیت پلتفرم کروم | اشکال کروم

سایه DOM

قصد حذف | وضعیت پلتفرم کروم | اشکال کروم

حذف -webkit-appearance:button برای عناصر دلخواه

-webkit-appearance:button تغییر می دهد تا فقط با دکمه های <button> و <input> کار کند. اگر button برای یک عنصر پشتیبانی نشده مشخص شده باشد، عنصر ظاهر پیش فرض را دارد. سایر کلمات کلیدی -webkit-appearance از قبل چنین محدودیتی دارند.

قصد حذف | وضعیت پلتفرم کروم | اشکال کروم

سیاست استهلاک

برای سالم نگه داشتن پلتفرم، گاهی اوقات API هایی را که دوره خود را اجرا کرده اند از پلتفرم وب حذف می کنیم. دلایل زیادی برای حذف یک API وجود دارد، مانند:

  • API های جدیدتر جایگزین آنها می شوند.
  • آنها به روز می شوند تا تغییرات در مشخصات را منعکس کنند تا با سایر مرورگرها هماهنگی و سازگاری داشته باشند.
  • آنها آزمایش های اولیه ای هستند که هرگز در مرورگرهای دیگر به نتیجه نرسیدند و بنابراین می توانند بار پشتیبانی را برای توسعه دهندگان وب افزایش دهند.

برخی از این تغییرات بر تعداد بسیار کمی از سایت ها تأثیر خواهد گذاشت. برای کاهش مشکلات پیش از موعد، ما سعی می‌کنیم به توسعه‌دهندگان اطلاع‌رسانی پیشرفته بدهیم تا بتوانند تغییرات مورد نیاز را برای فعال نگه داشتن سایت‌های خود انجام دهند.

Chrome در حال حاضر فرآیندی برای لغو و حذف APIها دارد، اساساً:

  • در لیست پستی blink-dev اعلام کنید.
  • هنگام شناسایی استفاده در صفحه، هشدارها را تنظیم کنید و مقیاس‌های زمانی را در کنسول Chrome DevTools ارائه دهید.
  • صبر کنید، نظارت کنید، و سپس با کاهش مصرف، ویژگی را حذف کنید.

می‌توانید با استفاده از فیلتر منسوخ و ویژگی‌های حذف‌شده، فهرستی از همه ویژگی‌های منسوخ شده را در chromestatus.com پیدا کنید. همچنین سعی خواهیم کرد تا برخی از تغییرات، استدلال ها و مسیرهای مهاجرت را در این پست ها خلاصه کنیم.

،

جو مدلی
Joe Medley

غیر مجاز XMLHTTPRequest() همزمان در رد کردن صفحه

کروم اکنون تماس‌های همزمان با XMLHTTPRequest() را در حین رد کردن صفحه، زمانی که صفحه از کاربر دور می‌شود یا توسط کاربر بسته می‌شود، ممنوع می‌کند. این امر در مورد beforeunload ، unload ، pagehide و visibilitychange اعمال می شود.

برای اطمینان از ارسال داده‌ها به سرور هنگام بارگیری صفحه، sendBeacon() یا Fetch keep-alive را توصیه می‌کنیم. در حال حاضر، کاربران سازمانی می‌توانند از پرچم خط‌مشی AllowSyncXHRInPageDismissal استفاده کنند و توسعه‌دهندگان می‌توانند از پرچم آزمایشی مبدا allow-sync-xhr-in-page-dismissal استفاده کنند تا درخواست‌های همگام XHR را در حین بارگیری صفحه مجاز کنند. این یک اقدام موقت «انصراف» است و ما انتظار داریم این پرچم را در Chrome 88 حذف کنیم.

برای جزئیات در مورد این و گزینه‌های جایگزین، به غیر مجاز کردن XMLHTTPRequest() همزمان در حین رد کردن صفحه مراجعه کنید.

قصد حذف | وضعیت پلتفرم کروم | اشکال کروم

پشتیبانی FTP منسوخ شده است

اجرای فعلی FTP در Chrome از اتصالات رمزگذاری شده (FTPS) و پروکسی پشتیبانی نمی کند. استفاده از FTP در مرورگر به اندازه کافی کم است که دیگر امکان سرمایه گذاری برای بهبود مشتری FTP موجود وجود ندارد. علاوه بر این، کلاینت‌های توانمندتر FTP در همه پلتفرم‌های آسیب‌دیده در دسترس هستند.

Chrome 72 پشتیبانی از واکشی منابع فرعی سند از طریق FTP و ارائه منابع FTP سطح بالا را حذف کرد. در حال حاضر پیمایش به URL های FTP بسته به نوع منبع، منجر به نمایش فهرست فهرست یا دانلود می شود. یک اشکال در Google Chrome 74 و نسخه‌های بعدی منجر به قطع پشتیبانی برای دسترسی به URLهای FTP از طریق پراکسی‌های HTTP شد. پشتیبانی پروکسی برای FTP به طور کامل در Google Chrome 76 حذف شد.

قابلیت‌های باقی‌مانده پیاده‌سازی FTP Google Chrome به نمایش فهرست فهرست یا دانلود منبع از طریق اتصالات رمزگذاری نشده محدود می‌شود.

جدول زمانی منسوخ شدن به طور آزمایشی به شرح زیر تنظیم می شود:

Chrome 80 (در فوریه 2020 پایدار است)

FTP به طور پیش‌فرض برای مشتریان غیر سازمانی غیرفعال است، اما ممکن است با استفاده از --enable-ftp یا --enable-features=FtpProtocol پرچم‌های خط فرمان روشن شود. از طرف دیگر، می توان آن را با استفاده از گزینه #enable-ftp در chrome://flags روشن کرد.

Chrome 81 (در مارس 2020 پایدار است)

FTP به طور پیش‌فرض برای همه نصب‌های Chrome غیرفعال است، اما ممکن است با استفاده از --enable-ftp یا --enable-features=FtpProtocol پرچم‌های خط فرمان روشن شود.

Chrome 82 (در آوریل 2020 پایدار است)

پشتیبانی از FTP به طور کامل حذف خواهد شد.

قصد حذف | وضعیت پلتفرم کروم | اشکال کروم

اجازه دادن به پنجره های بازشو در حین بارگیری صفحه را مجاز نکنید

صفحات ممکن است دیگر از window.open() برای باز کردن صفحه جدید در حین بارگیری استفاده نکنند. مسدودکننده پنجره بازشو Chrome قبلاً این کار را ممنوع کرده بود، اما اکنون ممنوع است که مسدودکننده پنجره بازشو فعال باشد یا نباشد.

شرکت‌ها می‌توانند از پرچم سیاست AllowPopupsDuringPageUnload برای اجازه دادن به پنجره‌های بازشو در حین بارگیری استفاده کنند. کروم انتظار دارد این پرچم را در کروم 82 حذف کند.

قصد حذف | ردیاب Chromestatus | اشکال کروم

سریال‌سازی و انتقال تصویر بیت‌مپ غیرمبدیل حذف شد

اکنون هنگامی که یک اسکریپت سعی می کند یک ImageBitmap غیر پاک را به صورت سریالی یا انتقال دهد، خطاها ایجاد می شود. ImageBitmap بدون منبع پاک، حاوی داده هایی از تصاویر متقاطع است که توسط منطق CORS تأیید نشده است.

قصد حذف | وضعیت پلتفرم کروم | اشکال کروم

مدیریت پروتکل اکنون به یک زمینه امن نیاز دارد

متدهای registerProtocolHandler() و unregisterProtocolHandler() اکنون به یک زمینه امن نیاز دارند. این روش‌ها می‌توانند حالت‌های کلاینت را مجدداً پیکربندی کنند تا امکان انتقال داده‌های حساس بالقوه را از طریق شبکه فراهم کنند.

متد registerProtocolHandler() مکانیزمی را به یک صفحه وب می‌دهد تا پس از رضایت کاربر، خود را برای مدیریت پروتکل ثبت کند. به عنوان مثال، یک برنامه ایمیل مبتنی بر وب می تواند برای مدیریت طرح mailto: ثبت نام کند. متد unregisterProtocolHandler() مربوطه به سایت اجازه می دهد تا ثبت پروتکل خود را رها کند.

قصد حذف | وضعیت پلتفرم کروم | اشکال کروم

Web Components v0 حذف شد

Web Components v0 اکنون از کروم حذف شده است. API های Web Components v1 یک استاندارد پلتفرم وب هستند که در کروم، سافاری، فایرفاکس و (به زودی) Edge عرضه شده است. برای راهنمایی در مورد ارتقا، به‌روزرسانی مؤلفه‌های وب: زمان بیشتر برای ارتقا به APIهای v1 را بخوانید. ویژگی های زیر اکنون حذف شده اند. این منسوخ شدن موارد ذکر شده در زیر را پوشش می دهد.

عناصر سفارشی

قصد حذف | وضعیت پلتفرم کروم | اشکال کروم

واردات HTML

قصد حذف | وضعیت پلتفرم کروم | اشکال کروم

سایه DOM

قصد حذف | وضعیت پلتفرم کروم | اشکال کروم

حذف -webkit-appearance:button برای عناصر دلخواه

-webkit-appearance:button تغییر می دهد تا فقط با دکمه های <button> و <input> کار کند. اگر button برای یک عنصر پشتیبانی نشده مشخص شده باشد، عنصر ظاهر پیش فرض را دارد. سایر کلمات کلیدی -webkit-appearance از قبل چنین محدودیتی دارند.

قصد حذف | وضعیت پلتفرم کروم | اشکال کروم

سیاست استهلاک

برای سالم نگه داشتن پلتفرم، گاهی اوقات API هایی را که دوره خود را اجرا کرده اند از پلتفرم وب حذف می کنیم. دلایل زیادی برای حذف یک API وجود دارد، مانند:

  • API های جدیدتر جایگزین آنها می شوند.
  • آنها به روز می شوند تا تغییرات در مشخصات را منعکس کنند تا با سایر مرورگرها هماهنگی و سازگاری داشته باشند.
  • آنها آزمایش های اولیه ای هستند که هرگز در مرورگرهای دیگر به نتیجه نرسیدند و بنابراین می توانند بار پشتیبانی را برای توسعه دهندگان وب افزایش دهند.

برخی از این تغییرات بر تعداد بسیار کمی از سایت ها تأثیر خواهد گذاشت. برای کاهش مشکلات پیش از موعد، ما سعی می‌کنیم به توسعه‌دهندگان اطلاع‌رسانی پیشرفته بدهیم تا بتوانند تغییرات مورد نیاز را برای فعال نگه داشتن سایت‌های خود انجام دهند.

Chrome در حال حاضر فرآیندی برای لغو و حذف APIها دارد، اساساً:

  • در لیست پستی blink-dev اعلام کنید.
  • هنگام شناسایی استفاده در صفحه، هشدارها را تنظیم کنید و مقیاس‌های زمانی را در کنسول Chrome DevTools ارائه دهید.
  • صبر کنید، نظارت کنید، و سپس با کاهش مصرف، ویژگی را حذف کنید.

می‌توانید با استفاده از فیلتر منسوخ و ویژگی‌های حذف‌شده، فهرستی از همه ویژگی‌های منسوخ شده را در chromestatus.com پیدا کنید. همچنین سعی خواهیم کرد تا برخی از تغییرات، استدلال ها و مسیرهای مهاجرت را در این پست ها خلاصه کنیم.