لغو و حذف در Chrome 58

جو مدلی
Joe Medley

تقریباً در هر نسخه کروم، شاهد تعداد قابل توجهی از به‌روزرسانی‌ها و بهبودها در محصول، عملکرد آن و همچنین قابلیت‌های پلتفرم وب هستیم. این مقاله موارد منسوخ و حذف در Chrome 58 را شرح می‌دهد که از 16 مارس در نسخه بتا است. این فهرست در هر زمان ممکن است تغییر کند.

ماوس در اندروید فعال کردن TouchEvents را متوقف می‌کند

تا کروم 57، رویدادهای سطح پایین ماوس اندروید در کروم عمدتاً از مسیر رویدادی پیروی می کردند که برای تعاملات لمسی طراحی شده بود. به عنوان مثال، یک حرکت کشیدن ماوس هنگام فشار دادن دکمه ماوس، MotionEvents ایجاد می کند که از طریق View.onTouchEvent ارائه می شود.

اما از آنجایی که رویدادهای لمسی نمی‌توانند از شناور پشتیبانی کنند، حرکت‌های ماوس در حالت شناور مسیر جداگانه‌ای را دنبال می‌کنند. این طراحی دارای عوارض جانبی زیادی بود، از جمله تعاملات ماوس که TouchEvents را فعال می‌کند، همه دکمه‌های ماوس به صورت دکمه‌های سمت چپ ماوس ظاهر می‌شوند، و MouseEvents توسط TouchEvents سرکوب می‌شوند.

با شروع Chrome 58، ماوس در Android M یا جدیدتر:

  • دیگر TouchEvents فعال نکنید.
  • یک توالی ثابت از MouseEvents را با دکمه‌های مناسب و ویژگی‌های دیگر شلیک کنید.

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

حذف تطبیق غیر حساس به حروف بزرگ برای ویژگی usemap

ویژگی usemap قبلاً به عنوان بدون مورد تعریف می شد. متأسفانه اجرای آن به اندازه کافی پیچیده بود که هیچ مرورگری آن را به درستی پیاده سازی نکرد. تحقیقات نشان می‌دهد که چنین الگوریتم پیچیده‌ای غیرضروری است، و حتی تطبیق غیر حساس به حروف بزرگ و کوچک ASCII غیرضروری است.

در نتیجه، مشخصات به‌روزرسانی شد تا تطابق حساس به حروف کوچک و بزرگ اعمال شود. رفتار قدیمی در Chrome 57 منسوخ شده بود و اکنون حذف شده است.

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

پیمایش‌های فریم بالای محتوا را به آدرس‌های اینترنتی داده حذف کنید

به دلیل ناآشنایی آنها با کاربران غیر فنی مرورگر، ما به طور فزاینده ای شاهد استفاده از این data: طرحی که در جعل و حملات فیشینگ استفاده می شود. برای جلوگیری از این امر، صفحات وب را از بارگیری data: نشانی‌های وب در کادر بالا. این مورد برای <a> برچسب ها، window.open ، window.location و مکانیسم های مشابه. طرح data: همچنان برای منابع بارگیری شده در زیر توسط یک صفحه کار خواهد کرد.

این ویژگی در کروم 60 حذف خواهد شد.

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

نام های منسوخ شده برای ویژگی های مسیر حرکت را حذف کنید

ویژگی های CSS مسیر حرکت به نویسندگان این امکان را می دهد که هر شیء گرافیکی را در طول یک مسیر مشخص شده توسط نویسنده متحرک کنند. مطابق با مشخصات، چندین ویژگی در Chrome 45 پیاده‌سازی شد. نام این ویژگی‌ها در اواسط سال 2016 در مشخصات تغییر کرد. Chrome نام‌های جدید را در Chrome 55 و Chrome 56 پیاده‌سازی کرد. اخطارهای منسوخ شدن کنسول نیز اجرا شد.

در Chrome 58، نام‌های دارایی قدیمی حذف می‌شوند. خواص تحت تاثیر و نام جدید آنها در زیر نشان داده شده است.

اموال حذف شده نام فعلی
مسیر حرکت آفست مسیر
حرکت افست افست-فاصله
حرکت چرخشی افست-چرخش
حرکت - جنبش انحراف

قصد حذف

EME را از زمینه های غیر ایمن حذف کنید

