Chrome 137 बीटा

पब्लिश होने की तारीख: 1 मई, 2025

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

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

इस वर्शन में, सीएसएस और यूज़र इंटरफ़ेस (यूआई) की सात नई सुविधाएं जोड़ी गई हैं.

if() फ़ंक्शन

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

div {
      color: var(--color);
      background-color: if(style(--color: white): black; else: white);
  }
  .dark {
      --color: black;
  }
  .light {
      --color: white;
  }
<div class="dark">dark</div>
<div class="light">light</div>

reading-flow और reading-order प्रॉपर्टी

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

  • normal
  • flex-visual
  • flex-flow
  • grid-rows
  • grid-columns
  • grid-order
  • source-order

reading-order सीएसएस प्रॉपर्टी की मदद से, रीडिंग फ़्लो कंटेनर में क्रम को मैन्युअल तरीके से बदला जा सकता है. यह एक पूर्णांक है, जिसकी डिफ़ॉल्ट वैल्यू 0 होती है.

ज़्यादा जानने के लिए, लॉजिकल सीक्वेंशियल फ़ोकस नेविगेशन के लिए सीएसएस reading-flow का इस्तेमाल करना लेख पढ़ें. साथ ही, रीडिंग फ़्लो के कुछ उदाहरण देखें.

offset-path: shape()

shape() फ़ंक्शन, clip-path में पहले से काम करता है. इससे, रिस्पॉन्सिव क्लिपिंग की जा सकती है. offset-path के लिए भी इसे चालू करने से, एक छोटी सी समस्या हल हो जाती है. इस समस्या में, इस प्रॉपर्टी के लिए एक ही तरह के आकार का इस्तेमाल किया जा सकता है.

SVGSVGElement पर transform एट्रिब्यूट के लिए सहायता जोड़ना

इस सुविधा की मदद से, ट्रांसफ़ॉर्मेशन प्रॉपर्टी—जैसे कि स्केलिंग, रोटेशन, ट्रांसलेशन, और स्क्यूइंग—को सीधे तौर पर <svg> रूट एलिमेंट पर लागू किया जा सकता है. इसके लिए, इसके transform एट्रिब्यूट का इस्तेमाल किया जाता है. इस सुधार की मदद से, पूरे SVG कोऑर्डिनेट सिस्टम या इसके कॉन्टेंट को एक साथ मैनेज किया जा सकता है. इससे, डाइनैमिक, रिस्पॉन्सिव, और इंटरैक्टिव वेक्टर ग्राफ़िक बनाने में ज़्यादा आसानी होती है. इस एट्रिब्यूट के लिए सहायता जोड़ने से, SVG एलिमेंट को बदला जा सकता है. इसके लिए, रैपर एलिमेंट या सीएसएस के जटिल वर्कअराउंड की ज़रूरत नहीं होती. इससे, स्केलेबल और ऐनिमेटेड वेब ग्राफ़िक बनाने की प्रोसेस आसान हो जाती है.

फ़्रैगमेंट को छोड़कर, <use> को किसी बाहरी दस्तावेज़ के रूट एलिमेंट को रेफ़र करने की अनुमति देना

इस सुविधा में, हम SVG <use> एलिमेंट को आसान बना रहे हैं. इसके लिए, रेफ़रंस से जुड़ी ज़रूरी शर्तों में ढील दी जा रही है. फ़िलहाल, आपको SVG दस्तावेज़ में फ़्रैगमेंट को साफ़ तौर पर रेफ़र करना होगा. अगर कोई फ़्रैगमेंट आईडी नहीं दिया जाता है, तो <use> टारगेट को हल नहीं कर पाएगा. साथ ही, कुछ भी रेंडर या रेफ़र नहीं किया जाएगा.

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

accent-color प्रॉपर्टी के लिए, सिस्टम एक्सेंट कलर की सुविधा को Windows और ChromeOS पर भी उपलब्ध कराना

