نسخه 74 کروم

گوگل ارایه شده انتشار مرورگر وب کروم 74... همزمان در دسترس انتشار پایدار یک پروژه رایگان کروم، که به عنوان پایه کروم عمل می کند. مرورگر کروم متفاوت استفاده از لوگوهای گوگل، امکان دانلود ماژول فلش در صورت درخواست، وجود سیستم ارسال اعلان در صورت خرابی، ماژول هایی برای پخش محتوای ویدئویی محافظت شده، سیستمی برای نصب خودکار آپدیت ها و انتقال در حین جستجو پارامترهای RLZ. انتشار بعدی کروم 75 برای 4 ژوئن برنامه ریزی شده است.

اصلی تغییرات в کروم 74:

  • هنگامی که رویداد onUnload رخ می دهد، که هنگام بسته شدن صفحه فراخوانی می شود، اکنون ممنوع نمایش پنجره های پاپ آپ (تماس window.open() مسدود شده است)، که از کاربران در برابر اجبار به باز کردن صفحات تبلیغاتی پس از بستن سایت های مشکوک محافظت می کند.
  • در موتور جاوا اسکریپت اجرا شد یک رژیم جدید ظاهر شده است بدون JIT (پرچم «—jitless»)، که اجرای جاوا اسکریپت را بدون استفاده از JIT (فقط مفسر استفاده می‌شود) و بدون تخصیص حافظه اجرایی در طول اجرای کد ممکن می‌سازد. غیرفعال کردن JIT می تواند برای بهبود امنیت هنگام کار با برنامه های کاربردی وب بالقوه خطرناک و همچنین برای اطمینان از ساختن روی پلتفرم هایی که استفاده از JIT را ممنوع می کند مفید باشد (به عنوان مثال، iOS، برخی از تلویزیون های هوشمند و کنسول های بازی. وقتی JIT غیرفعال است، اجرای جاوا اسکریپت عملکرد در تست Speedometer 40 2.0% و در تست Web Tooling Benchmark 80% کاهش می‌یابد، اما هنگام شبیه‌سازی کار با YouTube، تنها 6% کاهش عملکرد داشت، در حالی که مصرف حافظه کمی کاهش یافت، تنها 1.7%؛
  • V8 همچنین بخش بزرگی از بهینه سازی های جدید را ارائه می دهد. به عنوان مثال، اجرای فراخوانی های تابعی که در آن تعداد پارامترهای واقعی ارسال شده با تعداد آرگومان های مشخص شده در هنگام تعریف تابع مطابقت ندارد، 60% تسریع شده است. دسترسی به ویژگی های DOM با استفاده از تابع get تسریع شده است که تأثیر مثبتی بر عملکرد فریم ورک Angular دارد. تجزیه جاوا اسکریپت تسریع شده است: بهینه سازی رمزگشای UTF-8 امکان افزایش عملکرد تجزیه کننده را در حالت استریم (تجزیه در حین بارگذاری) تا 8٪ و حذف عملیات تکراری غیر ضروری باعث افزایش 10.5٪ دیگر شد.
  • کار برای کاهش مصرف حافظه موتور جاوا اسکریپت انجام شده است.
    کد اضافه شده برای پاک کردن کش بایت کد، که تقریباً 15٪ از اندازه کل پشته را اشغال می کند. یک مرحله به جمع‌آورنده زباله اضافه شده است تا بایت کدهایی که به ندرت کامپایل می‌شوند از حافظه پنهان برای توابعی که استفاده می‌شوند یا توابعی که فقط پس از مقداردهی اولیه فراخوانی می‌شوند، اضافه شده است. تصمیم برای پاکسازی بر اساس شمارنده‌های جدید گرفته می‌شود که آخرین باری که به بایت کد دسترسی پیدا کرده است را در نظر می‌گیرند. این تغییر مصرف حافظه را 5 تا 15 درصد کاهش داد بدون اینکه تأثیر منفی بر عملکرد داشته باشد. علاوه بر این، کامپایلر بایت کد تولید کد آشکارا استفاده نشده را حذف می کند، برای مثال، که پس از بازگشت یا شکست (اگر هیچ انتقالی به آن وجود نداشته باشد).

    نسخه 74 کروم

  • برای WebAssembly اجرا شد پشتیبانی از رشته ها و عملیات اتمی (API WebAssembly Threads و WebAssembly Atomics)؛
  • برای تحویل جداگانه اسکریپت ها، پشتیبانی از هدر "#!" اضافه شده است که تعیین کننده اجرای مفسر است. به عنوان مثال، مانند سایر زبان های اسکریپت نویسی، یک فایل جاوا اسکریپت ممکن است چیزی شبیه به این باشد:

    گره #!/usr/bin/env
    console.log(42);

  • یک درخواست رسانه جدید به CSS اضافه شده است "ترجیح می دهد-کاهش-حرکت"، به سایت اجازه می دهد تا وضعیت تنظیمات مربوط به غیرفعال کردن جلوه های متحرک را در سیستم عامل تعیین کند. با استفاده از درخواست پیشنهادی، صاحب سایت می تواند متوجه شوید که کاربر جلوه های متحرک را غیرفعال کرده است و همچنین ویژگی های مختلف انیمیشن را در سایت غیرفعال کنید، به عنوان مثال، اثر لرزش دکمه های مورد استفاده برای جلب توجه را حذف کنید.
  • علاوه بر قابلیت تعریف فیلدهای عمومی معرفی شده در کروم 72 پشتیبانی اجرا شده است علامت گذاری فیلدها به عنوان خصوصی، پس از آن دسترسی به مقادیر آنها فقط در کلاس باز می شود. برای علامت گذاری یک فیلد به عنوان خصوصی، قبل از نام فیلد یک علامت "#" اضافه کنید. مانند فیلدهای عمومی، خصوصیات خصوصی نیازی به استفاده صریح از سازنده ندارند.
  • هدر Feature-Policy HTTP که به شما امکان می دهد رفتار API را کنترل کنید و ویژگی های خاصی را فعال کنید (به عنوان مثال، می توانید حالت عملیات همزمان XMLHttpRequest را فعال کنید یا API جغرافیایی را غیرفعال کنید) اضافه شده است. JavaScript API برای کنترل فعالیت فرصت های خاص. برای توسعه دهندگان، دو روش جدید document.featurePolicy و frame.featurePolicy وجود دارد که سه عملکرد را ارائه می دهند:
    allowFeatures() برای دریافت لیستی از ویژگی های مجاز برای دامنه فعلی، allowFeature() برای بررسی انتخابی اینکه آیا ویژگی های خاص فعال هستند و getAllowlistForFeature() برای بازگرداندن لیستی از دامنه هایی که یک ویژگی مشخص برای آنها در صفحه فعلی مجاز است.

  • پشتیبانی آزمایشی ("chrome://flags#enable-text-fragment-anchor") برای حالت اضافه شد اسکرول به متن، که به شما امکان می دهد بدون تعیین صریح برچسب در سند با استفاده از برچسب "a name" یا ویژگی "id" پیوندهایی به کلمات یا عبارات جداگانه ایجاد کنید. برای ارسال یک پیوند، یک پارامتر خاص "#targetText=" ارائه می شود که در آن می توانید متن انتقال را مشخص کنید. مجاز به تعیین ماسکی است که شامل عباراتی است که شروع و پایان قطعه را با استفاده از کاما به عنوان جداکننده آنها نشان می دهد (به عنوان مثال، "example.com#targetText=start%20words, end%20words");
  • یک گزینه به سازنده AudioContext اضافه شده است نرخ نمونه، که به شما امکان می دهد نرخ نمونه برداری برای عملیات صوتی را از طریق Web Audio API تنظیم کنید.
  • پشتیبانی کلاس اضافه شد محلی، که روش هایی را برای تجزیه و پردازش پارامترهای زبان، منطقه و سبک تنظیم شده توسط منطقه، و همچنین برای خواندن و نوشتن برچسب های پسوند یونیکد، ذخیره تنظیمات محلی کاربر در قالب سریالی ارائه می دهد.
  • سازوکار صرافی های HTTP امضا شده (SXG) با ابزارهایی برای اطلاع رسانی توزیع کنندگان محتوا در مورد خطاهایی در بارگیری محتوای امضا شده، مانند مشکلات تأیید گواهی. رسیدگی به خطا از طریق پسوندهای API انجام می شود ثبت خطای شبکه. به یاد بیاورید که SXG اجازه می دهد تا صاحب یک سایت، با استفاده از امضای دیجیتال، اجازه قرار دادن صفحات خاصی را در سایت دیگر می دهد، پس از آن، اگر به این صفحات در سایت دوم دسترسی پیدا کرد، مرورگر با وجود این واقعیت، URL سایت اصلی را به کاربر نشان می دهد. اینکه صفحه از میزبان دیگری بارگیری شده است.
  • متدی به کلاس TextEncoder اضافه شده است encodeInto()، که به شما امکان می دهد یک رشته رمزگذاری شده را مستقیماً در یک بافر از پیش تخصیص داده شده بنویسید. متد ()encodeInto یک جایگزین با کارایی بالا برای روش ()encode است که برای هر بار دسترسی به آن نیاز به انجام عملیات تخصیص بافر دارد.
  • در کارگر خدمات امن شده است بافر کردن تماس ()client.postMessage تا زمانی که سند آماده شود. پیام‌های ارسال شده از طریق ()client.postMessage تا زمانی که رویداد DOMContentLoaded افزایش یابد، onmessage تنظیم شود یا startMessages () فراخوانی شود، حفظ می‌شوند.
  • همانطور که توسط مشخصات CSS Transitions مورد نیاز است اضافه رویدادهای transitionrun، transitioncancel، transitionstart و transitionend زمانی ایجاد می‌شوند که یک انتقال CSS در صف قرار می‌گیرد، لغو می‌شود، شروع می‌شود یا اجرا را به پایان می‌رساند.
  • هنگامی که رمزگذاری یک کاراکتر نادرست از طریق overrideMimeType() یا نوع MIME برای XMLHttpRequest مشخص می شود، اکنون به جای Latin-8 به UTF-1 برمی گردد.
  • ویژگی «مجاز دانلود بدون فعال‌سازی کاربر» که از طریق آن امکان دانلود خودکار فایل‌ها هنگام پردازش iframe وجود داشت، منسوخ شده است و در نسخه بعدی حذف خواهد شد. در آینده، شروع دانلود فایل بدون اقدام صریح کاربر ممنوع خواهد بود، زیرا به طور فعال برای سوء استفاده، دانلودهای اجباری و قرار دادن بخش هایی از بدافزار در رایانه کاربر استفاده شده است. برای شروع دانلود، کاربر روی همان صفحه کلیک کند. در ابتدا قرار بود این ویژگی در Chrome 74 حذف شود، اما حذف شد به تعویق افتاد تا کروم 76.
  • یک تم تیره اختیاری برای طراحی رابط برای پلتفرم ویندوز ارائه شده است (در نسخه قبلی، یک تم تیره برای macOS آماده شده بود). از آنجایی که طراحی تاریک تقریباً مشابه طراحی در حالت ناشناس است، یک نشانگر ویژه به جای نماد نمایه کاربر برای برجسته کردن حالت عملکرد خصوصی اضافه شده است.
  • فرصتی برای کاربران شرکتی اضافه شده است مدیریت ابر مرورگر کروم برای مدیریت تنظیمات مرورگر کاربر از طریق کنسول Google Admin؛

    نسخه 74 کروم

علاوه بر نوآوری ها و رفع اشکال، نسخه جدید حذف می کند 39 آسیب پذیری. بسیاری از آسیب‌پذیری‌ها در نتیجه آزمایش خودکار با ابزارها شناسایی شدند AddressSanitizer, ضد عفونی کننده حافظه, یکپارچگی جریان را کنترل کنید, LibFuzzer и AFL. هیچ مشکل مهمی شناسایی نشده است که به شخص اجازه می دهد تمام سطوح حفاظت مرورگر را دور بزند و کد را در سیستم خارج از محیط سندباکس اجرا کند. به عنوان بخشی از برنامه پرداخت پاداش نقدی برای کشف آسیب‌پذیری‌ها برای نسخه فعلی، گوگل ۱۹ جایزه به مبلغ ۲۶۸۳۷ دلار (چهار جایزه ۳۰۰۰ دلاری، چهار جایزه ۲۰۰۰ دلاری، یک جایزه ۱۳۳۷ دلاری، چهار جایزه ۱۰۰۰ دلاری، سه جایزه ۵۰۰ دلاری) پرداخت کرد. اندازه 19 جایزه هنوز مشخص نشده است.

منبع: opennet.ru

اضافه کردن نظر