برخی از کاربردهای برنامه‌های افزودنی رسانه رمزگذاری‌شده (EME) پیاده‌سازی‌های مدیریت حقوق دیجیتال را که منبع باز نیستند، شامل دسترسی به شناسه‌های منحصربه‌فرد دائمی، و/یا بدون جعبه یا با دسترسی ممتاز اجرا می‌کنند، نشان می‌دهد. خطرات امنیتی برای سایت‌هایی که از طریق HTTP غیر ایمن در معرض دید قرار می‌گیرند افزایش می‌یابد زیرا می‌توانند توسط هر کسی در کانال مورد حمله قرار گیرند. علاوه بر این، هنگامی که رضایت کاربر مورد نیاز است، پذیرش برای یک سایت HTTP غیر ایمن می تواند توسط چنین مهاجمی مورد سوء استفاده قرار گیرد.

پشتیبانی از زمینه‌های غیرایمن از مشخصات نسخه 1 EME حذف شد و در توصیه پیشنهادی پشتیبانی نمی‌شود و در نهایی بعدی پیش‌بینی نمی‌شود. در توصیه پیشنهادی آتی یا توصیه نهایی بعدی نخواهد بود. API از Chrome 44 (مه 2015) یک پیام منسوخ شدن در منابع غیر ایمن نشان می دهد. در Chrome 58، اکنون حذف شده است. این تغییر بخشی از تلاش گسترده‌تر ما برای حذف ویژگی‌های قدرتمند از مبداهای ناامن است.

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

تماس گیرنده قدیمی برای HTMLEmbedElement و HTMLObjectElement را حذف کنید

اینکه یک رابط دارای یک فراخوان قدیمی است به این معنی است که یک نمونه را می توان به عنوان یک تابع فراخوانی کرد. در حال حاضر، HTMLEmbedElement و HTMLObjectElement از این قابلیت پشتیبانی می کنند. در Chrome 57 این قابلیت منسوخ شده بود. از Chrome 58 شروع، فراخوانی یک استثنا ایجاد می کند.

این تغییر کروم را با تغییرات اخیر مشخصات مطابقت می دهد. رفتار قدیمی در Edge یا Safari پشتیبانی نمی‌شود و از Firefox حذف می‌شود.

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

رمزهای پیش استاندارد ChaCha20-Poly1305 را حذف کنید

در سال 2013، Chrome 31 مجموعه‌های رمزنگاری TLS جدید را بر اساس الگوریتم‌های ChaCha20 و Poly1305 پروفسور دن برنشتاین به کار گرفت. اینها بعداً با تغییرات کوچک در IETF به عنوان RFC 7539 و RFC 7905 استاندارد شدند. ما نسخه استاندارد شده را در اوایل سال 2016 با Chrome 49 ارسال کردیم. اکنون در حال حذف انواع پیش استاندارد هستیم.

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

پشتیبانی از تطبیق commonName در گواهی ها را حذف کنید

RFC 2818 دو روش را برای تطبیق نام دامنه با گواهی توصیف می‌کند: استفاده از نام‌های موجود در پسوند subjectAlternativeName ، یا در صورت عدم وجود پسوند SAN، بازگشت به commonName . بازگشت به commonName در RFC 2818 (منتشر شده در سال 2000) منسوخ شد، اما پشتیبانی در تعدادی از کلاینت‌های TLS، اغلب نادرست، باقی می‌ماند.

استفاده از فیلدهای subjectAlternativeName این موضوع را مبهم باقی می‌گذارد که آیا یک گواهی یک اتصال به یک آدرس IP یا یک نام دامنه را بیان می‌کند و کاملاً از نظر تعامل آن با محدودیت‌های نام تعریف می‌شود. با این حال، commonName مبهم است، و به همین دلیل، پشتیبانی از آن منبعی از اشکالات امنیتی در کروم، کتابخانه‌هایی که از آن استفاده می‌کند، و در کل اکوسیستم TLS بوده است.

خطر سازگاری برای حذف commonName کم است. RFC 2818 این مورد را برای نزدیک به دو دهه منسوخ کرده است و الزامات پایه (که همه مقامات گواهی مورد اعتماد عمومی باید از آنها پیروی کنند) از سال 2012 مستلزم وجود subjectAltName بوده است. فایرفاکس از قبل از فایرفاکس 48 به عنوان subjectAltName برای هر گواهینامه مورد اعتماد عمومی تازه صادر شده نیاز دارد. .

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