इससे, फ़ॉर्म एलिमेंट के लिए ऑपरेटिंग सिस्टम के एक्सेंट कलर का इस्तेमाल किया जा सकता है. accent-color सीएसएस प्रॉपर्टी का इस्तेमाल करके, यह पक्का किया जा सकता है कि चेकबॉक्स, रेडियो बटन, और प्रोग्रेस बार जैसे फ़ॉर्म एलिमेंट, उपयोगकर्ता के ऑपरेटिंग सिस्टम से तय किए गए एक्सेंट कलर को अपने-आप अपना लें. यह सुविधा, साल 2021 से macOS पर उपलब्ध है. अब यह Windows और ChromeOS पर भी उपलब्ध है.

view-transition-name: match-element

view-transition प्रॉपर्टी के लिए, match-element वैल्यू, एलिमेंट की पहचान के आधार पर एक यूनीक आईडी जनरेट करती है. यह आईडी, इस एलिमेंट के लिए एक ही रहता है. इसका इस्तेमाल, सिंगल पेज ऐप्लिकेशन के उन मामलों में किया जाता है जहां एलिमेंट को इधर-उधर ले जाया जा रहा है और आपको इसे व्यू ट्रांज़िशन के साथ ऐनिमेट करना है.

वेब एपीआई

'पेमेंट' WebAuthn क्रेडेंशियल बनाने के लिए, गड़बड़ी के टाइप को अलाइन करना

payment क्रेडेंशियल के लिए, WebAuthn क्रेडेंशियल बनाने के दौरान होने वाली गड़बड़ी के टाइप को ठीक करता है. स्पेसिफ़िकेशन में गड़बड़ी की वजह से, उपयोगकर्ता की गतिविधि के बिना, क्रॉस-ऑरिजिन iframe में payment क्रेडेंशियल बनाने पर, NotAllowedError के बजाय SecurityError गड़बड़ी होती थी. NotAllowedError गड़बड़ी, पेमेंट के अलावा अन्य क्रेडेंशियल के लिए होती है. यह एक बड़ा बदलाव है. इस बदलाव का असर, उस कोड पर पड़ेगा जो पहले गड़बड़ी के टाइप का पता लगाता था. जैसे, e instanceof SecurityError. क्रेडेंशियल बनाने के दौरान होने वाली गड़बड़ियों को सामान्य तौर पर हैंडल करने वाला कोड, जैसे कि catch (e), सही तरीके से काम करता रहेगा.

BLOB यूआरएल का पार्टिशन करना: फ़ेचिंग/नेविगेशन

स्टोरेज पार्टिशनिंग के तहत, Blob यूआरएल ऐक्सेस का पार्टिशन, स्टोरेज की (टॉप-लेवल साइट, फ़्रेम ऑरिजिन, और has-cross-site-ancestor बूलियन) के हिसाब से किया जाता है. हालांकि, टॉप-लेवल नेविगेशन के लिए, पार्टिशन सिर्फ़ फ़्रेम ऑरिजिन के हिसाब से किया जाएगा.

PartitionedBlobURLUsage नीति सेट करके, इस बदलाव को अस्थायी तौर पर वापस लाया जा सकता है. स्टोरेज पार्टिशनिंग से जुड़ी अन्य एंटरप्राइज़ नीतियां बंद होने पर, यह नीति भी बंद हो जाएगी.

जवाब न देने वाले वेब पेजों से, क्रैश रिपोर्ट में कॉल स्टैक की जानकारी शामिल करना

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

कैनवस फ़्लोटिंग पॉइंट कलर टाइप

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

भरोसेमंद नहीं माने जाने वाले, प्लेन टेक्स्ट एचटीटीपी प्रीरेंडरिंग की अनुमति न देना

फ़िलहाल, एचटीटीपी और एचटीटीपीएस पर प्रीरेंडर की अनुमति है. वहीं, प्रीफ़ेच सिर्फ़ एचटीटीपीएस पर काम करता है. प्रीफ़ेच के साथ एक जैसा अनुभव देने के लिए, प्रीरेंडर को एचटीटीपीएस तक सीमित करें.

Document-Isolation-Policy

