Chrome 147

स्टेबल वर्शन के रिलीज़ होने की तारीख: 7 अप्रैल, 2026

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

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

व्यू ट्रांज़िशन को एलिमेंट के स्कोप में रखना

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

ट्रैकिंग बग #394052227 | ChromeStatus.com एंट्री | स्पेसिफ़िकेशन

सीएसएस contrast-color()

इस फ़ंक्शन से, सुलभता के लिए कंट्रास्ट की ज़रूरी शर्तों को पूरा करने में मदद मिलती है.

सीएसएस में, contrast-color() फ़ंक्शन का इस्तेमाल किसी भी ऐसी जगह पर किया जा सकता है जहां रंग की वैल्यू की ज़रूरत होती है. यह फ़ंक्शन, रंग की वैल्यू का आर्ग्युमेंट लेता है. इसके बाद, यह 'black' या 'white' में से कोई एक वैल्यू दिखाता है. यह इस बात पर निर्भर करता है कि रंग के आर्ग्युमेंट के हिसाब से, कौनसी वैल्यू सबसे ज़्यादा कंट्रास्ट देती है.

ट्रैकिंग बग #40142548 | ChromeStatus.com एंट्री | स्पेसिफ़िकेशन

टाइमलाइन के लिए नाम वाली रेंज scroll

इस सुविधा की मदद से, व्यू टाइमलाइन के लिए तय की गई रेंज के सेट को बड़ा किया जा सकता है. इसके लिए, entry, exit, cover, और contain के मौजूदा सेट में scroll रेंज को जोड़ा जाता है.

ट्रैकिंग बग #41483848 | ChromeStatus.com एंट्री | स्पेसिफ़िकेशन

सीएसएस border-shape प्रॉपर्टी

सीएसएस की border-shape प्रॉपर्टी की मदद से, किसी भी आकार के नॉन-रेक्टेंगुलर बॉर्डर बनाए जा सकते हैं. उदाहरण के लिए, बहुभुज, वृत्त या shape().

border-shape, clip-path की तरह ही शेप स्वीकार करता है. हालांकि, यह बुनियादी तौर पर अलग है. border-shape, बॉर्डर की शेप तय करता है, उसे सजाता है, और सिर्फ़ अंदर के हिस्से को काटता है.

border-shape के दो वैरिएंट होते हैं: एक, किसी शेप को स्ट्रोक करता है और दूसरा, दो शेप के बीच में रंग भरता है.

ट्रैकिंग बग #370041145 | ChromeStatus.com एंट्री | स्पेसिफ़िकेशन

CSSPseudoElement इंटरफ़ेस

CSSPseudoElement इंटरफ़ेस, JavaScript में एक स्यूडो-एलिमेंट को दिखाता है.

CSSPseudoElement को Element.pseudo(type) से वापस कर दिया गया है. फ़िलहाल, type ::after, ::before या ::marker है. CSSPseudoElement एक प्रॉक्सी ऑब्जेक्ट है, जो स्यूडो-एलिमेंट के बारे में बताता है. स्यूडो-एलिमेंट के उलट, CSSPseudoElement हमेशा मौजूद होता है.

CSSPseudoElement में ये एट्रिब्यूट और तरीके शामिल हैं:

  • type एट्रिब्यूट एक स्ट्रिंग है, जो छद्म-तत्व के टाइप को दिखाता है.
  • element एट्रिब्यूट, स्यूडो-एलिमेंट का ओरिजनल एलिमेंट होता है.
  • parent एट्रिब्यूट, स्यूडो-एलिमेंट का ओरिजिनल एलिमेंट होता है. नेस्ट किए गए स्यूडो-एलिमेंट के लिए, यह Element या CSSPseudoElement होता है.
  • pseudo(type) तरीका, नेस्ट किए गए छद्म-तत्वों को वापस लाता है.

ट्रैकिंग बग #40639103 | ChromeStatus.com एंट्री | स्पेसिफ़िकेशन

इवेंट पर छद्म टारगेट

खास इवेंट में अब .pseudoTarget शामिल है. यह CSSPseudoElement (अगर इंटरैक्शन किसी छद्म-तत्व के साथ हुआ था) या null होता है.

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

इवेंट UIEvent, AnimationEvent, और TransitionEvent हैं.

mouseover, mouseout, mouseenter, mouseleave, और इनके pointer* वर्शन का इस्तेमाल अभी नहीं किया जा सकता.

ट्रैकिंग बग #40639103 | ChromeStatus.com एंट्री | स्पेसिफ़िकेशन

*-width और *-style प्रॉपर्टी को अलग करना

