Chrome 138

स्टेबल वर्शन रिलीज़ होने की तारीख: 24 जून, 2025

अगर कुछ और नहीं बताया गया है, तो ये बदलाव Android, ChromeOS, Linux, macOS, और Windows के लिए, Chrome 138 के स्टेबल चैनल की रिलीज़ पर लागू होते हैं.

सीएसएस और यूज़र इंटरफ़ेस (यूआई)

साइन से जुड़े फ़ंक्शन abs() और sign(), अपने आर्ग्युमेंट के साइन से जुड़े अलग-अलग फ़ंक्शन का हिसाब लगाते हैं.

abs(A) फ़ंक्शन में एक कैलकुलेशन A होता है. यह A की एब्सोल्यूट वैल्यू को, इनपुट के टाइप के हिसाब से दिखाता है: अगर A की संख्यात्मक वैल्यू धनात्मक या 0⁺ है, तो फिर से सिर्फ़ A दिखाया जाता है. अगर ऐसा नहीं है, तो -1 * A दिखाया जाता है.

sign(A) फ़ंक्शन में एक कैलकुलेशन A होता है. अगर A की संख्या वाली वैल्यू नेगेटिव है, तो यह -1 दिखाता है. अगर A की संख्या वाली वैल्यू पॉज़िटिव है, तो यह +1 दिखाता है. अगर A की संख्या वाली वैल्यू 0⁺ है, तो यह 0⁺ दिखाता है. अगर A की संख्या वाली वैल्यू 0⁻ है, तो यह 0⁻ दिखाता है. रिटर्न टाइप <number> होता है, जो इनपुट कैलकुलेशन के टाइप के हिसाब से होता है.

MDN दस्तावेज़:abs() | बग को ट्रैक करने के लिए #40253181 | ChromeStatus.com पर मौजूद एंट्री | स्पेसिफ़िकेशन

इंटरपोलेशन प्रोग्रेस फ़ंक्शन नोटेशन: सीएसएस progress() फ़ंक्शन

progress() फ़ंक्शनल नोटेशन, <number> वैल्यू दिखाता है. यह वैल्यू, दो अन्य कैलकुलेशन (प्रगति की शुरुआत की वैल्यू और प्रगति की आखिरी वैल्यू) के बीच, एक कैलकुलेशन (प्रगति की वैल्यू) की पोज़िशन दिखाती है. progress() फ़ंक्शन एक मैथ फ़ंक्शन है.

बग को ट्रैक करने के लिए #40944203 | ChromeStatus.com पर मौजूद एंट्री | स्पेसिफ़िकेशन

सीएसएस sibling-index() और sibling-count()

sibling-index() और sibling-count() फ़ंक्शन का इस्तेमाल, सीएसएस प्रॉपर्टी की वैल्यू में पूर्णांक के तौर पर किया जा सकता है. इससे, एलिमेंट को उनके भाई-बहनों की स्थिति या उनकी कुल संख्या के आधार पर स्टाइल किया जा सकता है. इन फ़ंक्शन का इस्तेमाल, सीधे तौर पर पूर्णांक वैल्यू के तौर पर किया जा सकता है. हालांकि, calc() एक्सप्रेशन में इनका इस्तेमाल करना ज़्यादा दिलचस्प होता है.

बग को ट्रैक करने के लिए #40282719 | ChromeStatus.com पर मौजूद एंट्री | स्पेसिफ़िकेशन

सीएसएस stretch साइज़िंग कीवर्ड

सीएसएस साइज़िंग प्रॉपर्टी (उदाहरण के लिए, width और height) के लिए एक कीवर्ड, जिसकी मदद से एलिमेंट को अपने ब्लॉक के उपलब्ध स्पेस को पूरी तरह से भरने के लिए बड़ा किया जा सकता है. यह '100%' के जैसे ही है. हालांकि, इससे एलिमेंट का साइज़, box-sizing से दिखाए गए बॉक्स के बजाय, एलिमेंट के मार्जिन बॉक्स पर लागू होता है. इस कीवर्ड का इस्तेमाल करने से, एलिमेंट ज़्यादा से ज़्यादा बड़ा होने के साथ-साथ अपने मार्जिन को भी बनाए रखता है. -webkit-fill-available का ऐसा वर्शन जिसमें कोई प्रीफ़िक्स न हो.

बग को ट्रैक करने के लिए #41253915 | ChromeStatus.com पर मौजूद एंट्री | स्पेसिफ़िकेशन

ओएस-लेवल के फ़ॉन्ट स्केल के लिए सीएसएस एनवायरमेंट वैरिएबल