Document-Isolation-Policy की मदद से, कोई दस्तावेज़ COOP या COEP को डिप्लॉय किए बिना और पेज के crossOriginIsolation स्टेटस के बावजूद, अपने लिए crossOriginIsolation की सुविधा चालू कर सकता है. यह नीति, प्रोसेस आइसोलेशन पर आधारित है. इसके अलावा, दस्तावेज़ के नॉन-सीओआरएस क्रॉस-ऑरिजिन सब-रिसॉर्स, क्रेडेंशियल के बिना लोड किए जाएंगे या उनके लिए CORP हेडर की ज़रूरत होगी.

ज़्यादा जानने के लिए, दस्तावेज़ आइसोलेशन नीति: आसानी से वेब की बेहतर सुविधाएं चालू करना लेख पढ़ें.

वेब क्रिप्टोग्राफ़ी में Ed25519

इस सुविधा से, Web Cryptography API में Curve25519 एल्गोरिदम के लिए सहायता जोड़ी गई है. इनमें, सिग्नेचर एल्गोरिदम Ed25519 शामिल है

आईपी पते की लॉगिंग और रिपोर्टिंग

Chrome Enterprise, स्थानीय और रिमोट आईपी पते इकट्ठा करके और उनकी रिपोर्ट करके, सुरक्षा की निगरानी और गड़बड़ी की सूचना देने की क्षमताओं को बेहतर बना रहा है. साथ ही, इन आईपी पतों को Security Investigation Logs (SIT) में भेज रहा है. इसके अलावा, Chrome Enterprise, एडमिन को Chrome Enterprise Reporting कनेक्टर का इस्तेमाल करके, 1P और 3P SIEM सेवा देने वाली कंपनियों को आईपी पते भेजने की अनुमति देगा. यह सुविधा, Chrome Enterprise Core के ग्राहकों के लिए उपलब्ध होगी.

JavaScript Promise Integration

JavaScript Promise Integration (JSPI) एक ऐसा एपीआई है जिसकी मदद से, WebAssembly ऐप्लिकेशन को JavaScript Promises के साथ इंटिग्रेट किया जा सकता है. इससे, WebAssembly प्रोग्राम, Promise जनरेट करने वाले के तौर पर काम कर सकता है. साथ ही, WebAssembly प्रोग्राम, Promise-bearing API के साथ इंटरैक्ट कर सकता है. खास तौर पर, जब कोई ऐप्लिकेशन, Promise-bearing (JavaScript) API को कॉल करने के लिए JSPI का इस्तेमाल करता है, तो WebAssembly कोड को निलंबित कर दिया जाता है. साथ ही, WebAssembly प्रोग्राम के ओरिजनल कॉलर को एक Promise दिया जाता है. यह Promise, WebAssembly प्रोग्राम के पूरा होने पर पूरा होगा.

Language Detector API

Language Detector API एक JavaScript API है. यह दिए गए स्ट्रिंग की भाषा की पहचान करता है. यह एपीआई, एक ऐसे मॉडल पर आधारित है जिसे भाषा की पहचान करने के टास्क के लिए फ़ाइन-ट्यून किया गया है.

किसी स्ट्रिंग के लिए, Language Detector API, पहचान की गई भाषाओं की क्रम से लगाई गई सूची दिखाता है. साथ ही, हर नतीजे के लिए कॉन्फ़िडेंस स्कोर भी दिखाता है.

ज़रूरत पड़ने पर, डेवलपर, Language Detector इंस्टेंस बनाते समय, संभावित इनपुट भाषाओं की सूची पास कर सकते हैं. इससे, उन इस्तेमाल के मामलों के लिए ऑप्टिमाइज़ करने में मदद मिलती है जहां कुछ भाषाओं की पहचान की जानी होती है.

SVGMatrix, SVGRect, और SVGPoint पर फ़्लोट एट्रिब्यूट और आर्ग्युमेंट पर पाबंदी लगाना

SVGMatrix, SVGRect, और SVGPoint पर फ़्लोट एट्रिब्यूट या आर्ग्युमेंट सेट करते समय, अब उन्हें Infinity या Nan के तौर पर सेट नहीं किया जा सकता. अगर ऐसा करने की कोशिश की जाती है, तो JavaScript में गड़बड़ी होती है. ऐसा SVG स्पेसिफ़िकेशन में बताया गया है.

