Chrome 108 बीटा

नई सीएसएस व्यूपोर्ट यूनिट, फ़ेडरेटेड क्रेडेंशियल मैनेजमेंट एपीआई, वैरिएबल COLRv1 फ़ॉन्ट वगैरह.

जब तक अलग से जानकारी नहीं दी जाती, तब तक नीचे बताए गए बदलाव Android, ChromeOS, Linux, macOS, और Windows के लिए, Chrome के बीटा वर्शन वाले चैनल के सबसे नए वर्शन पर लागू होते हैं. यहां दी गई सुविधाओं के बारे में ज़्यादा जानने के लिए, दिए गए लिंक या ChromeStatus.com पर दी गई सूची देखें. Chrome 108 का बीटा वर्शन 27 अक्टूबर, 2022 से उपलब्ध है. आप डेस्कटॉप के लिए Google.com पर या Android पर Google Play Store से नया वर्शन डाउनलोड कर सकते हैं.

सीएसएस

Chrome 108 में कई नई सीएसएस सुविधाएं शामिल हैं.

बदले गए एलिमेंट के लिए सीएसएस ओवरफ़्लो

Chrome में एक बदलाव रोल आउट करना शुरू किया जाएगा. इसकी मदद से, डेवलपर मौजूदा overflow प्रॉपर्टी का इस्तेमाल, कॉन्टेंट बॉक्स के बाहर पेंट किए गए एलिमेंट के साथ कर पाएंगे. इसे object-view-box के साथ जोड़ा जा सकता है. इसका इस्तेमाल कस्टम ग्लो या शैडो वाली इमेज बनाने के लिए किया जा सकता है. साथ ही, इसमें सीएसएस शैडो की तरह इंक-ओवरफ़्लो के तरीके का इस्तेमाल किया जा सकता है.

यह बहुत बड़ा बदलाव है. इसके बारे में ज़्यादा जानने के लिए, बदले गए एलिमेंट पर ओवरफ़्लो में होने वाला बदलाव लेख पढ़ें.

छोटी, बड़ी, डाइनैमिक, और लॉजिकल व्यूपोर्ट यूनिट

इससे छोटी (svw, svh, svi, svb, svmin, svmax), बड़ी (lvw, lvh, lvi, lvb, lvmin, lvmax), डाइनैमिक (dvw, dvh, dvi, dvb, dvmin, dvmax), और लॉजिकल (vi, vb) यूनिट के लिए सहायता मिलती है.

सीएसएस break-after, break-before, और break-inside की सहायता

प्रिंट करते समय, सीएसएस फ़्रैगमेंटेशन प्रॉपर्टी break-before, break-after, और break-inside की वैल्यू से बचने के लिए सहायता. इस वैल्यू की मदद से, ब्राउज़र को यह पता चलता है कि जिस एलिमेंट पर उसे लागू किया गया है उसके शुरू होने से पहले, बाद में या उस एलिमेंट में गड़बड़ी न हो. उदाहरण के लिए, यह सीएसएस, पेज ब्रेक पर दिखाए जाने वाले डेटा से बचाती है.

figure {
    break-inside: avoid;
}

यह सुविधा Chrome 108 में LayoutNG प्रिंटिंग के लिए काम करने की वजह से जोड़ी गई है.

आखिरी बेसलाइन आइटम अलाइनमेंट

इस सुविधा की मदद से डेवलपर, फ़्लेक्सिबल या ग्रिड लेआउट में आइटम को उनकी पहली बेसलाइन के बजाय उनकी आखिरी बेसलाइन के मुताबिक अलाइन कर सकते हैं. ऐसा इन प्रॉपर्टी के ज़रिए किया जाता है:

  • align-items: last baseline;
  • justify-items: last baseline;
  • align-self: last baseline;
  • justify-self: last baseline;

ContentVisibilityAutoStateChanged इवेंट

ऐसा इवेंट जो content-visibility: auto वाले एलिमेंट पर फ़ायर होता है. यह तब होता है, जब एलिमेंट की रेंडरिंग स्थिति, एलिमेंट को उपयोगकर्ता के लिए काम का बनाने वाली किसी भी एट्रिब्यूट की वजह से बदलती है.