यह सीएसएस को उपयोगकर्ता के पसंदीदा फ़ॉन्ट स्केल के बारे में बताता है. इसके बिना, किसी पेज के लिए यह पता लगाना मुश्किल होता है कि उपयोगकर्ता ने ऑपरेटिंग सिस्टम की सेटिंग का इस्तेमाल करके, अपने पसंदीदा फ़ॉन्ट का साइज़ बदला है या नहीं. सीएसएस एनवायरमेंट वैरिएबल से, उपयोगकर्ता के चुने गए स्केल की जानकारी मिलेगी.

बग को ट्रैक करने के लिए #397737223 | ChromeStatus.com पर मौजूद एंट्री | स्पेसिफ़िकेशन

डिवाइस

Android डिवाइस पर ब्लूटूथ की मदद से वेब सीरियल चलाना

इस सुविधा की मदद से, वेब पेज और वेब ऐप्लिकेशन, Android डिवाइसों पर ब्लूटूथ की मदद से सीरियल पोर्ट से कनेक्ट हो सकते हैं.

Android पर Chrome, अब ब्लूटूथ RFCOMM के ज़रिए Web Serial API के साथ काम करता है. अन्य प्लैटफ़ॉर्म पर मौजूद एंटरप्राइज़ नीतियां (DefaultSerialGuardSetting, SerialAllowAllPortsForUrls, SerialAllowUsbDevicesForUrls, SerialAskForUrls, और SerialBlockedForUrls), Android के लिए future_on स्टेटस में चालू होती हैं. सुविधा चालू होने के बाद, SerialAllowUsbDevicesForUrls को छोड़कर सभी नीतियां चालू हो जाएंगी. SerialAllowUsbDevicesForUrls को आने वाले समय में लॉन्च किया जाएगा. इसके लिए, ज़रूरी है कि Android, सिस्टम लेवल पर वायर वाले सीरियल पोर्ट के साथ काम करे.

बग को ट्रैक करने के लिए #375245353 | ChromeStatus.com पर मौजूद एंट्री | स्पेसिफ़िकेशन

Viewport Segments Enumeration API

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

बग को ट्रैक करने के लिए #1039050 | ChromeStatus.com पर मौजूद एंट्री | स्पेसिफ़िकेशन

JavaScript

QuotaExceededError को DOMException से मिले इंटरफ़ेस में अपडेट करना

पहले, जब वेब प्लैटफ़ॉर्म आपको यह बताना चाहता था कि आपने कोटा पार कर लिया है, तो वह DOMException का इस्तेमाल करता था. साथ ही, name प्रॉपर्टी को QuotaExceededError पर सेट करता था. हालांकि, इसमें अतिरिक्त जानकारी शामिल नहीं की जा सकती.

इसमें, पहले से मौजूद DOMException नामों की सूची से "QuotaExceededError" को हटाने का सुझाव दिया गया है. इसके बजाय, पहले से मौजूद DOMException की सूची से क्लास का नाम QuotaExceededError बनाया गया है. साथ ही, इसमें वैकल्पिक प्रॉपर्टी quota और requested भी हैं. हमारा सुझाव है कि स्पेसिफ़िकेशन के उन सभी इंस्टेंस को अपग्रेड किया जाए जिनसे "QuotaExceededError" DOMException मिलते हैं. इसके बजाय, उनसे QuotaExceededError मिलें. फ़िलहाल, इस तरह के स्पेसिफ़िकेशन में quota और requested प्रॉपर्टी की डिफ़ॉल्ट वैल्यू null ही रहेगी. हालांकि, अगर यह डेटा उनके इस्तेमाल के उदाहरण के लिए काम का है और निजता से जुड़ी कोई समस्या नहीं है, तो वे इस डेटा को शामिल करने के लिए अपग्रेड कर सकते हैं.

ChromeStatus.com पर मौजूद जानकारी | स्पेसिफ़िकेशन

वेब एपीआई

Translator API

वेब पेजों पर भाषा के अनुवाद की सुविधा देने वाला JavaScript API. ब्राउज़र, अपने उपयोगकर्ताओं को भाषा के अनुवाद की सुविधा दे रहे हैं. अनुवाद की ऐसी सुविधाएं, वेब डेवलपर के लिए भी मददगार हो सकती हैं. ऐसा तब होता है, जब ब्राउज़र में पहले से मौजूद अनुवाद करने की सुविधा काम न करे. मॉडल डाउनलोड करने की सुविधा को बंद करने के लिए, एंटरप्राइज़ नीति (GenAILocalFoundationalModelSettings) उपलब्ध है. इससे यह एपीआई उपलब्ध नहीं होगा.