Selection API getComposedRanges और direction

इस सुविधा में, Selection API के लिए दो नए एपीआई तरीके शामिल हैं:

  • Selection.direction जो चुने गए टेक्स्ट की दिशा को "none", "forward" या "backward" के तौर पर दिखाता है
  • Selection.getComposedRanges(). यह सुविधा, 0 या 1 "कंपोज़्ड" StaticRange की सूची दिखाती है

"कंपोज़्ड" StaticRange को शैडो बाउंड्री को पार करने की अनुमति होती है. हालांकि, सामान्य रेंज ऐसा नहीं कर सकतीं.

उदाहरण के लिए:

const range = getSelection().getComposedRanges({ shadowRoots: [root] });

अगर चुना गया टेक्स्ट, shadowRoots सूची में शामिल नहीं की गई शैडो रूट बाउंड्री को पार करता है, तो StaticRange के एंडपॉइंट को उस ट्री से बाहर "रीस्कोप" किया जाएगा. इससे यह पक्का होता है कि हम अनजाने में शैडो ट्री को सार्वजनिक न करें.

वेब ऐप्लिकेशन स्कोप एक्सटेंशन

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

उदाहरण:

{
  "name": "Example",
  "display": "standalone",
  "start_url": "/index.html",
  "scope_extensions": [
    {"type" : "type", "origin" : "https://example.com"}
  ]
}

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

इसके लिए, सूची में शामिल ऑरिजिन को .well-known/web-app-origin-association कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल करके, वेब ऐप्लिकेशन के साथ असोसिएशन की पुष्टि करनी होगी.

{
  "https://sample-app.com/": {
    "scope": "/"
  }
}

WebAssembly Branch Hints

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

WebGPU: externalTexture बाइंडिंग के लिए GPUTextureView

GPUBindGroup बनाते समय, अब externalTexture बाइंडिंग के लिए GPUTextureView का इस्तेमाल किया जा सकता है.

WebGPU: copyBufferToBuffer ओवरलोड

GPUCommandEncoder copyBufferToBuffer() तरीके में, अब ऑफ़सेट और साइज़ के वैकल्पिक पैरामीटर वाले नए ओवरलोड का इस्तेमाल करके, पूरे बफ़र को कॉपी करने का आसान तरीका शामिल है.

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

Chrome के वर्शन 137 में, इन नए ऑरिजिन ट्रायल में शामिल हुआ जा सकता है.

फ़ुल फ़्रेम रेट रेंडर ब्लॉकिंग एट्रिब्यूट

ब्लॉकिंग एट्रिब्यूट में, नया रेंडर ब्लॉकिंग टोकन full-frame-rate जोड़ा गया है. जब रेंडरर को full-frame-rate टोकन के साथ ब्लॉक किया जाता है, तो रेंडरर कम फ़्रेम रेट पर काम करेगा, ताकि लोड करने के लिए ज़्यादा संसाधन रिज़र्व किए जा सकें.

रेंडर न किए गए iframe में मीडिया प्लेबैक रोकना

इसमें, "media-playback-while-not-rendered" अनुमति नीति जोड़ी गई है. इससे, एम्बेड करने वाली वेबसाइटों को एम्बेड किए गए उन iframe का मीडिया प्लेबैक रोकने की अनुमति मिलती है जो रेंडर नहीं किए गए हैं. इसका मतलब है कि उनकी "display" प्रॉपर्टी को "none" पर सेट किया गया है. इससे डेवलपर को, उपयोगकर्ताओं के लिए बेहतर अनुभव बनाने में मदद मिलेगी. साथ ही, ब्राउज़र को उस कॉन्टेंट का प्लेबैक हैंडल करने की अनुमति देकर, परफ़ॉर्मेंस को बेहतर बनाने में भी मदद मिलेगी जो उपयोगकर्ताओं को नहीं दिख रहा है.

Rewriter API

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

Writer API

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