इसका इस्तेमाल यह है कि डेवलपर को यह बेहतर तरीके से कंट्रोल करने की सुविधा मिलती है कि कॉन्टेंट की विज़िबिलिटी सबट्री को रेंडर करने से रोकने या चालू करने पर, उपयोगकर्ता-एजेंट को रेंडरिंग को कब बंद या शुरू करना चाहिए. उदाहरण के लिए, हो सकता है कि डेवलपर उस सबट्री में प्रतिक्रिया वाले अपडेट रोकना चाहे, जिसे उपयोगकर्ता-एजेंट ने रेंडर नहीं किया है. इसी तरह, हो सकता है कि उपयोगकर्ता-एजेंट, एलिमेंट को रेंडर नहीं कर रहा हो. ऐसे में, डेवलपर स्क्रिप्ट के किसी दूसरे अपडेट (उदाहरण के लिए, कैनवस अपडेट) को रोकना चाहे.

वेब एपीआई

फ़ेडरेटेड क्रेडेंशियल मैनेजमेंट (पहले WebID था)

फ़ेडरेटेड क्रेडेंशियल मैनेजमेंट एपीआई, उपयोगकर्ताओं को वेबसाइटों में लॉगिन करने के लिए, फ़ेडरेटेड आइडेंटिटी को ऐक्सेस करने की सुविधा देता है. इस एपीआई की मदद से, ब्राउज़र की निजता सेटिंग में सुधार किया जा सकता है.

वर्कर के मीडिया सोर्स एक्सटेंशन

इस सुविधा की मदद से, DedateddWorker कॉन्टेक्स्ट से मीडिया सोर्स एक्सटेंशन (MSE) एपीआई के इस्तेमाल की सुविधा चालू की जा सकती है. इससे मुख्य विंडो पर, HTMLMediaElement पर वीडियो चलाने के लिए बफ़रिंग मीडिया को बेहतर तरीके से चलाया जा सकता है. किसी DedeckdWorker कॉन्टेक्स्ट पर MediaSource ऑब्जेक्ट बनाने से, कोई ऐप्लिकेशन उससे MediaSourceHandle पा सकता है और उस हैंडल को मुख्य थ्रेड पर ट्रांसफ़र कर सकता है, ताकि उसका इस्तेमाल किसी HTMLMediaElement में अटैच करने के लिए किया जा सके. इसके बाद, MediaSource ऑब्जेक्ट बनाने वाला कॉन्टेक्स्ट, मीडिया को बफ़र करने के लिए उसका इस्तेमाल कर सकता है.

Sec-CH-Prefers-Reduced-Motion उपयोगकर्ता की पसंद के मीडिया फ़ीचर क्लाइंट हिंट हेडर

उपयोगकर्ता की पसंद से जुड़ी मीडिया सुविधाएं, क्लाइंट हिंट हेडर की मदद से उपयोगकर्ता की पसंद के मीडिया सुविधाओं के आस-पास एचटीटीपी क्लाइंट हिंट हेडर के सेट के बारे में पता चलता है. यह सुविधा मीडिया क्वेरी लेवल 5 की मदद से तय की गई है. अगर इन हेडर का इस्तेमाल ज़रूरी क्लाइंट संकेतों के तौर पर किया जाता है, तो सर्वर को सीएसएस इनलाइनिंग के बारे में स्मार्ट विकल्प चुनने की सुविधा मिलती है. Sec-CH-Prefers-Reduced-Motion, उपयोगकर्ता की prefers-reduced-motion प्राथमिकता दिखाता है.

WebTransport BYOB रीडर

यह, WebTransport के लिए BYOB(bring-your-own-buffer) रीडर का इस्तेमाल करता है और डेवलपर के दिए गए बफ़र में पढ़ने की सुविधा देता है. BYOB को इस्तेमाल करने वाले लोग, बफ़र कॉपी को कम कर सकते हैं और मेमोरी का इस्तेमाल कम कर सकते हैं.

अनुमतियों से जुड़ी नीति के मूल में वाइल्डकार्ड