Chrome 147, border-width, outline-width, और column-rule-width प्रॉपर्टी के व्यवहार के लिए अपडेट किए गए सीएसएस स्पेसिफ़िकेशन के मुताबिक काम करता है. पहले, अगर border-style, outline-style या column-rule-style को none या hidden पर सेट किया गया था, तो इन प्रॉपर्टी की कैलकुलेट की गई चौड़ाई को 0px पर सेट कर दिया जाता था. भले ही, कोई भी वैल्यू दी गई हो.

इस बदलाव के बाद, border-width, outline-width, और column-rule-width की कैलकुलेट की गई वैल्यू हमेशा लेखक की तय की गई वैल्यू को दिखाती हैं. ये वैल्यू, *-style प्रॉपर्टी से अलग होती हैं. इसके अलावा, outline-width और column-rule-width के लिए हल की गई वैल्यू (getComputedStyle() से मिली वैल्यू) भी बताई गई वैल्यू को दिखाती हैं.

इस बदलाव के बाद, Chrome, Firefox और WebKit के साथ काम करेगा. इन ब्राउज़र में यह सुविधा पहले से ही उपलब्ध है.

ट्रैकिंग बग #393631108 | ChromeStatus.com एंट्री | स्पेक

SVG <textPath> एलिमेंट पर path एट्रिब्यूट के लिए सहायता

इस बदलाव से, SVG <textPath> एलिमेंट पर path एट्रिब्यूट इस्तेमाल किया जा सकेगा. इससे डेवलपर, SVG पाथ डेटा का इस्तेमाल करके, टेक्स्ट पाथ की ज्यामिति को इनलाइन तय कर सकते हैं. साथ ही, अलग से तय किए गए <path> एलिमेंट की ज़रूरत कम हो जाती है.

<textPath> एलिमेंट, टेक्स्ट पाथ की ज्यामिति को इन नियमों के हिसाब से तय करता है:

  1. अगर path और href, दोनों मौजूद हैं, तो ज्यामिति को path एट्रिब्यूट से हल किया जाता है.
  2. अगर सिर्फ़ path एट्रिब्यूट मौजूद है और उसे पार्स किया जा सकता है, तो इनलाइन पाथ की परिभाषा का इस्तेमाल किया जाता है.
  3. अगर path एट्रिब्यूट मौजूद नहीं है या पार्स नहीं हो पाता है और href एट्रिब्यूट दिया गया है, तो रेफ़र किए गए <path> एलिमेंट का इस्तेमाल फ़ॉलबैक के तौर पर किया जाता है.
  4. href फ़ंक्शन के मौजूदा तरीके में कोई बदलाव नहीं किया गया है.

यह SVG 2 स्पेसिफ़िकेशन में, <textPath> पर मौजूद path एट्रिब्यूट की परिभाषा के मुताबिक है. यह समस्या ठीक करने का तरीका, अन्य ब्राउज़र इंजन के साथ काम करता है. इससे इंटरऑपरेबिलिटी (दूसरे सिस्टम के साथ काम करना) और मानकों का पालन करने की सुविधा बेहतर होती है. ध्यान दें: <textPath> पर path और href, दोनों के बारे में बताने पर, अब path को प्राथमिकता दी जाएगी. ऐसा SVG 2 स्पेसिफ़िकेशन के मुताबिक किया जाएगा.

ट्रैकिंग बग #374010056 | ChromeStatus.com एंट्री | स्पेसिफ़िकेशन

डिवाइस

WebXR में प्लैन का पता लगाने की सुविधा

WebXR Plane Detection API की मदद से साइटें, उपयोगकर्ता के एनवायरमेंट में पता लगाए गए प्लैन का सेट वापस पा सकती हैं. इससे डेवलपर को कम काम करना पड़ता है. साथ ही, यह डेप्थ-सेंसिंग WebXR सुविधा से ज़्यादा बेहतर है. उदाहरण के लिए, अगर सिस्टम को दीवार की सीमाओं के बारे में पता है, तो ऑब्जेक्ट से ढके हुए प्लेन, जैसे कि दीवारों को अब भी पूरी तरह से दिखाया जा सकता है. डेप्थ मैप में दीवार दिखेगी, लेकिन उसके सामने मौजूद ऑब्जेक्ट की वजह से, दीवार का पूरा हिस्सा नहीं दिखेगा. इसके अलावा, जब डिवाइस को ऐसे लेबल के बारे में पता होता है और वे पहले से तय की गई कैटगरी में फ़िट होते हैं, तब सिमैंटिक लेबलिंग की जानकारी मिलती है. इससे दुनिया के बारे में बेहतर जानकारी मिलती है.

ट्रैकिंग बग #394636076 | ChromeStatus.com एंट्री | स्पेसिफ़िकेशन

DOM