MDN दस्तावेज़ | बग को ट्रैक करने के लिए #322229993 | ChromeStatus.com पर मौजूद एंट्री | स्पेसिफ़िकेशन

Language Detector API

टेक्स्ट की भाषा का पता लगाने के लिए, कॉन्फ़िडेंस लेवल के साथ JavaScript API.

अनुवाद के लिए, भाषा की पहचान करना एक अहम हिस्सा है. इसे अनुवाद के साथ जोड़ा जा सकता है. उदाहरण के लिए, उपयोगकर्ता के इनपुट को किसी ऐसी भाषा में लेना जिसे आप न जानते हों और फिर उसे किसी खास टारगेट भाषा में अनुवाद करना. आज के ब्राउज़र में अक्सर, भाषा की पहचान करने की सुविधाएं पहले से मौजूद होती हैं. हम वेब डेवलपर को JavaScript API के ज़रिए यह सुविधा देना चाहते हैं, ताकि अनुवाद एपीआई के साथ-साथ यह सुविधा भी काम कर सके. मॉडल डाउनलोड करने की सुविधा को बंद करने के लिए, एंटरप्राइज़ नीति (GenAILocalFoundationalModelSettings) उपलब्ध है. इस नीति की वजह से, यह एपीआई उपलब्ध नहीं होगा.

MDN दस्तावेज़ | ChromeStatus.com पर मौजूद जानकारी | स्पेसिफ़िकेशन

Summarizer API

Summarizer API एक JavaScript API है. इसका इस्तेमाल, इनपुट टेक्स्ट की खास जानकारी पाने के लिए किया जाता है. इसमें एआई भाषा मॉडल का इस्तेमाल किया जाता है. ब्राउज़र और ऑपरेटिंग सिस्टम के लिए, भाषा मॉडल का ऐक्सेस पाना ज़रूरी होता जा रहा है. इस पहले से मौजूद मॉडल को उपलब्ध कराने से, हम हर वेबसाइट को अपने कई-गीगाबाइट के भाषा मॉडल को डाउनलोड करने या तीसरे पक्ष के एपीआई को इनपुट टेक्स्ट भेजने से बचाते हैं. खास तौर पर, summarizer API, भाषा मॉडल के साथ इंटरफ़ेस करने के लिए एक हाई-लेवल एपीआई दिखाता है. इससे, अलग-अलग इस्तेमाल के उदाहरणों (GitHub) के लिए इनपुट की खास जानकारी इस तरह मिलती है कि वह किसी खास भाषा मॉडल पर निर्भर न हो. मॉडल डाउनलोड करने की सुविधा को बंद करने के लिए, एंटरप्राइज़ नीति (GenAILocalFoundationalModelSettings) उपलब्ध है. इससे यह एपीआई उपलब्ध नहीं होगा.

MDN दस्तावेज़ | बग को ट्रैक करने के लिए #351744634 | ChromeStatus.com पर मौजूद एंट्री | स्पेसिफ़िकेशन

सीरियलाइज़ेशन के दौरान, एट्रिब्यूट में < और > को एस्केप करना

सीरियलाइज़ेशन के दौरान, एट्रिब्यूट की वैल्यू में < और > को एस्केप करें.

इससे, म्यूटेशन एक्सएसएस अटैक का जोखिम कम हो जाता है. ये अटैक तब होते हैं, जब किसी एट्रिब्यूट की वैल्यू को सीरियलाइज़ और फिर से पार्स करने के बाद, स्टार्ट टैग टोकन के तौर पर समझा जाता है.

ChromeStatus.com पर मौजूद जानकारी | स्पेसिफ़िकेशन

Crash Reporting API: is_top_level और visibility_state

यह सुविधा, क्रैश रिपोर्टिंग एपीआई बॉडी में is_top_level और visibility_state स्ट्रिंग फ़ील्ड जोड़ती है. ये फ़ील्ड, क्रैश रिपोर्ट के लिए डिफ़ॉल्ट रिपोर्टिंग एंडपॉइंट पर भेजे जाते हैं.

ChromeStatus.com पर मौजूद जानकारी | स्पेसिफ़िकेशन

फिर से सदस्यता लेने पर pushsubscriptionchange इवेंट ट्रिगर करना

जब किसी ऐसे ऑरिजिन के लिए सूचना पाने की अनुमति फिर से दी जाती है जिसकी पुश सदस्यता पहले मौजूद थी, लेकिन अनुमति में बदलाव (अनुमति देने से अस्वीकार करने/डिफ़ॉल्ट पर सेट करने) की वजह से रद्द कर दी गई थी, तो सर्विस वर्कर में pushsubscriptionchange इवेंट ट्रिगर करें.

