नई सीएसएस व्यूपोर्ट यूनिट, फ़ेडरेटेड क्रेडेंशियल मैनेजमेंट एपीआई, वैरिएबल 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 कहा गया था)
संघीय क्रेडेंशियल मैनेजमेंट एपीआई की मदद से उपयोगकर्ता, वेबसाइटों में लॉगिन करने के लिए अपनी फ़ेडरेटेड पहचान की मदद से, ब्राउज़र की निजता सेटिंग को बेहतर बना सकते हैं.
कर्मियों में मीडिया स्रोत एक्सटेंशन
खास विंडो में HTMLMediaElement के ज़रिए, वीडियो चलाने के लिए बफ़रिंग मीडिया की परफ़ॉर्मेंस को बेहतर बनाने के लिए, मदद के तौर पर इस्तेमाल किए जाने वाले मीडिया सोर्स एक्सटेंशन (MSE) के एपीआई इस्तेमाल को चालू करता है. डेडिकेटेड वर्कर कॉन्टेक्स्ट पर 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) रीडर के साथ काम करता है, ताकि उसे डेवलपर की ओर से दिए गए बफ़र में कॉन्टेंट पढ़ने की अनुमति मिल सके. बीवायओबी रीडर की मदद से, बफ़र कॉपी और मेमोरी का बंटवारा कम किया जा सकता है.
अनुमतियों की नीति के ऑरिजिन में वाइल्डकार्ड
अनुमतियों की नीति के स्पेसिफ़िकेशन में एक ऐसा तरीका बताया गया है जो डेवलपर को ब्राउज़र की अलग-अलग सुविधाओं और एपीआई को चुनिंदा तरीके से चालू और बंद करने की अनुमति देता है. इस मैकेनिज़्म की एक क्षमता, साफ़ तौर पर गिनती किए गए ऑरिजिन पर ही सुविधाओं को चालू करने की अनुमति देती है (उदाहरण के लिए, 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
में सिंक करने और एक साथ काम नहीं करने की सुविधा, दोनों का इस्तेमाल किया गया है. इससे, परफ़ॉर्मेंस और उसे इस्तेमाल करने में रुकावट आती है. खास तौर पर, उन ऐप्लिकेशन के लिए जो Wasm पर C/C++ पोर्ट कर रहे हैं. इस अपडेट से, एपीआई के इस्तेमाल में एक जैसा अनुभव मिलेगा. साथ ही, 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 इवेंट व्यवहार में अपडेट पर क्लिक करें.
बैक/फ़ॉरवर्ड कैश मेमोरी की वजह से कॉन्टेंट वापस लाने की वजह से एपीआई
NotReturnReturn API की मदद से, उन वजहों की सूची देखी जा सकती है जिनकी वजह से किसी पेज को फ़्रेम ट्री के स्ट्रक्चर में, BFcache से नहीं दिखाया जा सकता. इसके लिए, Performanceहो फ़्रेमवर्क का एपीआई इस्तेमाल करना चाहिए.
बीएफ़कैश मेमोरी में इन पेजों को ब्लॉक किया जा सकता है. इसकी कई वजहें हो सकती हैं. जैसे, खास जानकारी में बताई गई वजहें और ब्राउज़र लागू करने से जुड़ी खास वजहें. पेजशो हैंडलर बनाए रखने वाले पैरामीटर और PerformanceNavigationTiming.type(back-forward)
का इस्तेमाल करके, डेवलपर अपनी साइट पर BFcache की हिट-रेट इकट्ठा कर सकते हैं. इस एपीआई की मदद से, साइटें यह जानकारी इकट्ठा कर सकती हैं कि इतिहास के नेविगेशन में BFकैश का इस्तेमाल क्यों नहीं किया जाता. इससे वे हर वजह पर कार्रवाई कर सकती हैं और अपने पेज को BFकैश के साथ काम कर सकती हैं.
बंद करना और हटाना
Chrome के इस वर्शन में, सुविधाओं को बंद करने और हटाने के बारे में नीचे बताया गया है. पहले से तय, बंद हो चुके, और पहले से हटाए गए तरीकों की सूची के लिए ChromeStatus.com पर जाएं.
बंद किया गया
Chrome के इस वर्शन में, एक सुविधा का इस्तेमाल रोक दिया गया है.
window.defaultStatus
और window.defaultstatus
का बहिष्कार करें और उन्हें हटाएं
ये नॉन-स्टैंडर्ड एपीआई हैं. इन्हें सभी ब्राउज़र पर लागू नहीं किया जाता और ब्राउज़र के काम करने के तरीके पर कोई असर नहीं पड़ता. यह उन्हें साफ़ कर देता है और संभावित फ़िंगरप्रिंटिंग सिग्नल को निकाल देता है.
मूल रूप से इनका इस्तेमाल "स्टेटस बार" में बदलाव करने/कंट्रोल करने के लिए किया गया था टेक्स्ट को क्लिक करें. हालांकि, Chrome के स्टेटस बार पर इनका कभी कोई असर नहीं पड़ा. साथ ही, ये स्टैंडर्ड एट्रिब्यूट नहीं हैं. गेको इन एट्रिब्यूट के साथ वर्शन 23 से काम नहीं करता है; WebKit अब भी इन एट्रिब्यूट के साथ काम करता है. मिलते-जुलते window.status
एट्रिब्यूट को स्टैंडर्ड है. हालांकि, इससे विंडो के स्टेटस बार पर कभी कोई असर नहीं होना चाहिए.
हटाने की प्रोसेस
Chrome की इस रिलीज़ में चार सुविधाएं हटा दी गई हैं.
ImageDecoderInit.premultiplyAlpha
को हटाएं
पहली बार इस सुविधा का इस्तेमाल करने पर, इसका कोई असर नहीं पड़ता. हालांकि, हो सकता है कि इसे लागू करने में कुछ दिक्कतें आएं. ज़्यादा जानकारी के लिए यह समस्या देखें. WebCodecs के स्पेसिफ़िकेशन एडिटर की सहमति के बिना और इस्तेमाल न करने से जुड़ा कॉन्टेंट (0.000000339% - M106 में हर इस्तेमाल काउंटर के हिसाब से पेज लोड का 0.00000687%).
navigateEvent.restoreScroll()
को हटाएं
restoreScroll()
को navigateEvent.scroll()
से बदला जा रहा है. scroll()
पूरी तरह से काम करता है. हालांकि, यह डेवलपर को नॉन-ट्रैवर्स नेविगेशन के लिए, स्क्रोल करने के समय को कंट्रोल करने की अनुमति देता है. scroll()
तब काम करता है, जब स्क्रोल की गई कॉपी रीस्टोर न हो. इसलिए, व्यवहार में बदलाव के साथ नाम भी बदल जाता है.
navigateEvent.transitionWhile()
को हटाएं
डेवलपर की ओर से रिपोर्ट की गई डिज़ाइन से जुड़ी कमियों की वजह से, transitionWhile()
को navigateEvent.intercept()
से बदला जा रहा है. Intercept() करीब-करीब एक जैसा ही काम करता है. हालांकि, यहयह उतना ही मायने रखता है, जैसा ट्रांज़िशन के दौरान जाता है. हालांकि, एक ज़रूरी Promise पैरामीटर लेने के बजाय, यह एक वैकल्पिक हैंडलर फ़ंक्शन लेता है, जो प्रॉमिस नतीजे देता है. इससे ब्राउज़र को यह कंट्रोल करने की अनुमति मिलती है कि हैंडलर कब काम करता है. यह transitionWhile()
के बाद के वर्शन के मुकाबले ज़्यादा आसान है.
WebRTC MediaConstraint का googIPv6
हटाएं
"googIPv6: false"
का इस्तेमाल, WebRTC में आईपीवी6 की सुविधा बंद करने के लिए किया जा सकता है. इसके उदाहरण नीचे दिए गए हैं.
new RTCPeerConnection({}, {mandatory:{googIPv6:false}});
आईपीवी6 कई सालों से डिफ़ॉल्ट रूप से चालू है और हम इसे बंद नहीं कर पाएंगे. यह एक लेगसी एपीआई है, जो स्पेसिफ़िकेशन में मौजूद नहीं है.