JSON और स्टाइल मॉड्यूल टाइप को <link rel="modulepreload">डेस्टिनेशन के तौर पर इस्तेमाल करने की सुविधा जोड़ी गई है. <link rel="modulepreload"> सुविधा, Chromium में पहले से ही उपलब्ध है. इसके बारे में जानने के लिए, Chromestatus की सुविधा देखें. हालांकि, फ़िलहाल यह सुविधा सिर्फ़ स्क्रिप्ट जैसे मॉड्यूल स्क्रिप्ट को प्रीलोड करने की सुविधा देती है. इस सुविधा से, फ़ंक्शन से जुड़ी समस्या हल होती है. ऐसा इसलिए, क्योंकि JSON और CSS मॉड्यूल स्क्रिप्ट, Chromium में अन्य जगहों पर काम करती हैं, लेकिन <link rel="modulepreload"> डेस्टिनेशन के तौर पर नहीं. <link rel="modulepreload" as="style" href="..."> की मदद से स्टाइल मॉड्यूल और <link rel="modulepreload" as="json" href="..."> की मदद से JSON मॉड्यूल को प्रीलोड किया जा सकता है.

ट्रैकिंग बग #466888680 | ChromeStatus.com एंट्री | स्पेसिफ़िकेशन

XSLT के अलावा अन्य स्थितियों के लिए, Rust में एक्सएमएल पार्सिंग

यह उन स्थितियों के लिए Rust XML पार्सर को लागू करता है जहां XSLT प्रोसेसिंग की ज़रूरत नहीं होती.

Rust XML पार्सर, XML पार्सिंग में मेमोरी करप्शन की गड़बड़ियों को ठीक करके सुरक्षा को बेहतर बनाता है. यह libxml2 (C में लिखा गया) के इस्तेमाल को सुरक्षित विकल्प से बदल देता है.

हम XSLT की सुविधा बंद कर रहे हैं. इस प्रोसेस के जारी रहने के दौरान, उन स्थितियों में सुरक्षित Rust XML पार्सिंग का इस्तेमाल किया जा सकता है जहां XSLT की ज़रूरत नहीं होती.

ट्रैकिंग बग #466303347 | ChromeStatus.com एंट्री

ग्राफ़िक

WebXR लेयर

WebXR लेयर की मदद से, इमर्सिव कॉन्टेंट को ज़्यादा असरदार तरीके से बनाया जा सकता है.

यह नेटिव कलर, डेप्थ टेक्सचर, और टेक्सचर ऐरे के साथ-साथ, अलग-अलग लेयर टाइप के साथ भी काम करता है. इन लेयर टाइप को सिस्टम कंपोज़िटर मैनेज करता है, न कि JavaScript.

ट्रैकिंग बग #409255534 | ChromeStatus.com एंट्री | स्पेसिफ़िकेशन

JavaScript

Math.sumPrecise

यह कुकी, JavaScript में कई वैल्यू को जोड़ने के लिए, TC39 के सुझाव को लागू करती है.

एक ऐसा Math.sumPrecise तरीका जोड़ें जो इटरेट किए जा सकने वाले ऑब्जेक्ट को लेता है और नैव समेशन के मुकाबले ज़्यादा सटीक एल्गोरिदम का इस्तेमाल करके, इटरेट किए जा सकने वाले ऑब्जेक्ट में मौजूद वैल्यू का योग दिखाता है.

ट्रैकिंग बग #374310075 | ChromeStatus.com एंट्री | स्पेसिफ़िकेशन

नेटवर्क / कनेक्टिविटी

Request.isReloadNavigation एट्रिब्यूट

यह फ़ेच एपीआई के Request इंटरफ़ेस में, सिर्फ़ पढ़ने के लिए उपलब्ध बूलियन एट्रिब्यूट isReloadNavigation जोड़ता है. इस एट्रिब्यूट से पता चलता है कि मौजूदा नेविगेशन का अनुरोध, उपयोगकर्ता के ट्रिगर किए गए रीलोड के तौर पर शुरू किया गया था या नहीं. उदाहरण के लिए, रीफ़्रेश करें बटन, location.reload() या history.go(0) का इस्तेमाल करना. यह सिग्नल मुख्य रूप से, सर्विस वर्कर के FetchEvent में मौजूद Request ऑब्जेक्ट पर दिखता है.

ट्रैकिंग बग #40487194 | ChromeStatus.com एंट्री | स्पेसिफ़िकेशन

परफ़ॉर्मेंस

Device Memory API की सीमाएं अपडेट करना

Device Memory API के लिए, संभावित वैल्यू के नए सेट से जुड़े अपडेट:

  • Android: 1, 2, 4, 8
  • अन्य: 2, 4, 8, 16, 32 ये वैल्यू, पुरानी वैल्यू 0.25, 0.5, 1, 2, 4, और 8 की जगह इस्तेमाल की जाती हैं. ये वैल्यू अब पुरानी हो चुकी हैं.

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

ट्रैकिंग बग #454354290 | ChromeStatus.com एंट्री | स्पेसिफ़िकेशन