इवेंट, oldSubscription और newSubscription के खाली वैल्यू के साथ ट्रिगर होगा.

बग को ट्रैक करने के लिए #407523313 | ChromeStatus.com पर मौजूद एंट्री | स्पेसिफ़िकेशन

मल्टीमीडिया

WebCodecs में वीडियो फ़्रेम ओरिएंटेशन मेटाडेटा के लिए सहायता जोड़ना

WebCodecs में, वीडियो से जुड़े अलग-अलग इंटरफ़ेस में rotation: int और flip: bool वैल्यू जोड़ी गई हैं, ताकि डेवलपर ऐसे फ़्रेम सोर्स के साथ काम कर सकें जिनका ओरिएंटेशन (उदाहरण के लिए, Android कैमरे, कुछ मीडिया) हो.

VideoFrame इंटरफ़ेस की मदद से, VideoFrames को मनमुताबिक घुमाया और फ़्लिप किया जा सकता है. साथ ही, VideoFrame ऑब्जेक्ट पर इस जानकारी के लिए ऐक्सेस करने वाले एलिमेंट भी जोड़े जा सकते हैं.

VideoDecoderConfig ऑब्जेक्ट में रोटेशन और फ़्लिप फ़ील्ड जुड़ जाते हैं. ये फ़ील्ड, डिकोड किए गए VideoFrame ऑब्जेक्ट पर अपने-आप दिखते हैं.

VideoEncoder क्लास में, encode() से VideoDecoderConfig में रोटेशन और फ़्लिप की जानकारी भेजने के लिए, EncodedVideoChunkMetadata के हिस्से के तौर पर उत्सर्जित किए गए तरीके मिलते हैं. अगर encode() को अलग-अलग ओरिएंटेशन वाले फ़्रेम के साथ कॉल किया जाता है, तो एक गैर-घातक अपवाद फेंका जाएगा. configure() का इस्तेमाल, अनुमति वाले ओरिएंटेशन को रीसेट करने के लिए किया जा सकता है.

बग को ट्रैक करने के लिए #40243431 | ChromeStatus.com पर मौजूद एंट्री | स्पेसिफ़िकेशन

परफ़ॉर्मेंस

Clear-Site-Dataहेडर में prefetchCache और prerenderCache जोड़ें

Clear-Site-Data हेडर के लिए दो नई वैल्यू जोड़ी गई हैं. इनसे डेवलपर को प्री-रेंडर और प्रीफ़ेच कैश मेमोरी को मिटाने में मदद मिलती है: "prefetchCache" और "prerenderCache".

बग को ट्रैक करने के लिए #398149359 | ChromeStatus.com पर मौजूद एंट्री | स्पेसिफ़िकेशन

अनुमान लगाने के नियम: target_hint फ़ील्ड

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

इस फ़ील्ड से, नेविगेट किए जा सकने वाले उस टारगेट के बारे में जानकारी मिलती है जहां पहले से रेंडर किया गया पेज चालू किया जाएगा. उदाहरण के लिए, जब _blank को संकेत के तौर पर बताया जाता है, तो पहले से रेंडर किए गए पेज को, नेविगेट करने के लिए खोले गए विंडो.open() के लिए चालू किया जा सकता है. फ़ील्ड का, पेज को पहले से लोड करने पर कोई असर नहीं पड़ता.

स्पेसिफ़िकेशन के मुताबिक, इस फ़ील्ड में वैल्यू के तौर पर, नेविगेट किए जा सकने वाले टारगेट के नाम या कीवर्ड के तौर पर मान्य कोई भी स्ट्रिंग डाली जा सकती है. हालांकि, इस लॉन्च में सिर्फ़ "_self" या "_blank" में से किसी एक स्ट्रिंग का इस्तेमाल किया जा सकता है. अगर कोई हिंट नहीं दिया गया है, तो इसे वैसे ही माना जाता है जैसे कि "_self" दिया गया हो.

बग को ट्रैक करने के लिए #40234240 | ChromeStatus.com पर मौजूद एंट्री | स्पेसिफ़िकेशन

सुरक्षा

स्क्रिप्ट के लिए इंटिग्रिटी नीति

सब-सोर्स इंटिग्रिटी (एसआरआई) की मदद से, डेवलपर यह पक्का कर सकते हैं कि वे जो ऐसेट लोड करना चाहते हैं वे असल में वही ऐसेट हैं. हालांकि, फ़िलहाल डेवलपर के पास यह पक्का करने का कोई तरीका नहीं है कि उनकी सभी स्क्रिप्ट की पुष्टि एसआरआई का इस्तेमाल करके की गई है या नहीं.

