पब्लिश होने की तारीख: 13 नवंबर, 2024
अगर कुछ और नहीं बताया गया है, तो यहां बताए गए बदलाव, Android, ChromeOS, Linux, macOS, और Windows के लिए, Chrome के बीटा चैनल की नई रिलीज़ पर लागू होंगे. यहां दी गई सुविधाओं के बारे में ज़्यादा जानने के लिए, दिए गए लिंक पर जाएं या ChromeStatus.com पर दी गई सूची देखें. Chrome 132, 13 नवंबर, 2024 तक बीटा वर्शन है. डेस्कटॉप के लिए Google.com पर या Android के लिए Google Play Store पर, सबसे नया वर्शन डाउनलोड किया जा सकता है.
सीएसएस
इस रिलीज़ में, सीएसएस की दो नई सुविधाएं जोड़ी गई हैं.
सीएसएस ऐंकर पोज़िशनिंग: inset
और margin
प्रॉपर्टी में anchor-size()
की अनुमति दें
मूल रूप से, anchor-size()
का इस्तेमाल सिर्फ़ साइज़िंग प्रॉपर्टी में किया जा सकता था. इनसेट और मार्जिन में भी anchor-size()
की अनुमति देने के लिए, स्पेसिफ़िकेशन में बदलाव किया गया था.
सीएसएस में, साइडवर्ड लिखने के मोड
writing-mode
सीएसएस प्रॉपर्टी के लिए, sideways-rl
और sideways-lr
कीवर्ड का इस्तेमाल किया जा सकता है. sideways-rl
और sideways-lr
का इस्तेमाल करके, CJK भाषाओं के अलावा अन्य भाषाओं के टेक्स्ट को वर्टिकल तौर पर लिखा जा सकता है. vertical-rl
और vertical-lr
के मुकाबले, इनमें CJK भाषाओं के लिए सही तरीके से काम करने की सुविधा नहीं होती.
वेब एपीआई
सभी स्क्रीन कैप्चर करना
getAllScreensMedia()
का इस्तेमाल करके, डिवाइस से कनेक्ट की गई सभी स्क्रीन कैप्चर करें.
getDisplayMedia()
को कई बार कॉल करने के लिए, उपयोगकर्ता को कई तरह के जेस्चर करने पड़ते हैं. साथ ही, हर बार अगली स्क्रीन चुनने की ज़िम्मेदारी उपयोगकर्ता की होती है. इससे ऐप्लिकेशन को यह गारंटी नहीं मिलती कि सभी स्क्रीन चुनी गई हैं. getAllScreensMedia()
का तरीका, इन सभी पहलुओं को बेहतर बनाता है.
यह सुविधा सिर्फ़ डेस्कटॉप पर उपलब्ध है.
डायलॉग टॉगल इवेंट
यह जानना ज़रूरी है कि <dialog>
एलिमेंट कब खुलते और बंद होते हैं. साथ ही, popover
में पहले से ही ToggleEvent
मौजूद होता है, जो पॉपओवर के खुलने या बंद होने पर डिस्पैच होता है.
पहले, <dialog>
के खुलने का पता लगाने के लिए, आपको म्यूटेशन ऑब्ज़र्वर को रजिस्टर करना पड़ता था. हालांकि, यह बहुत ज़्यादा काम है, जबकि इवेंट का इस्तेमाल करके यह काम आसानी से किया जा सकता है.
इस बदलाव में वही ToggleEvent
शामिल है जिसे पॉपओवर डिस्पैच करते हैं, लेकिन <dialog>
एलिमेंट के लिए: जब showModal
या show
को कॉल किया जाता है, तो <dialog>
newState=open
के साथ एक ToggleEvent
डिस्पैच करता है. जब कोई <dialog>
(फ़ॉर्म, बटन या closewatcher का इस्तेमाल करके) बंद हो जाता है, तो उसे newState=closed
के साथ ToggleEvent
भेजना चाहिए.
एलिमेंट कैप्चर
टैब-कैप्चर शुरू करने के लिए, पहले से मौजूद तरीकों से हासिल किए गए वीडियो MediaStreamTrack
में, एलिमेंट कैप्चर की मदद से ट्रैक में बदलाव किया जा सकता है. इससे, किसी एलिमेंट से शुरू होकर, सिर्फ़ डीओएम का सबट्री फ़्रेम कैप्चर किया जा सकता है.
यह एपीआई, क्षेत्र कैप्चर एपीआई से कुछ हद तक मिलता-जुलता है. हालांकि, यह ऐप्लिकेशन के लिए ज़्यादा सुविधाजनक है, क्योंकि इसमें ऑब्जेक्ट और ऑब्जेक्ट से छिपे हुए कॉन्टेंट, दोनों को कैप्चर से बाहर रखा जाता है.
FedCM की अनुमति से जुड़ी सुविधाएं
इसमें कुछ सुविधाएं होती हैं. आइडेंटिटी प्रोवाइडर (आईडीपी), अनुमति देने के फ़्लो को लागू करने के लिए इनका इस्तेमाल कर सकते हैं. जैसे, किसी उपयोगकर्ता को अपने कैलेंडर का ऐक्सेस, किसी भरोसेमंद पक्ष (आरपी) को देने की अनुमति देना. खास तौर पर:
- आईडीपी को अनुमति (कंटिन्यूएशन एपीआई) के लिए, कस्टम प्रॉम्प्ट दिखाना चाहिए.
- आरपी को आईडीपी को यह बताने के लिए, एक्सटेंसिबल तरीके की ज़रूरत होती है कि उसे किस चीज़ का ऐक्सेस चाहिए (पैरामीटर एपीआई).
- आरपी को "नाम, ईमेल पता, और प्रोफ़ाइल फ़ोटो" शेयर करने वाले आईडीपी का रेफ़रंस देने वाले टेक्स्ट को पसंद के मुताबिक बनाने या उसे छिपाने की ज़रूरत होती है. ऐसा इसलिए, क्योंकि इस स्थिति में वे अलग-अलग जानकारी (फ़ील्ड एपीआई) मांग रहे हैं.
- हो सकता है कि आईडीपी, ऑथराइज़ेशन फ़्लो (एक से ज़्यादा configURLs) को लागू करने के लिए, किसी दूसरे एंडपॉइंट का इस्तेमाल करना चाहे.
- कुछ खाते, पुष्टि और अनुमति देने के किसी एक फ़्लो के लिए ही ज़रूरी शर्तें पूरी कर सकते हैं. इसलिए, दोनों फ़्लो (खाता लेबल एपीआई) में अलग-अलग खाते दिखाने का एक तरीका होना चाहिए.
FedCM Mode API और अन्य खाते के एपीआई का इस्तेमाल करना
FedCM के लिए दो नए एक्सटेंशन:
- मोड:
active
मोड की मदद से, वेबसाइटें किसी बटन पर क्लिक करने पर FedCM को कॉल कर सकती हैं. उदाहरण के लिए, IdP में साइन इन करें बटन पर क्लिक करना. इसके लिए, FedCM को यह पक्का करना होगा कि वह हमेशा दिखने वाले यूज़र इंटरफ़ेस के साथ जवाब देगा. ऐक्टिव मोड में FedCM API को कॉल करने पर, उपयोगकर्ताओं को Identity Provider (IdP) में लॉगिन करने के लिए कहा जाता है. ऐसा तब होता है, जब उपयोगकर्ता लॉग-आउट हों. साथ ही, ऐक्टिव मोड को साफ़ तौर पर उपयोगकर्ता के जेस्चर के ज़रिए ट्रिगर किया जाता है. इसलिए, यह यूज़र इंटरफ़ेस (यूआई) पैसिव मोड के यूआई की तुलना में ज़्यादा प्रमुख होता है. उदाहरण के लिए, यूआई को बीच में और मोडल के तौर पर दिखाया जाता है. पैसिव मोड को ट्रिगर करने के लिए, उपयोगकर्ता के जेस्चर की ज़रूरत नहीं होती और इसे पेज लोड होने पर ट्रिगर किया जा सकता है. - किसी दूसरे खाते का इस्तेमाल करना: इस एक्सटेंशन की मदद से, आईडीपी उपयोगकर्ताओं को दूसरे खातों में साइन इन करने की अनुमति दे सकता है.
फ़ेच: Request.bytes()
और Response.bytes()
Request
और Response
इंटरफ़ेस में bytes()
मैथड जोड़ें, जो ऐसा प्रॉमिस रिटर्न करता है जो Uint8Array के साथ रिज़ॉल्व होता है. Request
और Response
में arrayBuffer()
तरीका है, लेकिन सीधे बफ़र से नहीं पढ़ा जा सकता. इसे पढ़ने के लिए, आपको Uint8Array
जैसा कोई व्यू बनाना होगा. bytes()
तरीका, अनुरोध और रिस्पॉन्स के मुख्य हिस्से को पाने के लिए, काम करने के तरीके को बेहतर बनाता है.
Android और वेबव्यू के लिए फ़ाइल सिस्टम का ऐक्सेस
इस एपीआई की मदद से, डेवलपर ऐसे बेहतरीन ऐप्लिकेशन बना सकते हैं जो उपयोगकर्ता के डिवाइस के फ़ाइल सिस्टम का इस्तेमाल करके, डिवाइस पर मौजूद अन्य (नॉन-वेब) ऐप्लिकेशन के साथ इंटरैक्ट करते हैं. जब कोई उपयोगकर्ता किसी वेब ऐप्लिकेशन को ऐक्सेस देता है, तो यह एपीआई ऐप्लिकेशन को, उपयोगकर्ता की चुनी गई फ़ाइलों और फ़ोल्डर में सीधे बदलाव पढ़ने या सेव करने की अनुमति देता है. इस एपीआई की मदद से, फ़ाइलों को पढ़ा और लिखा जा सकता है. साथ ही, डायरेक्ट्री खोली जा सकती है और उसके कॉन्टेंट की गिनती की जा सकती है. इसके अलावा, IndexedDB में फ़ाइल और डायरेक्ट्री हैंडल सेव किए जा सकते हैं, ताकि बाद में उसी कॉन्टेंट का ऐक्सेस फिर से पाया जा सके.
फ़ाइल सिस्टम का ऐक्सेस, Chrome 86 में डेस्कटॉप पर उपलब्ध कराया गया था. यह सुविधा, Chrome 132 में Android और वेबव्यू पर उपलब्ध है.
localhost के लिए Strict-Transport-Security को अनदेखा करना
Strict-Transport-Security
(एसटीएस) रिस्पॉन्स हेडर की वजह से, होस्टलोक वेब सर्वर को समस्याएं आ सकती हैं. इसकी वजह यह है कि एसटीएस, होस्ट के सभी पोर्ट पर लागू होता है. इससे, वेब डेवलपर को स्थानीय तौर पर टेस्ट करने में, ब्राउज़र के साथ काम करने से जुड़ी समस्याएं आती हैं. इससे उन असली उपयोगकर्ताओं पर भी असर पड़ता है जो ऐसे सॉफ़्टवेयर पैकेज का इस्तेमाल करते हैं जो आम तौर पर कुछ समय के लिए localhost वेब सर्वर शुरू करते हैं. उदाहरण के लिए, वेब लॉगिन से किसी स्थानीय सॉफ़्टवेयर पैकेज में पुष्टि करने के टोकन का कम्यूनिकेशन. अगर कोई स्थानीय लिसनर, localhost के जवाब पर Strict-Transport-Security
सेट करता है, तो यह localhost के सभी अनुरोधों पर लागू होता है. भले ही, पोर्ट कुछ भी हो.
Chrome 132 में, localhost यूआरएल से मिले रिस्पॉन्स में Strict-Transport-Security
हेडर को अनदेखा करके, इस समस्या को ठीक किया गया है.
कीबोर्ड की मदद से, इस्तेमाल किए जा सकने वाले स्क्रोल कंटेनर
Chrome 130 से इस सुविधा को रोल आउट करने की प्रोसेस को बंद कर दिया गया है. ऐसा, सुलभता से जुड़ी समस्या की वजह से किया गया है. इस समस्या को ठीक कर दिया गया है और यह सुविधा Chrome 132 के साथ रोल आउट की जा रही है.
प्राइवेट स्टेट टोकन एपीआई की अनुमतियों से जुड़ी नीति का डिफ़ॉल्ट अनुमति वाली सूची वाला वाइल्डकार्ड
प्राइवेट स्टेट टोकन एपीआई का ऐक्सेस, अनुमतियों की नीति की सुविधाओं के हिसाब से दिया जाता है.
Chrome 132 में, private-state-token-issuance
और private-state-token-redemption
, दोनों सुविधाओं के लिए डिफ़ॉल्ट अनुमति वाली सूची को self
से *
(वाइल्डकार्ड) पर अपडेट किया गया है.
PushMessageData::bytes()
PushMessageData
इंटरफ़ेस, Body
इंटरफ़ेस की नकल करता है. इस इंटरफ़ेस में इस साल की शुरुआत में, bytes()
के नए तरीके के साथ बदलाव किया गया था. यह बदलाव इस सिद्धांत के आधार पर किया गया था कि एपीआई को आम तौर पर बाइट बफ़र को Uint8Arrays
के तौर पर बेचना चाहिए. Chrome 132, PushMessageData
इंटरफ़ेस पर भी bytes()
ऐक्सेस करने की सुविधा देकर, Body
इंटरफ़ेस के साथ फिर से अलाइन हो जाता है.
sharedStorage.selectURL
में सेव की गई क्वेरी
sharedStorage.selectURL()
की मदद से, अब हर पेज के हिसाब से क्वेरी सेव की जा सकती हैं और उनका फिर से इस्तेमाल किया जा सकता है. इसमें, हर पेज लोड के लिए तय किए गए दो बजट में से पहला बजट, सेव की गई क्वेरी को पहली बार चलाने पर कटता है. हालांकि, उसी पेज लोड के दौरान सेव की गई क्वेरी को फिर से चलाने पर, बजट नहीं कटता. ऐसा करने के लिए, selectURL()
के विकल्पों में savedQuery
पैरामीटर का इस्तेमाल किया जाता है.
इनऐक्टिव दस्तावेज़ों में पॉपओवर और डायलॉग के लिए अपवाद दिखाना
पहले, किसी बंद दस्तावेज़ में मौजूद पॉपओवर या डायलॉग पर showPopover()
या showModal()
को कॉल करने पर, कोई कार्रवाई नहीं होती थी. कोई अपवाद नहीं दिखेगा, लेकिन दस्तावेज़ के चालू न होने की वजह से, कोई पॉपओवर या डायलॉग नहीं दिखेगा. Chrome 132 के बाद, इन स्थितियों में InvalidStateError
दिखता है.
WebAuthn Signal API
WebAuthn पर भरोसा करने वाले पक्षों को, मौजूदा क्रेडेंशियल के बारे में जानकारी को क्रेडेंशियल स्टोरेज की सेवा देने वाली कंपनियों को भेजने की अनुमति मिलती है. इससे, गलत या रद्द किए गए क्रेडेंशियल को अपडेट किया जा सकता है या सेवा देने वाली कंपनी और सिस्टम के यूज़र इंटरफ़ेस (यूआई) से हटाया जा सकता है.
Chrome डेस्कटॉप पर पासकी के लिए Signal API के बारे में ज़्यादा जानें.
WebGPU: 32-बिट फ़्लोट टेक्सचर ब्लेंडिंग
float32-blendable
जीपीयू की सुविधा, r32float
,
rg32float
, और rgba32float
फ़ॉर्मैट वाले जीपीयू टेक्सचर को ब्लेंड करने की सुविधा देती है.
WebGPU: GPUDevice से GPUAdapterInfo को एक्सपोज़ करना
GPUDevice adapterInfo
एट्रिब्यूट, GPUAdapter
ऑब्जेक्ट के तौर पर वही GPUAdapterInfo
दिखाता है.
WebGPU: टेक्सचर व्यू का इस्तेमाल
सोर्स टेक्सचर से इस्तेमाल के फ़्लैग के सबसेट का अनुरोध करने के लिए, WebGPU टेक्सचर व्यू बनाने में एक वैकल्पिक फ़ील्ड जोड़ता है.
डिफ़ॉल्ट रूप से, टेक्सचर व्यू का इस्तेमाल सोर्स टेक्सचर से इनहेरिट होता है. हालांकि, ऐसे व्यू फ़ॉर्मैट हैं जो इनहेरिट किए गए इस्तेमाल के पूरे सेट के साथ काम नहीं कर सकते. टेक्सचर व्यू बनाने के दौरान इस्तेमाल फ़ील्ड जोड़ने से, उपयोगकर्ता को सोर्स टेक्सचर के इस्तेमाल के ऐसे सबसेट का अनुरोध करने की अनुमति मिलती है जो व्यू फ़ॉर्मैट के साथ मान्य हों और टेक्सचर व्यू के उनके इस्तेमाल के हिसाब से हों.
WebGPU लागू करने से, कम लेवल के रिसॉर्स बनाने की प्रोसेस को ऑप्टिमाइज़ किया जा सकता है. साथ ही, इस्तेमाल के ज़्यादा खास फ़्लैग वाले व्यू का इस्तेमाल करने पर परफ़ॉर्मेंस को बेहतर बनाया जा सकता है.
नए ऑरिजिन ट्रायल
Chrome 132 में, इन नए ऑरिजिन ट्रायल में ऑप्ट इन किया जा सकता है.
Document-Isolation-Policy
Document-Isolation-Policy
की मदद से, किसी दस्तावेज़ में crossOriginIsolation
को खुद चालू किया जा सकता है. इसके लिए, सीओओपी या सीओईपी को डिप्लॉय करने की ज़रूरत नहीं होती. साथ ही, पेज के crossOriginIsolation
स्टेटस से कोई फ़र्क़ नहीं पड़ता. इस नीति के पीछे प्रोसेस के अलग-अलग होने की सुविधा है. इसके अलावा, दस्तावेज़ के ऐसे सब-रिसॉर्स जिन्हें सीओआरएस के दायरे में नहीं रखा गया है, वे क्रेडेंशियल के बिना लोड किए जाएंगे या फिर उनमें CORP हेडर होना ज़रूरी होगा.
मैजिक टिप्पणियों की मदद से, कॉन्टेंट को बेहतर तरीके से लिखने के लिए सुझाव पाना
इस सुविधा की मदद से, यह जानकारी अटैच की जा सकती है कि JavaScript फ़ाइलों में किन फ़ंक्शन को जल्दी पार्स और कंपाइल किया जाना चाहिए. इस जानकारी को मैजिक टिप्पणियों के तौर पर कोड में बदल दिया जाएगा.
बंद किए गए और हटाए गए वर्शन
Chrome के इस वर्शन में, नीचे बताई गई सुविधाओं को बंद किया जा रहा है और हटाया जा रहा है. आने वाले समय में बंद होने वाले वर्शन, फ़िलहाल बंद किए गए वर्शन, और पहले हटाए गए वर्शन की सूची देखने के लिए, ChromeStatus.com पर जाएं.
Chrome के इस वर्शन में दो सुविधाएं हटा दी गई हैं.
navigator.storage
अब EventTarget
नहीं है
navigator.storage
को स्टोरेज प्रेशर इवेंट के लिए EventTarget
बनाया गया था, जो प्रोटोटाइप के फ़ेज़ से आगे नहीं बढ़ सका. इस डेड कोड को हटाया जा रहा है और इस वजह से, navigator.storage
अब EventTarget
को एक्सटेंड नहीं करेगा.
प्रीफ़िक्स किए गए HTMLVideoElement
फ़ुलस्क्रीन एपीआई हटाएं
प्रीफ़िक्स किए गए HTMLVideoElement फ़ुल-स्क्रीन एपीआई, Chrome पर काम नहीं करते
इन्हें Element.requestFullscreen()
एपीआई से बदल दिया गया था. इसे पहली बार 2018 में, Chrome 71 में बिना प्रीफ़िक्स के शिप किया गया था. साल 2024 तक, ज़्यादातर ब्राउज़र में, बिना प्रीफ़िक्स वाले एपीआई के लिए, कुछ सालों से सहायता उपलब्ध है.
Chrome 132 में, HTMLVideoElement
से ये चीज़ें हटा दी गई हैं:
webkitSupportsFullscreen
एट्रिब्यूट.webkitDisplayingFullscreen
एट्रिब्यूट.webkitEnterFullscreen()
तरीका.webkitExitFullscreen()
तरीका. फ़ुलस्क्रीन में "S" के कैपिटल लेटर में अंतर देखें.webkitEnterFullScreen()
तरीका.webkitExitFullScreen()
तरीका.
ये तरीके अब सिर्फ़ नए एपीआई के लिए दूसरे नाम हैं. पिछले कुछ सालों में, इनका इस्तेमाल लगातार कम हो रहा है.