लोकल नेटवर्क ऐक्सेस (एलएनए)

एलएनए के बारे में ज़्यादा जानने के लिए, लोकल नेटवर्क का ऐक्सेस लेख पढ़ें.

सर्विस वर्कर पर लोकल नेटवर्क ऐक्सेस से जुड़ी पाबंदियां WindowClient.navigate()

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

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

यह सिर्फ़ तब लागू होता है, जब नेविगेट किया जा रहा WindowClient कोई सबफ़्रेम हो. फ़िलहाल, Chrome मुख्य फ़्रेम नेविगेशन पर एलएनए से जुड़ी कोई पाबंदी लागू नहीं करता.

ChromeStatus.com एंट्री

WebTransport के लिए, लोकल नेटवर्क के ऐक्सेस से जुड़ी पाबंदियां

यह कुकी, WebTransport का इस्तेमाल करके उपयोगकर्ता के लोकल नेटवर्क से अनुरोध करने की सुविधा को सीमित करती है. WebTransport, अनुमति के लिए प्रॉम्प्ट के पीछे छिपा होता है.

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

यह अनुमति सिर्फ़ सुरक्षित कॉन्टेक्स्ट के लिए है.

ट्रैकिंग बग #421216834 | ChromeStatus.com एंट्री | स्पेसिफ़िकेशन

WebSockets के लिए, लोकल नेटवर्क के ऐक्सेस से जुड़ी पाबंदियां

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

एलएनए की सभी मौजूदा एंटरप्राइज़ नीतियां, एलएनए WebSockets पर अब भी लागू होती हैं. जैसे, LocalNetworkAccessAllowedForUrls, LocalNetworkAccessBlockedForUrls, और LocalNetworkAccessRestrictionsTemporaryOptOut.

ट्रैकिंग बग #421156866 | ChromeStatus.com एंट्री | स्पेक

आइसोलेटेड वेब ऐप्लिकेशन (आईडब्ल्यूए)

Web Printing API

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

यह एपीआई सिर्फ़ आइसोलेटेड वेब ऐप्लिकेशन के लिए है और आइसोलेटेड वेब ऐप्लिकेशन की प्रोसेस को फ़ॉलो करता है.

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

ट्रैकिंग बग #302505962 | ChromeStatus.com एंट्री | स्पेसिफ़िकेशन

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

क्रॉस-ऑरिजिन iframe को पहले से रेंडर करना

यह कुकी, ऑप्ट-इन रिस्पॉन्स हेडर का इस्तेमाल करके क्रॉस-ऑरिजिन iframe को पहले से रेंडर करती है.

अगर टॉप-लेवल फ़्रेम के एचटीटीपी रिस्पॉन्स में Supports-Loading-Mode: prerender-cross-origin-frames शामिल है, तो ब्राउज़र अब सभी क्रॉस-ऑरिजिन फ़्रेम को पहले से रेंडर करते हैं.

Origin Trial | Tracking bug #440387014 | ChromeStatus.com entry | Spec

ऑटोमैटिक भरने की सुविधा वाला इवेंट

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

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

ओरिजिन ट्रायल | ट्रैकिंग बग #466333215 | ChromeStatus.com एंट्री | स्पेसिफ़िकेशन

WebNN

WebNN की मदद से, वेब ऐप्लिकेशन और फ़्रेमवर्क, मशीन लर्निंग के लिए नेटिव ऑपरेटिंग सिस्टम की सेवाओं का फ़ायदा ले सकते हैं. साथ ही, उपयोगकर्ता के कंप्यूटर पर उपलब्ध हार्डवेयर की क्षमताओं का भी फ़ायदा ले सकते हैं. इससे वेब पर एक जैसे, असरदार, और भरोसेमंद एमएल अनुभव लागू करने में मदद मिलती है.

Origin Trial | Tracking bug #40206287 | ChromeStatus.com entry | Spec

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

SVG बनाने के लिए, इनलाइन XSLT हटाएं

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

उदाहरण के लिए, gist.github.com पर जाएं.

यह XSLT प्रोसेसिंग का एक खास मामला है. हाल ही में पेश किए गए इस्तेमाल के काउंटर XSLPIInSVGImage (UseCounter ID 5777) और XSLPIInSVGStandaloneDoc (UseCounter ID 5778) के मुताबिक, हम इसे वेब पर मौजूद नहीं मानते. हम XSLT को पूरी तरह से बंद करने से पहले, इसे बंद करना और हटाना चाहते हैं.

इसे Rust पर आधारित एक्सएमएल पार्सर की एक्सपेरिमेंटल टेस्टिंग के साथ सिंक करके रोल आउट किया जाता है. यह सुविधा, Chrome 147 में तुरंत 100% पर डिप्लॉय नहीं होगी.

Tracking bug #482223009 | ChromeStatus.com entry