Integrity-Policy हेडर की मदद से, डेवलपर यह बता सकते हैं कि किसी खास टाइप के हर संसाधन की पूरी जांच की जानी चाहिए. अगर इस तरह के किसी संसाधन को इंटिग्रिटी मेटाडेटा के बिना लोड करने की कोशिश की जाती है, तो वह कोशिश पूरी नहीं होगी और उल्लंघन की रिपोर्ट ट्रिगर हो जाएगी.

ChromeStatus.com पर मौजूद जानकारी | स्पेसिफ़िकेशन

सर्विस वर्कर

अनुमान लगाने के नियमों के प्रीफ़ेच के लिए, ServiceWorker की सहायता

इस सुविधा से, ServiceWorker से कंट्रोल किए जाने वाले प्रीफ़ेच चालू होते हैं. इसका मतलब है कि Service Worker से कंट्रोल किए जाने वाले यूआरएल के लिए, अनुमान के आधार पर नियमों के हिसाब से प्रीफ़ेच किया जाता है. पहले, कंट्रोल करने वाले सर्विस वर्कर का पता चलने पर प्रीफ़ेच रद्द कर दिया जाता था. इसलिए, प्रीफ़ेच टारगेट पर बाद में नेविगेट करने के लिए, नॉन-प्रीफ़ेच पाथ का इस्तेमाल किया जाता था. इस सुविधा की मदद से, प्रीफ़ेच अनुरोध को सर्विस वर्कर के फ़ेच हैंडलर से भेजा जा सकेगा. साथ ही, सर्विस वर्कर के इंटरसेप्शन का जवाब, प्रीफ़ेच कैश मेमोरी में कैश मेमोरी में सेव किया जाएगा. इससे, प्रीफ़ेच कैश मेमोरी से बाद में नेविगेशन किया जा सकेगा. इस सुविधा को कंट्रोल करने के लिए, एंटरप्राइज़ नीति PrefetchWithServiceWorkerEnabled का इस्तेमाल करें.

बग को ट्रैक करने के लिए #40947546 | ChromeStatus.com पर मौजूद एंट्री | स्पेसिफ़िकेशन

बंद की गई सुविधाएं और हटाए गए आइटम

WebGPU: GPUAdapter isFallbackAdapter एट्रिब्यूट का इस्तेमाल बंद करना

WebGPU से GPUAdapter isFallbackAdapter बूलियन एट्रिब्यूट को हटा दिया गया है. यह एट्रिब्यूट, GPUAdapterInfo isFallbackAdapter बूलियन एट्रिब्यूट के साथ काम नहीं करता.

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

बग को ट्रैक करने के लिए #409259074 | ChromeStatus.com पर मौजूद एंट्री | स्पेसिफ़िकेशन

मीडिया सोर्स एक्सटेंशन के लिए, एसिंक्रोनस रेंज हटाने की सुविधा बंद करना

मीडिया सोर्स स्टैंडर्ड में, एसिंक्रोनस रेंज हटाने के व्यवहार को अस्पष्ट तरीके से तय करने की अनुमति देने के लिए, बहुत पहले बदलाव किया गया था:

  • SourceBuffer.abort() अब SourceBuffer.remove() ऑपरेशन को बंद नहीं करता.
  • MediaSource.duration सेटिंग की मदद से, अब बफ़र किए गए मौजूदा मीडिया को छोटा नहीं किया जा सकता.

अब इन दोनों मामलों में अपवाद दिखाए जाएंगे.

Safari और Firefox में यह सुविधा लंबे समय से उपलब्ध है. Chromium, ऐसा करने वाला आखिरी ब्राउज़र है. काउंटर का इस्तेमाल करने से पता चलता है कि पेज लोड होने के करीब 0.001% से 0.005% में, अब काम न करने वाले बिहेवियर का इस्तेमाल हुआ. अगर किसी साइट को यह समस्या आती है, तो हो सकता है कि वीडियो प्ले न हो पाए.

abort() का इस्तेमाल करके, कॉन्टेंट हटाने की प्रोसेस रद्द करने की सुविधा का इस्तेमाल बढ़ रहा है. इसलिए, इस सुविधा के काम न करने की समस्या को ठीक करना ज़रूरी है, ताकि इस सुविधा का इस्तेमाल करने में आने वाली समस्याओं की संख्या बढ़ने से पहले ही इसे ठीक किया जा सके.

बग को ट्रैक करने के लिए #40474569 | ChromeStatus.com पर मौजूद एंट्री | स्पेसिफ़िकेशन