regions عناصر رابط، addRegion() و removeRegion() از مشخصات WebVTT حذف شده اند و در Chrome 58 حذف شده اند تا با آخرین مشخصات مطابقت داشته باشند. ما انتظار تاثیر کمی از این حذف را داریم زیرا این ویژگی هرگز به طور پیش فرض فعال نشده است (به این معنی که پشت پرچم قرار دارد). کسانی که به یک جایگزین نیاز دارند می توانند از ویژگی VTTCue.region که در Chrome 58 اضافه شده است استفاده کنند.

ردیاب Chromestatus | اشکال کروم

WebAudio: رابط AudioSourceNode را حذف کنید

رابط AudioSourceNode بخشی از مشخصات Web Audio نیست، قابل ساخت نیست و هیچ ویژگی ندارد، بنابراین اساساً هیچ عملکرد قابل دسترسی توسعه‌دهنده ندارد. بنابراین در حال حذف است.

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

ویژگی جهانی webkitdropzone را حذف کنید

ویژگی جهانی dropzone با مشخصات کشیدن و رها کردن HTML5 به عنوان یک روش اعلامی برای مشخص کردن تمایل عنصر HTML به هدف عملیات کشیدن و رها کردن، انواع محتوایی که می‌توان روی عنصر رها کرد و کشیدن آن معرفی شد. عملیات -و رها کردن (کپی/انتقال/لینک).

این ویژگی نتوانست در بین فروشندگان مرورگر محبوبیت پیدا کند. Blink و WebKit فقط یک فرم پیشوندی از ویژگی، webkitdropzone پیاده سازی می کنند. از آنجایی که ویژگی dropzone در اوایل مارس 2017 از مشخصات حذف شد، نسخه پیشوندی از کروم حذف می‌شود.

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

استفاده ناامن از اعلان ها را منسوخ کنید

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

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

استفاده از اعلان‌های iframe ناامن را منسوخ کنید

درخواست‌های مجوز از iframes می‌تواند باعث سردرگمی کاربران شود، زیرا تشخیص بین مبدا صفحه حاوی و مبدا iframe که درخواست را ارائه می‌کند دشوار است. زمانی که دامنه درخواست ها نامشخص است، قضاوت در مورد اعطای یا رد مجوز برای کاربران دشوار است.

غیرمجاز کردن اعلان‌ها در iframe نیز الزامات مجوز اعلان را با اعلان‌های فشاری هماهنگ می‌کند و اصطکاک را برای توسعه‌دهندگان کاهش می‌دهد.

توسعه دهندگانی که به این قابلیت نیاز دارند می توانند پنجره جدیدی را برای درخواست مجوز اعلان باز کنند.

حذف در Chrome 62 است.

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

حذف indexedDB.webkitGetDatabaseNames()

ما این ویژگی را زمانی اضافه کردیم که Indexed DB در کروم نسبتاً جدید بود و پیشوندها بسیار رایج بود. API به طور ناهمزمان فهرستی از نام های پایگاه داده موجود را در یک مبدا برمی گرداند که به اندازه کافی معقول به نظر می رسید.

متأسفانه، طراحی ناقص است، زیرا نتایج ممکن است به محض بازگرداندن آنها منسوخ شوند، بنابراین واقعاً می توان از آن فقط برای ورود به سیستم استفاده کرد، نه منطق برنامه جدی. موضوع github به بحث های قبلی در مورد جایگزین ها، که نیاز به رویکرد متفاوتی دارد، ردیابی می کند/پیوند می دهد. در حالی که توسعه دهندگان علاقه زیادی به آن دارند، با توجه به عدم پیشرفت مرورگرهای متقابل، این مشکل توسط نویسندگان کتابخانه حل شده است.

توسعه دهندگانی که به این قابلیت نیاز دارند باید راه حل خود را توسعه دهند. کتابخانه هایی مانند Dexie.js برای مثال از یک جدول جهانی استفاده می کنند که خود پایگاه داده دیگری برای ردیابی نام پایگاه های داده است.

این ویژگی در کروم 60 حذف شده است.

قصد منسوخ کردن | ردیاب Chromestatus | اشکال کروم