अनुमतियों की नीति के स्पेसिफ़िकेशन में एक ऐसा तरीका बताया गया है जो डेवलपर को ब्राउज़र की अलग-अलग सुविधाओं और एपीआई के इस्तेमाल को चुनिंदा तरीके से चालू और बंद करने की सुविधा देता है. इस सुविधा की एक क्षमता, सिर्फ़ साफ़ तौर पर गिने गए ऑरिजिन (उदाहरण के लिए, https://foo.com/) पर सुविधाओं को चालू करने की अनुमति देती है. यह तरीका कुछ सीडीएन के डिज़ाइन के लिए ज़रूरत के मुताबिक नहीं है. सीडीएन ऐसे मूल के ज़रिए कॉन्टेंट डिलीवर करते हैं जिसे सैकड़ों संभावित सबडोमेन में से किसी एक पर होस्ट किया जा सकता है.

इसलिए, यह सुविधा SCHEME://*.HOST:PORT (उदाहरण के लिए, https://*.foo.com/) जैसी अनुमतियों की नीति में वाइल्डकार्ड के साथ काम करती है, जहां SCHEME://HOST:PORT (उदाहरण के लिए, https://foo.com/) से एक मान्य ऑरिजिन बनाया जा सकता है. इसके लिए, Host एक रजिस्टर किया जा सकने वाला डोमेन होना चाहिए. इसका मतलब है कि https://*.bar.foo.com/ काम करता है, लेकिन https://*.com/ काम नहीं करता (अगर आपको सभी डोमेन को यह सुविधा इस्तेमाल करने की अनुमति देनी है, तो आपको सिर्फ़ * को अपने ईमेल खाते का ऐक्सेस देना होगा).

File System Access API में, AccessHandles को सिंक करने के तरीके

यह, File System Access API में FileSystemSyncAccessHandle में, flush(), getSize(), और truncate() के एसिंक्रोनस तरीकों को सिंक करने के तरीकों के हिसाब से अपडेट करता है. फ़िलहाल, FileSystemSyncAccessHandle में सिंक करने और सिंक करने के अलग-अलग तरीके हैं. इससे परफ़ॉर्मेंस और उपयोगिता में रुकावट आती है. यह खास तौर पर, C/C++ को Wasm में पोर्ट करने वाले ऐप्लिकेशन के लिए मुश्किल होता है. इस अपडेट से एपीआई के इस्तेमाल में एक जैसा अनुभव मिलेगा. साथ ही, Wasm पर आधारित लाइब्रेरी की परफ़ॉर्मेंस भी बेहतर होगी.

यह ऐसा बदलाव हो सकता है जिससे नुकसान हो सकता है. इसके बारे में ज़्यादा जानने के लिए, AccessHandles के लिए बदलाव करने के तरीके: सिंक करने के तरीके लेख पढ़ें.

WebAuthn कंडिशनल यूज़र इंटरफ़ेस (यूआई)

WebAuthn के लिए शर्त के साथ यूज़र इंटरफ़ेस (यूआई), Windows 22H2 या उसके बाद के वर्शन, macOS, और Android P या इसके बाद के वर्शन पर काम करता है. डेस्कटॉप प्लैटफ़ॉर्म पर WebAuthn यूज़र इंटरफ़ेस (यूआई) को भी रीफ़्रेश किया गया है.

वैरिएबल COLRv1 फ़ॉन्ट और फ़ॉन्ट सुविधा पहचान

COLRv1 वैरिएबल फ़ॉन्ट सपोर्ट

COLRv1 कलर वेक्टर फ़ॉन्ट Chrome 98 के बाद से इस्तेमाल किए जा रहे हैं. हालांकि, इस शुरुआती रिलीज़ में सिर्फ़ COLRv1 टेबल के स्टैटिक फ़ंक्शन का इस्तेमाल किया गया था. COLRv1 स्पेसिफ़िकेशन में, OpenType वैरिएशन के साथ इंटिग्रेशन के बारे में बताया गया है. इससे, वैरिएबल ऐक्सिस के पैरामीटर में बदलाव करके, ग्रेडिएंट के फ़ॉन्ट प्रॉपर्टी में बदलाव किया जा सकता है और उन्हें बदला जा सकता है. यह दूसरा चरण, COLRv1 पर इस तरह के वैरिएशन के लिए सहायता उपलब्ध कराता है.

सीएसएस @supports के लिए font-tech() और font-format() शर्त के एक्सटेंशन

सीएसएस @supports के साथ font-tech() और font-format() का एक साथ इस्तेमाल करने पर, फ़ॉन्ट टेक्नोलॉजी और फ़ॉर्मैट के साथ काम करने की सुविधा को पहचाना जा सकता है. साथ ही, कॉन्टेंट को बेहतर तरीके से बेहतर बनाया जा सकता है. COLRv1 फ़ॉन्ट पर काम करने के लिए, टेस्ट के ये उदाहरण.

@supports font-tech(color-COLRv1) {

}

@font-face src: डिस्क्रिप्टर में tech() फ़ंक्शन सहायता

सीएसएस फ़ॉन्ट लेवल 4, फ़ॉन्ट रिसॉर्स चुनने या उन्हें फ़िल्टर करने के ज़्यादा तरीके उपलब्ध कराता है. tech() फ़ंक्शन लॉन्च किया गया था. इससे, उन फ़ॉन्ट टेक्नोलॉजी की सूची पास की जा सकती है जिन्हें इस फ़ॉन्ट ब्लॉब को फ़ंक्शन करने के लिए ज़रूरी है. इसके आधार पर, उपयोगकर्ता एजेंट पहले सही संसाधन को चुनेगा.

Android पर Chrome

Android OSK अब डिफ़ॉल्ट रूप से विज़ुअल व्यूपोर्ट का साइज़ बदल देता है

Android ऑन-स्क्रीन कीबोर्ड, शुरुआती ब्लॉक के बजाय डिफ़ॉल्ट रूप से विज़ुअल व्यूपोर्ट का साइज़ बदल देता है. लेखक नई interactive-widget मेटा-व्यूपोर्ट कुंजी का इस्तेमाल करके, इससे ऑप्ट आउट कर सकते हैं.

ऑरिजिन ट्रायल

Chrome के इस रिलीज़ में दो नए ऑरिजिन ट्रायल किए गए हैं.

canmakepayment इवेंट में व्यापारी/कंपनी की पहचान से जुड़ी जानकारी

canmakepayment सर्विस वर्कर इवेंट की मदद से, व्यापारी/कंपनी को यह पता चलता है कि इंस्टॉल किए गए पेमेंट ऐप्लिकेशन में, उपयोगकर्ता का कोई कार्ड सेव है या नहीं. यह पेमेंट ऐप्लिकेशन के ऑरिजिन से, व्यापारी/कंपनी के ऑरिजिन और उसकी पसंद का डेटा, सर्विस वर्कर को चुपचाप भेज देता है. यह क्रॉस-ऑरिजिन कम्यूनिकेशन, JavaScript में PaymentRequest को बनाने पर होता है. इसके लिए, यूज़र जेस्चर की ज़रूरत नहीं होती और न ही कोई यूज़र इंटरफ़ेस दिखाता है. "canmakepayment" इवेंट से पहचान के फ़ील्ड हटाने के लिए, डेवलपर ट्रायल की सुविधा को chrome://flags/#clear-identity-in-can-make-payment के ज़रिए चालू किया जा सकता है. इस फ़्लैग को चालू करने से, "canmakepayment" इवेंट (और Android IS_READY_TO_PAY इंटेंट) में मौजूद पहचान फ़ील्ड खाली करने का विकल्प होता है.

इस बारे में ज़्यादा जानने के लिए, पेमेंट हैंडलर एपीआई के CanMakePayment इवेंट के व्यवहार के अपडेट में ज़्यादा जानकारी पाएं.

बैक/फ़ॉरवर्ड कैश मेमोरी Not Restoreरॉ का एपीआई

NotResbor API, इस बात की सूची के बारे में रिपोर्ट देगा कि किन वजहों से किसी पेज को फ़्रेम ट्री स्ट्रक्चर में BFcache से नहीं दिखाया गया है. इसके लिए, Performance NavigationTiming API का इस्तेमाल करता है.

पेज को BFcache से अलग-अलग वजहों से ब्लॉक किया जा सकता है. जैसे, स्पेसिफ़िकेशन में बताई गई वजहें और ब्राउज़र लागू करने के लिए खास तौर पर बताई गई वजहें. डेवलपर, pageshow हैंडलर के मौजूदा पैरामीटर और PerformanceNavigationTiming.type(back-forward) का इस्तेमाल करके, अपनी साइट पर BFकैश की हिट-रेट की दर इकट्ठा कर सकते हैं. इस एपीआई की मदद से साइटें यह जानकारी इकट्ठा कर पाती हैं कि इतिहास के नेविगेशन में BFकैश का इस्तेमाल क्यों नहीं किया गया है. इसकी मदद से, वे हर वजह पर कार्रवाई करके, अपने पेज को BFकैश के साथ काम कर सकते हैं.

सेवा बंद करना और हटाना

Chrome के इस वर्शन में, हटाए जाने वाले और हटाए जाने वाले पेजों की जानकारी दी जाएगी. इनके बारे में नीचे बताया गया है. पहले से हटाए गए, हटाए गए पेजों, और मौजूदा बंदियों की सूची के लिए, ChromeStatus.com पर जाएं.

समर्थन नहीं होना या रुकना

Chrome के इस वर्शन में एक सुविधा बंद कर दी गई है.

window.defaultStatus और window.defaultstatus का इस्तेमाल बंद करें और हटाएं

ये नॉन-स्टैंडर्ड एपीआई हैं जिन्हें सभी ब्राउज़र लागू नहीं करते. साथ ही, इनसे ब्राउज़र के काम करने के तरीके पर कोई असर नहीं पड़ता है. यह उन्हें साफ़ करता है और संभावित फ़िंगरप्रिंटिंग सिग्नल को हटा देता है.

मूल रूप से इनका इस्तेमाल ब्राउज़र विंडो के निचले हिस्से में मौजूद "स्टेटस बार" टेक्स्ट में बदलाव करने/कंट्रोल करने के लिए किया जाता था. हालांकि, उनका Chrome के स्टेटस बार पर कोई असल असर नहीं पड़ा है. साथ ही, ये स्टैंडर्ड एट्रिब्यूट नहीं हैं. Gecko ने 23 और इसके बाद से ही ये एट्रिब्यूट इस्तेमाल नहीं किए हैं. WebKit अब भी इन एट्रिब्यूट के साथ काम करता है. मिलते-जुलते window.status एट्रिब्यूट को स्टैंडर्ड किया गया है. हालांकि, विंडो के स्टेटस बार पर कभी भी इसका असर नहीं होना चाहिए.

हटाने की प्रक्रिया

Chrome के इस वर्शन में चार सुविधाएं बंद हो गई हैं.

ImageDecoderInit.premultiplyAlpha को हटाएं

इस सुविधा का, इस्तेमाल के मुख्य मामलों में कोई असर नहीं देखा जा सकता. हालांकि, यह लागू करने के तरीकों को कुछ हद तक खराब कर सकती है. ज़्यादा जानकारी के लिए यह समस्या देखें. WebCodecs स्पेसिफ़िकेशन एडिटर की सहमति के हिसाब से और इस्तेमाल में कमी (M106 में हर इस्तेमाल काउंटर के हिसाब से पेज लोड का 0.000000339% - 0.00000687%).

navigateEvent.restoreScroll() को हटाएं

restoreScroll() को navigateEvent.scroll() से बदला जा रहा है. scroll() एक जैसा काम करता है. हालांकि, इससे डेवलपर नॉन-ट्रैवर्स नेविगेशन के लिए, स्क्रोल करने के समय को कंट्रोल कर सकता है. (scroll() तब काम करता है, जब स्क्रोल को पहले जैसा नहीं किया जाता. इसलिए, काम करने के तरीके में बदलाव के साथ इसका नाम भी बदल जाता है).

navigateEvent.transitionWhile() को हटाएं

डेवलपर की ओर से रिपोर्ट की गई डिज़ाइन की गड़बड़ियों की वजह से transitionWhile() को navigateEvent.intercept() से बदला जा रहा है. अंदरूनी काम करने वाला इंटरसेप्ट(), ट्रांज़िशन() की तरह ही काम करता है. हालांकि, ज़रूरी Promise पैरामीटर लेने के बजाय, यह एक वैकल्पिक हैंडलर फ़ंक्शन लेता है जो प्रॉमिस देता है. इससे, ब्राउज़र को यह कंट्रोल करने की अनुमति मिलती है कि हैंडलर कब काम करे. यह कंट्रोल, transitionWhile() के मुकाबले बाद में और ज़्यादा आसान होता है.

WebRTC MediaConstraint का googIPv6 हटाएं

"googIPv6: false" का इस्तेमाल, WebRTC में आईपीवी6 के साथ काम करने की सुविधा को बंद करने के लिए किया जा सकता है, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है.

new RTCPeerConnection({}, {mandatory:{googIPv6:false}});

IPv6 डिफ़ॉल्ट रूप से कई सालों से चालू है और हम इसे बंद नहीं कर पाएंगे. यह एक लेगसी एपीआई है, जो स्पेसिफ़िकेशन में मौजूद नहीं है.