Chrome के पुराने वर्शन
Chrome के पुराने वर्शन के लिए, ChromeDriver के ये वर्शन काम करते हैं.
ChromeDriver का सही वर्शन चुनने के बारे में ज़्यादा जानने के लिए, वर्शन चुनना पेज देखें.
ChromeDriver 148
गड़बड़ियां ठीक की गईं
- DOM ऐक्सेस: उस क्रैश को ठीक कर दिया गया है जो बंद किए गए शैडो रूट में नेस्ट किए गए iframe में बटन क्लिक को सिम्युलेट करते समय होता था. मालिक फ़्रेम एलिमेंट आईडी का पता लगाने के लिए, पहले इस्तेमाल किया गया JavaScript, बंद शैडो रूट को नहीं ढूंढ सका. नया JavaScript, फ़्रेम (crrev.com/c/7594919, Bug: 469831357) को हल करने के लिए, सीधे
f.X.d.Y.e.Zफ़ॉर्मैट का इस्तेमाल करता है. - सुरक्षा: Chrome के आर्ग्युमेंट को सैनिटाइज़ करने की सुविधा को बेहतर बनाया गया है, ताकि पोज़िशनल आर्ग्युमेंट इंजेक्शन से जुड़ी संभावित जोखिम को रोका जा सके (crrev.com/c/7695604, Bug: 494464734).
- टेस्टिंग: AddressSanitizer (ASAN) के तहत चलने पर,
commands_unittestमेंFindElement(s)WhileNavigatingटेस्ट के लिएkImplicitWaitटाइमआउट को बढ़ा दिया गया है. रीट्राई लूप के लिए डिफ़ॉल्ट रूप से तीन सेकंड का टाइम आउट सेट होता है. हालांकि, ASAN ओवरहेड में सभी मॉक गड़बड़ियों को ठीक करने के लिए यह समय काफ़ी नहीं था. इस वजह से, टेस्ट के नतीजे भरोसेमंद नहीं थे (crrev.com/c/7657276).
आंतरिक बदलाव और रीफ़ैक्टर
- C++ स्टैंडर्ड:
//chrome.ccफ़ाइलों में,base/functional/callback_forward.hके गैर-ज़रूरी शामिल किए गए कोड को हटा दिया गया है. साथ ही, कॉल बैक का इस्तेमाल किए जाने परcallback.hका इस्तेमाल करने के लिए ज़रूरी कर दिया गया है (crrev.com/c/7200285, Bug: 40318405). कंपाइलेशन की प्रोसेस को बेहतर बनाने के लिए,logging::LoggingSettingsकोbase/logging.hसे हटाकर उसके खुद के हेडरbase/logging/logging_settings.hमें ले जाया गया (crrev.com/c/7173024, वापस लाने के बाद crrev.com/c/7160150, crrev.com/c/7170750).base/logging.h(crrev.com/c/7730403, Bug: 499476145) से जुड़ी कई IWYU गड़बड़ियों को ठीक किया गया है. - C++ स्टैंडर्ड: मैप
count(key)की गैर-ज़रूरी जाँचों को बदलकर, ज़्यादा असरदारfind(key)इटरेटर ऐक्सेस (crrev.com/c/7705392, crrev.com/c/7693277, Bug: 452950815) के साथ लुकअप किया गया. इनकैप्सुलेशन को बेहतर बनाने के लिए,Threadकंस्ट्रक्टर के ज़रिएThreadDelegateको इंजेक्ट किया गया. साथ ही,ThreadमेंRestartableविकल्प जोड़ा गया, ताकि उन मामलों को शामिल किया जा सके जहां थ्रेड को फिर से शुरू करने की ज़रूरत होती है (crrev.com/c/7696887, Bug: 40881604). - मेमोरी सेफ़्टी: पूरे फ़ाइल-वाइड
#pragma allow_unsafe_buffersकोchrome/मेंUNSAFE_TODO()मैक्रो में बदल दिया गया है (crrev.com/c/7132241, Bug: 409340989).IOBuffer->span().first()को छोटा करकेIOBuffer->first()कर दिया गया (crrev.com/c/7159119). - डिपेंडेंसी:
crossbenchडिपेंडेंसी को रोल आउट किया गया है. इससे macOS और Android पर, स्थानीय तौर पर बनाए गए ChromeDriver बाइनरी का पता लगाने से जुड़ी समस्याओं को ठीक किया जा सकेगा (crrev.com/c/7673978). - जांच: हमने
chromedriver_py_testsमेंmoduleस्कीम को फिर से चालू कर दिया है. ऐसा हमने बुनियादी बिल्ड और टेस्टिंग इन्फ़्रास्ट्रक्चर में सुधार करने के बाद किया है (crrev.com/c/7707960).
ChromeDriver 147
गड़बड़ियां ठीक की गईं
- टेस्टिंग: हमने एक हर्मेटिक रिग्रेशन टेस्ट जोड़ा है. इससे यह पुष्टि की जा सकेगी कि
ElementClick, क्रॉस-ऑरिजिन वाले ऐसे iframe पर क्लिक को सही तरीके से हैंडल करता है जिनमें ओवरले एलिमेंट मौजूद होते हैं. खास तौर पर, साइट आइसोलेशन के मामलों में. इससे यह पक्का किया जाता है कि क्लिक, दिखने वाली ओवरले के बजाय एम्बेड किए गए कॉन्टेंट में गलत तरीके से रूट न किए जाएं (crrev.com/c/7261984, Bug: 42321834, Bug: 42322220).
आंतरिक बदलाव और रीफ़ैक्टर
- C++ स्टैंडर्ड: Google C++ स्टाइल गाइड के मुताबिक, यूआरएल डिकोडिंग मोड और फ़ंक्शन के नाम बदले गए हैं. साथ ही,
DecodeURLModeकोDecodeUrlModeऔरDecodeURLEscapeSequences()कोDecodeUrlEscapeSequences()में बदल दिया गया है (crrev.com/c/7593238). पूरे कोडबेस में यूआरएल डिकोडिंग का इस्तेमाल आसान बनाने के लिए,url::UrlEscapeDecoderको शामिल किया गया है (crrev.com/c/7610180).//chromeफ़ाइलों से, ज़रूरत से ज़्यादाbuild/branding_buildflags.hशामिल किए गए आइटम हटा दिए गए हैं (crrev.com/c/7595125, Bug: 40318405).//chromeसेBUILDFLAG(IS_FUCHSIA)लॉजिक हटा दिया गया है. हालांकि, यह ChromeDriver (crrev.com/c/5485913, Bug: 41481724) में मौजूद है. - मेमोरी सेफ़्टी (स्पैनिफ़िकेशन): ChromeDriver की यूटिलिटी में
UNSAFE_TODOमार्कर की समस्या हल की गई. साथ ही, उन्हें स्पैन पर आधारित सुरक्षित तरीके से लागू करने के लिए माइग्रेट किया गया (crrev.com/c/7562602, Bug: 435317390).
ChromeDriver 146
गड़बड़ियां ठीक की गईं
- स्थिरता: ChromeDriver के क्रैश होने की समस्या को ठीक किया गया है. यह समस्या, किसी निर्देश को प्रोसेस करते समय हो सकती है. ऐसा तब होता है, जब विंडो एक साथ बंद हो जाती है. उदाहरण के लिए, नेविगेशन पूरा होने का इंतज़ार करते समय. इस फ़िक्स में,
WebViewऑब्जेक्ट पर लॉक लगाया जाता है, ताकि इसे समय से पहले बंद होने से रोका जा सके (crrev.com/c/7257074, Bug: 468228355). - सुरक्षा: ChromeDriver एचटीटीपी सर्वर से कनेक्ट होने वाले WebSocket कनेक्शन के लिए,
Originहेडर की जांच करने की सुविधा जोड़ी गई है. इससे, अलग-अलग ऑरिजिन से होने वाली संभावित हाइजैकिंग को रोका जा सकेगा (crrev.com/c/7538400, बग: 478783560). - जांच:
testWebviewDetactedDuringClickको फ़्लेकी फ़िल्टर में ले जाया गया है. अब इसे सिर्फ़ हेडलेस मोड में नहीं, बल्कि सभी रन में स्किप किया जाएगा (crrev.com/c/7545378, बग: 481485821).
आंतरिक बदलाव और रीफ़ैक्टर
- C++ स्टैंडर्ड:
//chromeऔरbase::ListValueका नाम बदलकर, उनके नए वर्शन (base::Value::Dictऔरbase::Value::List) कर दिया गया है. यह बदलाव//chrome(crrev.com/c/7515855, crrev.com/c/7514475, Bug: 478100525) में किया गया है.base::DictValuebase::Contains()के इस्तेमाल कोstd::ranges::contains()से बदला गया (crrev.com/c/7461026, Bug: 470391351).std::setऔरstd::unordered_setकोbase::fixed_flat_setपर माइग्रेट किया गया है. crrev.com/c/7521991, Bug: 473916362. उनbase::JSONReader::Readकॉल को फिर से फ़ैक्टर किया गया है जिनमें पार्सिंग के विकल्पों के बारे में नहीं बताया गया था (crrev.com/c/6990988, crrev.com/c/6980533, Bug: 446188265).base::JSONWriter::Write()के कई कॉल कोbase::WriteJson()से बदल दिया गया है (crrev.com/c/6969134, crrev.com/c/6929101, Bug: 443929217).#includeऑर्डर को ठीक किया गया (crrev.com/c/7366868). टिप्पणियों में, माइग्रेट किए गए बग के रेफ़रंस में Monorail आईडी के बजाय Buganizer आईडी का इस्तेमाल किया गया है (crrev.com/c/7528268, Bug: 321899722).IS_OZONE_*बिल्ड फ़्लैग का नाम बदलकरSUPPORTS_OZONE_*कर दिया गया है, ताकि इन्हें आसानी से समझा जा सके (crrev.com/c/7535923). - मेमोरी सेफ़्टी (स्पैनिफ़िकेशन):
base/strings/utf_string_conversion_utils.ccमें असुरक्षित पॉइंटर के इस्तेमाल कोbase::spanसे बदल दिया गया है (crrev.com/c/7496410, Bug: 439964610, Bug: 40284755).base::Fileके ज़्यादा इस्तेमाल को//chromeटेस्ट में स्पैनिफ़ाइड किया गया (crrev.com/c/7489592, Bug: 435317390).memsetको//chromeमें एग्रीगेट इनिशियलाइज़ेशन से बदला गया (crrev.com/c/6875520, Bug: 435317390). बचे हुए#pragma allow_unsafe_buffersमार्कर कोUNSAFE_TODOमार्कर में बदल दिया गया (crrev.com/c/7132241, Bug: 409340989). - डीएसई प्रीवार्म: macOS और Windows के लिए,
fieldtrial_testing_config.jsonमेंDSEPrewarmसुविधा चालू की गई. ऐसा इसलिए किया गया, क्योंकि ChromeDriver से जुड़ी टेस्ट फ़्लेकीनेस की समस्या हल हो गई थी (crrev.com/c/7489009, crrev.com/c/7452344 को वापस लाने के बाद crrev.com/c/7002185). (ध्यान दें: Windows पर टेस्ट रनटाइम बढ़ने की वजह से, इस reland को बाद में फिर से पहले जैसा कर दिया गया था (crrev.com/c/7517985, Bug: 478888140)). - डाइग्नोस्टिक्स: बेहतर डीबग करने की सुविधा के लिए,
WaitableEventऔरConditionVariableट्रेस इवेंट में कॉल करने वाले की जगह की ट्रैकिंग की सुविधा जोड़ी गई (crrev.com/c/7487755, Bug: 476408124).
ChromeDriver 145
नई सुविधाएं
- टेस्टिंग:
run_py_tests.pyटेस्टिंग फ़्रेमवर्क को अपडेट किया गया है.इससे, अलग-अलग लंबाई (जैसे, 53, 101, और 501 वर्ण) वाले स्ट्रिंग टेस्ट स्वीकार किए जा सकेंगे. ये टेस्ट,input,textarea, औरcontenteditableएलिमेंट को टारगेट करते हैं. इससे रिग्रेशन कवरेज मिलता है. इससे यह पक्का किया जाता है कि लंबीsend_keysकार्रवाइयों (crrev.com/c/7221410, Bug: 428116078) के दौरान कोई वर्ण न छूटे. - जांच: एचटीएमएल
<selectlist>एलिमेंट के लिए एक खास टेस्ट जोड़ा गया (crrev.com/c/7420729, Bug: 342889200).
गड़बड़ियां ठीक की गईं
- स्क्रीनशॉट: एलिमेंट के स्क्रीनशॉट की स्केलिंग को पहले जैसा कर दिया गया है. इसकी वजह यह है कि WebDriver स्पेसिफ़िकेशन में स्केलिंग के बारे में नहीं बताया गया है. साथ ही, यह स्क्रीनशॉट के अन्य फ़ंक्शन (crrev.com/c/7409603, Bug: 42323022) के साथ काम नहीं कर रहा था.
- जांच: ChromeDriver की जांच से जुड़ी उम्मीदों को अपडेट करके,
testClientHintsDeviceNameIPhoneXऔरtestClientHintsDeviceNameIPadमें हुई गड़बड़ियों को ठीक किया गया है. ऐसा इसलिए किया गया है, ताकि प्लैटफ़ॉर्म, platformVersion, मॉडल, और मोबाइल फ़ील्ड के लिए हाल ही में DevTools Frontend (crrev.com/c/7408699, Bug: 474179501) में जोड़े गए सही वैल्यू से मेल खाया जा सके.
आंतरिक बदलाव और रीफ़ैक्टर
- C++ स्टैंडर्ड:
//chrome(crrev.com/c/7411011, Bug: 470391351) में,base::Contains()के अलग-अलग इस्तेमाल कोstd::ranges::contains()में माइग्रेट किया गया. इसमें ज़रूरी फ़ॉर्मैटिंग फ़िक्स (crrev.com/c/7247217) भी शामिल हैं.substr()का इस्तेमाल करते समय, गैर-ज़रूरी स्ट्रिंग असाइनमेंट से बचने के लिए, स्ट्रिंग पैरामीटर कोstd::string_viewमें बदला गया है (crrev.com/c/7350716).//chromeहेडर से, ज़रूरत से ज़्यादा<map>शामिल किए गए (crrev.com/c/7225838, Bug: 40318405). कुछ फ़ाइलों में, शामिल किए गए कॉन्टेंट के क्रम को ठीक किया गया है (crrev.com/c/7366868).SimpleURLLoaderके इस्तेमाल में, लेगसीBodyAsStringCallbackDeprecatedकॉलबैक कोBodyAsStringCallbackसे बदल दिया गया है. यहstd::unique_ptrके बजायstd::optionalका इस्तेमाल करता है (crrev.com/c/7210000, Bug: 40258809). - जांच:
InfobarPrioritizationफ़ील्ड ट्रायल कॉन्फ़िगरेशन को फिर से लागू किया गया है. इसमें ChromeDriver ब्राउज़र टेस्ट में क्रैश होने की समस्या को ठीक करने के लिए किए गए बदलाव भी शामिल हैं. यह समस्या, व्यू हैरारकी में नहीं जोड़े गए लंबित इन्फ़ोबार को हैंडल करते समय होती है (crrev.com/c/7223590, बग: 447176374). Glic सुविधा के लिए, देश और स्थान-भाषा के हिसाब से फ़िल्टर करने की सुविधा को फिर से चालू किया गया है. इसे पहले, टेस्ट के दौरान हुई गड़बड़ियों की वजह से बंद कर दिया गया था (crrev.com/c/7245749, crrev.com/c/7148759 को वापस लाने के बाद crrev.com/c/7233767, बग: 454431875).
ChromeDriver 144
नई सुविधाएं
- अनुमतियां:
SetPermissionकमांड को अपडेट किया गया है, ताकि यह W3C की नई खास बातों का पालन कर सके. इसके लिए, टॉप-लेवल ऑरिजिन के साथ-साथ मौजूदा फ़्रेम के यूआरएल (एम्बेड किया गया ऑरिजिन) का इस्तेमाल किया गया है. इससे,storage-accessजैसी अनुमतियां सही तरीके से कॉन्फ़िगर हो जाती हैं. ये अनुमतियां, एम्बेड किए गए कॉन्टेक्स्ट पर निर्भर करती हैं (crrev.com/c/7106801, crrev.com/c/7104484 पर वापस जाने के बाद crrev.com/c/7093216, Bug: 384959114). - जांच: स्ट्रक्चर्ड टेस्ट आईडी (crrev.com/c/7124354, Bug: 456432041) का इस्तेमाल करते समय, ChromeDriver टेस्ट अपलोड पेलोड में
testMetadata(इसमें टेस्ट का नाम भी शामिल है) जोड़ा गया है, ताकि फ़्लेकीनेस एंडॉर्सर का इस्तेमाल किया जा सके.
गड़बड़ियां ठीक की गईं
- लाइफ़साइकल टारगेट करें: हमने एक ऐसी गड़बड़ी को ठीक किया है जिसमें पैरंट फ़्रेम के अलग होने पर ChromeDriver रुक जाता था. ऐसा तब होता था, जब चाइल्ड फ़्रेम किसी कमांड के जवाब का इंतज़ार कर रहा होता था. अब ChromeDriver, कमांड प्रोसेसिंग के दौरान किसी पैरंट
WebViewImplके लॉक होने और अलग किए जाने पर, डिसेंडेंट फ़्रेम को साफ़ तौर पर ट्रांज़िटिव तौर पर अलग कर देता है (crrev.com/c/7080912, Bug: 438436830). - विंडो मैनेजमेंट: ChromeDriver सेशन के लिए, बैकग्राउंड में बंद की गई विंडो को बंद करने की सुविधा बंद कर दी गई है. इससे WebDriver BiDi में होने वाली उन समस्याओं को ठीक किया जाता है जिनमें ब्राउज़र के किसी विंडो को गलत तरीके से छिपा हुआ मानने और उसे थ्रॉटल करने पर, टेस्ट फ़ेल हो सकते थे (crrev.com/c/7128058, Bug: 458027819).
आंतरिक बदलाव और रीफ़ैक्टर
- C++ स्टैंडर्ड:
//chrome.ccफ़ाइलों में,base/functional/callback_forward.hके गैर-ज़रूरी शामिल किए गए कोड को हटा दिया गया है. साथ ही, कॉल बैक का इस्तेमाल करते समयcallback.hका इस्तेमाल करने के लिए ज़रूरी कर दिया गया है (crrev.com/c/7200285, Bug: 40318405). कंपाइलेशन की प्रोसेस को बेहतर बनाने के लिए,logging::LoggingSettingsकोbase/logging.hसे हटाकर उसके खुद के हेडरbase/logging/logging_settings.hमें ले जाया गया (crrev.com/c/7173024, वापस लाने के बाद crrev.com/c/7160150, crrev.com/c/7170750).base::HexEncodeके माइग्रेट किए गए इस्तेमाल को नएbase::HexEncodeLower(crrev.com/c/7103100, Bug: 456472080) पर ले जाया गया है. - मेमोरी की सुरक्षा (स्पैनिफ़िकेशन):
PipeBuilderऔरPipeConnectionयूनिट टेस्ट मेंWriteToPipeऔरWriteToPipeNoBestEffortकोbase::spanस्वीकार करने के लिए माइग्रेट किया गया है. इससे असुरक्षित बफ़र के इस्तेमाल की समस्या ठीक हो गई है (crrev.com/c/7090293, Bug: 455758227). पूरी फ़ाइल में मौजूद#pragma allow_unsafe_buffersकोchrome/में मौजूद ज़्यादा जानकारी वालेUNSAFE_TODO()मैक्रो में बदला गया (crrev.com/c/7132241, Bug: 409340989).IOBuffer->span().first()को छोटा करकेIOBuffer->first()कर दिया गया (crrev.com/c/7159119).
ChromeDriver 143
गड़बड़ियां ठीक की गईं
- स्थिरता:
OverrideNetworkConditionsमें Use-After-Free (UAF) क्रैश की समस्या ठीक की गई. बाद के ऐप्लिकेशन के लिए सेव किया गया रॉ पॉइंटर, बैक-टू-बैक कॉल के बीच में रिलीज़ हो जाता था. अब इसे ठीक से मैनेज किया जाता है (crrev.com/c/7047422, Bug: 42323833). - जांच: Android ChromeDriver की टच जांचों में आने वाली गड़बड़ियों को ठीक किया गया है. इसके लिए, ज़्यादा भरोसेमंद तरीके से सिंक करने के लिए
WaitForConditionAPI का इस्तेमाल किया गया है (crrev.com/c/6978928, Bug: 42321861). - DSE Prewarm: ChromeDriver में
Prewarmसुविधा को डिफ़ॉल्ट रूप से बंद कर दिया गया है. ऐसा--disable-features=Prewarmस्विच के ज़रिए किया गया है. इससे, प्रीवार्म किए गए पेज, टेस्ट एक्ज़ीक्यूशन और टारगेट डिस्कवरी में रुकावट नहीं डालते हैं (crrev.com/c/7007072, गड़बड़ी: 431928370).
आंतरिक बदलाव और रीफ़ैक्टर
- C++ standards:
//chromeहेडर मेंref_counted.hकोscoped_refptr.hसे बदल दिया गया है. ऐसा उन हेडर में किया गया है जहां सिर्फ़ स्मार्ट पॉइंटर का इस्तेमाल किया जाता है. इससे कंपाइलेशन की क्षमता बेहतर हुई है (crrev.com/c/7080753, Bug: 40245294). स्ट्रिंग के असाइनमेंट को साफ़ तौर पर दिखाने के लिए,GURLऐक्सेसर को उनकेGet*वैरिएंट (जैसे,spec()के बजायGetSpec()) पर माइग्रेट किया गया है. इससे परफ़ॉर्मेंस से जुड़ी पेनल्टी को गलती से लगने से रोका जा सकेगा (crrev.com/c/7002119, Bug: 448174617). - जांच:
ADD_FAILURE()का इस्तेमाल करके,devtools_client_impl_unittest.ccमें मौजूद गैर-ज़रूरी चेक पैटर्न हटा दिए गए हैं (crrev.com/c/6998270).crbug.com/413382905(crrev.com/c/6879417) के लिए रिग्रेशन टेस्ट जोड़ा गया.
ChromeDriver 142
नई सुविधाएं
- डाइग्नोस्टिक्स:
TERMINATION_STATUS_EVICTED_FOR_MEMORYस्टेटस जोड़ा गया है. इससे, ब्राउज़र की ओर से मेमोरी बचाने के लिए पहले से बंद की गई प्रोसेस और मेमोरी से जुड़ी (ओओएम) गड़बड़ियों की वजह से क्रैश हुई प्रोसेस के बीच अंतर किया जा सकेगा. फ़िलहाल, यह OOM क्रैश (सैड टैब दिखाना) की तरह ही काम करता है. हालांकि, इससे आने वाले समय में अलग-अलग तरह की समस्याओं को ठीक करने में मदद मिलेगी (crrev.com/c/6991933, Bug: 394092280). - गड़बड़ी की जानकारी: WebDriver रिस्पॉन्स में
goog:processIDसुविधा जोड़ी गई है. इससे डेस्कटॉप ब्राउज़र का मुख्य प्रोसेस आईडी मिलता है. इससे ChromeDriver, Firefox केmoz:processIDके साथ काम कर पाएगा. साथ ही, इससे प्लैटफ़ॉर्म के ऐक्सेसिबिलिटी एपीआई (crrev.com/c/5825307, Bug: 438884256) की टेस्टिंग में मदद मिलेगी. - टेस्टिंग: ChromeDriver के Python इंटिग्रेशन टेस्ट के लिए, ResultSink में स्ट्रक्चर्ड टेस्ट आईडी अपलोड करने की सुविधा जोड़ी गई (crrev.com/c/6916708, Bug: 418015486).
गड़बड़ियां ठीक की गईं
- डाइग्नोस्टिक्स: Chrome के सामान्य तरीके से बंद होने पर, ChromeDriver के व्यवहार में बदलाव किया गया है. इससे
user-data-dirके इस्तेमाल से जुड़ी गड़बड़ी का सामान्य मैसेज नहीं दिखेगा. इसमें अब साफ़ तौर पर बताया गया है कि इंस्टेंस बंद कर दिया गया है. साथ ही, उपयोगकर्ता को Chrome से मिली गड़बड़ी (crrev.com/c/6977507, Bug: 42323434) के बारे में ज़्यादा जानकारी वाले लॉग पर रीडायरेक्ट किया गया है. - Initialization: Updated ChromeDriver's initialization structure to remain compatible with Selenium WebDriver v4.16.0 changes (crrev.com/c/6630600).
- Android: Android के लेगसी वर्शन (Android 11 से पहले के वर्शन) पर
CheckAppInstalledको ठीक किया गया है. इन वर्शन में, पैकेज मैनेजर--user curफ़्लैग का इस्तेमाल नहीं किया जा सकता (crrev.com/c/6785949, गड़बड़ी: 433885051). - जांच: एक गड़बड़ी को ठीक किया गया है. इसमें
IgnoreDuplicateNavs, ChromeDriver में डिफ़ॉल्ट क्षमता वाले स्विच को गलत तरीके से बदल रहा था. यह सुविधा, ChromeDriver सेशन के लिए बंद कर दी गई है. साथ ही,Switches::SetFromSwitchesलॉजिक को ठीक कर दिया गया है (crrev.com/c/6949166, Bug: 445332809).
आंतरिक बदलाव और रीफ़ैक्टर
- C++ स्टैंडर्ड: हमने कई ऐसे
base::JSONWriter::Write()कॉल कोbase::WriteJson()से बदल दिया है जो अब काम नहीं करते. साथ ही, हमने यह भी पक्का किया है कि अगर रिटर्न वैल्यू की जांच नहीं की जाती है, तो फ़ेल होने पर खाली स्ट्रिंग वापस मिलनी चाहिए (crrev.com/c/6969134, crrev.com/c/6929101, Bug: 443929217).base::JSONReader::Readऔरbase::JSONReader::ReadAndReturnValueWithErrorमें, JSON पार्सिंग के ऐसे विकल्पों के लिए साफ़ तौर पर ऑप्ट-इन करना ज़रूरी है जो नीति का पालन नहीं करते. उदाहरण के लिए, टिप्पणियों की अनुमति देना (crrev.com/c/6990988, crrev.com/c/6980533, Bug: 446188265). मैन्युअल तरीके से स्पैनिफ़िकेशन करने के बाद, पूरी फ़ाइल से#pragma allow_unsafe_buffersप्रैगमा हटा दिए गए (crrev.com/c/6778035, Bug: 409340989). लीक होने वालीLazyInstanceमैक्रो का इस्तेमाल करने से जुड़ी समस्याओं को ठीक किया गया (crrev.com/c/6781377, Bug: 432815283). IWYU के ज़रिएhttp_response_headers.hके लिए, छूटे हुए हेडर शामिल किए गए (crrev.com/c/6894196, Bug: 40216326). - मेमोरी सेफ़्टी (स्पैनिफ़िकेशन): Linux बिल्ड के लिए,
chrome/डायरेक्ट्री में कई पॉइंटर अपने-आप स्पैनिफ़ाई हो गए. साथ ही, जहां साइज़ पैरामीटर को गैर-ज़रूरी माना गया वहां नॉन-फ़ैटलCHECKजोड़े गए (crrev.com/c/6734592, Bug: 431824299). - जांच: macOS पर
testDoesntCrashOnClosingBrowserFromAsyncScriptको कुछ समय के लिए बंद कर दिया गया है (crrev.com/c/6995358, Bug: 446461733). "सर्टिफ़िकेट" से जुड़े टेस्ट के तरीकों के नामों में टाइप की गई गलतियों को ठीक किया गया है (crrev.com/c/6950683). अपने-आप फ़ॉर्मैट होने वाली//chrome/testGN फ़ाइलें (crrev.com/c/6789277, Bug: 40760278). - FedCM:
IdentityDialogControllerमेंShouldShowAccountsPassiveDialogफ़ंक्शन जोड़ा गया है. इससे यह पता चल पाएगा कि खातों का डायलॉग बॉक्स दिखाना है या नहीं. साथ ही, इससे एसिंक्रोनस जांच और DevTools इंस्ट्रुमेंटेशन से जुड़ी क्रैश की समस्या ठीक हो जाएगी (crrev.com/c/6780413, Bug: 425801332). - DSE Prewarm: DevTools प्रोटोकॉल में
Page.setPrewarmingAllowedजोड़ा गया है. यह कुछ समय के लिए उपलब्ध समाधान है. इससे प्रीवार्मिंग को मैन्युअल तरीके से चालू या बंद किया जा सकता है. साथ ही, इससे जुड़ी समस्याओं को ठीक किया जा सकता है, ताकि यह पक्का किया जा सके कि वे मुख्य पेज के साथ सही तरीके से इंटरैक्ट करें (crrev.com/c/6847287, Bug: 431928370). macOS और Windows के लिए,fieldtrial_testing_config.jsonमेंDSEPrewarmसुविधा चालू की गई. ऐसा, फ़्लैकनेस की समस्या हल करने के बाद किया गया (crrev.com/c/6951835, Bug: 431928370, Bug: 435621391). (ध्यान दें: सीडीपी कमांड और फ़ील्ड ट्रायल को वापस ले लिया गया है. इसकी वजह यह है कि WebDriver का इस्तेमाल करने वाले लोगों के लिए, ये दोनों सुविधाएं काम नहीं कर रही थीं. साथ ही, इनसे अनचाहे टारगेट दिख रहे थे और अन्य समस्याएं हो रही थीं (crrev.com/c/6966133, crrev.com/c/6966161, Bug: 445883308)). - सफ़ाई: Android कोड में,
WebLayerप्रोजेक्ट के उन सभी रेफ़रंस को हटा दिया गया है जो काम नहीं करते (crrev.com/c/6792520, Bug: 40272607).
ChromeDriver 141
नई सुविधाएं
- टेस्टिंग:
run_wpt_tests.pyके लिए--enable-per-test-tracingफ़्लैग का इस्तेमाल करने की सुविधा जोड़ी गई है. इससेrun_wpt_tests.py,run_web_tests.pyकी तरह काम करेगा. यह कमांड, ChromeDriver के इंटरनल बफ़र से JSON ट्रेस इवेंट वापस लाती है और उन्हें टेस्ट के नतीजों वाली डायरेक्ट्री में सेव करती है (crrev.com/c/6820247, Bug: 434017035).
गड़बड़ियां ठीक की गईं
- डाइग्नोस्टिक्स:
kTabCrashedगड़बड़ी होने पर, ChromeDriver को अपने इंटरनल स्टैक ट्रेस को प्रिंट करने से रोका गया. इससे उपयोगकर्ताओं को भ्रमित होने से बचाया जा सकता है. साथ ही, यह भी पक्का किया जा सकता है कि रेंडरर क्रैश स्टैक ट्रेस, लॉग में बना रहे (crrev.com/c/6841669, Bug: 395131239).
आंतरिक बदलाव और रीफ़ैक्टर
- C++ स्टैंडर्ड:
chrome/में, संभावित रूप से असुरक्षितmemsetकॉल को स्टैंडर्ड C++ एग्रीगेट इनिशियलाइज़ेशन (instance = {}) से बदल दिया गया है. इससे कंस्ट्रक्टर को बायपास करने से बचा जा सकेगा और मेमोरी की सुरक्षा (crrev.com/c/6875520, Bug: 435317390) को पक्का किया जा सकेगा. IWYU (crrev.com/c/6832689, Bug: 40216326) के ज़रिए,//base/time/time.hके लिए छूटे हुए#includeडायरेक्टिव जोड़े गए. असुरक्षित बफ़र के लिए फ़ोर्स किए गए प्रैगमा को फिर से लिखा गया (crrev.com/c/6828538). - जांच:
crbug.com/413382905(crrev.com/c/6879417) के लिए, रिग्रेशन टेस्ट जोड़ा गया. - व्यू ट्रांज़िशन: व्यू ट्रांज़िशन से जुड़ी समस्या को ठीक करने के लिए, अपडेट करने का काम फिर से शुरू किया गया है. यह काम, प्रॉमिस पूरा होने से पहले किया जाता है. इससे पहले, ChromeDriver टेस्ट फ़ेल होने से जुड़े अनुमानित बदलाव को गलत साबित किया गया था (crrev.com/c/6846765, crrev.com/c/6808537 को वापस लाने के बाद crrev.com/c/6806850 को फिर से लागू किया गया).
ChromeDriver 140
गड़बड़ियां ठीक की गईं
- टारगेट चुनने की सुविधा: इस समस्या को ठीक किया गया है. इसमें Chrome को
--auto-open-devtools-for-tabsके साथ लॉन्च करने पर, DevTools विंडो को मुख्य विंडो के तौर पर चुनने के लिए, मुख्य पेज के साथ रेस करनी पड़ती थी. ChromeDriver अब मुख्य विंडो का पता लगाने के दौरान,devtools://प्रीफ़िक्स वाले टारगेट को साफ़ तौर पर बाहर रखता है (crrev.com/c/6769505, Bug: 427908560). - टारगेट चुनने की सुविधा: ChromeDriver को, एलिमेंट के दिखने वाले सेंटर पॉइंट का गलत हिसाब लगाने से रोका गया. ऐसा, पूर्वजों की ओर से लगाई गई किसी भी
overflow:hiddenक्लिपिंग को अनदेखा करके किया गया. इससे कैलकुलेशन, WebDriver स्पेसिफ़िकेशन और अन्यPerformActionsस्थितियों (crrev.com/c/6735230, Bug: 42322257) के मुताबिक हो जाती है. - Android: Android के पुराने वर्शन (Android 11 से पहले के वर्शन) पर
CheckAppInstalledफ़ंक्शन से जुड़ी समस्या ठीक की गई है. इन वर्शन पर, पैकेज मैनेजर के लिए--user curफ़्लैग काम नहीं करता (crrev.com/c/6785949, गड़बड़ी: 433885051). - जांच:
DSEPrewarmसुविधा की वजह से,chromedriver_py_testsटेस्ट सुइट में होने वाली गड़बड़ी को ठीक किया गया है. अब ChromeDriver, सीडीपी क्लाइंट के अटैच होने पर प्रीवार्म ट्रिगर को बंद कर देता है. इससे टेस्ट के दौरान टारगेट की संख्या में अचानक होने वाली बढ़ोतरी को रोका जा सकेगा (crrev.com/c/6764274, Bug: 423465927, Bug: 431928370). - जांच:
IdentityDialogController(FedCM का हिस्सा) मेंShouldShowAccountsPassiveDialogफ़ंक्शन को जोड़ने की सुविधा को वापस लाया गया है. इससे रिग्रेशन हुआ था (crrev.com/c/6780413, Bug: 425801332).
आंतरिक बदलाव और रीफ़ैक्टर
- C++ स्टैंडर्ड: Include What You Use (IWYU) के ज़रिए, छूटे हुए
std::vector#includeजोड़े गए (crrev.com/c/6652818, Bug: 40216326).//chromeहेडर में,gurl.h(crrev.com/c/6578272) और<queue>(crrev.com/c/6570349, Bug: 40318405) के गैर-ज़रूरी शामिल किए गए कॉन्टेंट को हटाया गया.//chrome(crrev.com/c/6655452, Bug: 41493641) मेंNOTIMPLEMENTED()के लिएIWYUको ठीक किया गया. - मेमोरी सेफ़्टी (स्पैनिफ़िकेशन): हमने Linux बिल्ड में, अपने-आप काम करने वाले पॉइंटर स्पैनिफ़िकेशन टूल को चलाया. साथ ही, हमने कोड को अपडेट किया, ताकि उन जगहों पर स्पैन का इस्तेमाल किया जा सके जहां साइज़ के बारे में जानकारी है (crrev.com/c/6734592, Bug: 431824299). माइग्रेशन पूरा होने के बाद, पूरी फ़ाइल में मौजूद
#pragma allow_unsafe_buffersप्रैगमा हटा दिए गए हैं. ऐसाchrome/में किया गया है (crrev.com/c/6778035, Bug: 409340989).chrome/testचेतावनी को ग्लोबल लेवल पर चालू करने की अनुमति देने के लिए,chrome/testचेतावनी से कुछ टारगेट हटाए गए (crrev.com/c/6736532, Bug: 40031409, Bug: 430332953).-Wexit-time-destructors//chromeके तहतLazyInstanceके इस्तेमाल से जुड़ी समस्याओं को ठीक किया गया (crrev.com/c/6781377, Bug: 432815283). - क्लीनअप:
--debug-bidi-mapperसीएलआई फ़्लैग हटा दिया गया है, क्योंकि BiDi Mapper को छिपे हुए टारगेट में चलाने का ट्रांज़िशन पूरा हो गया है और यह स्टेबल है (crrev.com/c/6672011, Bug: 408992812). - सफ़ाई: अब काम न करने वाले
WebLayerप्रोजेक्ट के बचे हुए रेफ़रंस हटा दिए गए हैं (crrev.com/c/6792520, Bug: 40272607). टारगेट रेफ़रंस को छोटा करने के लिए,//chrome/testGN फ़ाइलों को अपने-आप फ़ॉर्मैट किया गया (crrev.com/c/6789277, Bug: 40760278). - टेस्टिंग:
PerformActionspointerMoveसमस्या (crrev.com/c/6648646, Bug: 42322257) को ठीक करने की पुष्टि करने के लिए, एक ऐक्सेप्टेंस टेस्ट जोड़ा गया. - जांच:
testBrowserWithUsedUserDataDirटेस्ट के पैरलल ड्राइवर क्रिएशन सेगमेंट को टिप्पणी के तौर पर मार्क किया गया है. साथ ही, ट्रैकिंग बग फ़ाइल किया गया है. ऐसा इसलिए किया गया है, क्योंकिchrome-headless-shellका इस्तेमाल करते समय, macOS पर एक्सक्लूसिव लॉकिंग से जुड़ी समस्याएं आ रही थीं (crrev.com/c/6470455, Bug: 411407649, Bug: 380903149). - जांच: iOS के लिए
run_cwt_chromedriver.pyरैपर को अपडेट किया गया है, ताकि--platform-typeआर्ग्युमेंट (crrev.com/c/6771517, बग: 427548014) काम कर सके. - मालिक:
chrome/test/chromedriver/OWNERSफ़ाइल सेnvitkovको हटाया गया (crrev.com/c/6771413).
ChromeDriver 139
गड़बड़ियां ठीक की गईं
- शुरुआत करने का स्ट्रक्चर: ChromeDriver को शुरू करने के स्ट्रक्चर को अपडेट किया गया है, ताकि यह Selenium WebDriver v4.16.0 के अपडेट के साथ काम कर सके (crrev.com/c/6630600).
- आर्ग्युमेंट पार्स करना: सिर्फ़ आखिरी आर्ग्युमेंट लेने के बजाय, कई
--js-flagsआर्ग्युमेंट को एक साथ जोड़ दिया गया है. ऐसा--enable-featuresको हैंडल करने के तरीके के जैसा ही है. इससे, जटिल V8 फ़्लैग (crrev.com/c/6612042, Bug: 421941798) पास करते समय, इस्तेमाल करने में आसानी होती है.
आंतरिक बदलाव और रीफ़ैक्टर
- मेमोरी सेफ़्टी (स्पैनिफ़िकेशन):
//chrome/testमें, बंद किए गएbase::MakeStringPiece()के इस्तेमाल कोstd::string_viewसे बदल दिया गया है (crrev.com/c/6628089, Bug: 422940464).base/strings/string_view_util.hको शामिल किया गया है. इसका इस्तेमालbase/strings/string_view_util.hके लिए किया जाता है. साथ ही, आने वाले समय में नेमस्पेस माइग्रेशन के लिए तैयारी की जा रही है (crrev.com/c/6625024, Bug: 423048781).base::as_string_view() - C++ स्टैंडर्ड:
//chromeमें, Include What You Use (IWYU) के नियमों का पालन करने की सुविधा को बेहतर बनाया गया है. इसके लिए,<vector>(crrev.com/c/6652818),base/notimplemented.h(और जहां इस्तेमाल नहीं किया गया है वहां सेbase/notreached.hको हटाया गया है) (crrev.com/c/6655452, Bug: 41493641),base/strings/string_util.h(crrev.com/c/6607646),base/strings/string_number_conversions.h(crrev.com/c/6593576) को साफ़ तौर पर शामिल किया गया है. साथ ही,base/debug/stack_trace.h(crrev.com/c/6622838) के गैर-ज़रूरी शामिल किए गए कोड को हटाया गया है. - Testing: Ported the
--driver-loggingoption torun_wpt_tests.py, allowing the script to dump ChromeDriver and browserstderreven at lower verbosity levels (crrev.com/c/6608138, Bug: 421262910). - जांच: ChromeDriver इंटिग्रेशन टेस्ट को फिर से चालू किया गया. इन्हें पहले बंद कर दिया गया था: स्क्रीनशॉट टेस्ट (
testTakeElementScreenshot*) (crrev.com/c/6598797, Bug: 42321815), JavaScript की मदद से विंडो बंद करने वाले टेस्ट (testCloseWindowUsingJavascript*) (crrev.com/c/6598978, Bug: 42321150), औरheadless-shellविंडो के साइज़ से जुड़े टेस्ट (crrev.com/c/6621336, Bug: 42323661). - टेस्टिंग: एपीके को पार्स करके, Clank (Android) के मौजूदा स्टेबल वर्शन की सही पहचान करने और उसका इस्तेमाल करने के लिए,
run_wpt_tests.py --stableको ठीक किया गया. साथ ही, स्क्रिप्ट को अपडेट किया गया, ताकि ChromeDriver के संबंधित वर्शन को Chrome for Testing (CfT) से डाउनलोड करके, चेकआउट (crrev.com/c/6635694, Bug: 402548382) को खराब करने के बजाय, किसी अस्थायी डायरेक्ट्री में रखा जा सके. - इंफ़्रास्ट्रक्चर बनाना:
write_build_config.pyपर मौजूद ग़ैर-ज़रूरी बिल्ड डिपेंडेंसी को हटा दिया गया है. इसके लिए,android_resources()टारगेट को मेनिफ़ेस्ट रखने की अनुमति नहीं दी गई है. ऐसा इसलिए, क्योंकि मेनिफ़ेस्ट मर्ज करने और R.java पैकेज का नाम रखने की प्रोसेस को अब खास एट्रिब्यूट (crrev.com/c/6625266, Bug: 413331591) मैनेज करते हैं. - FedCM: FedCM से जुड़े फ़िंच कॉन्फ़िगरेशन फ़ीचर फ़्लैग को ठीक किया गया (crrev.com/c/6614137, Bug: 421959289).
ChromeDriver 138
नई सुविधाएं
- डिस्प्ले फ़ीचर मैनेजमेंट: व्यूपोर्ट सेगमेंट के लिए ChromeDriver के व्यवहार को अपडेट किया गया है, ताकि यह सीएसएस वर्किंग ग्रुप के हाल ही के रिज़ॉल्यूशन से मेल खा सके: अब फ़ोल्ड किए जा सकने वाले डिवाइस को फ़्लैट मोड में इस्तेमाल करने पर या फ़ोल्ड नहीं किए जा सकने वाले सभी डिवाइसों के लिए, यह हमेशा एक सेगमेंट वाला ऐरे दिखाता है. यह मीडिया क्वेरी के व्यवहार से मेल खाता है. साथ ही, इससे फ़िंगरप्रिंटिंग के जोखिम कम होते हैं (crrev.com/c/6469455, Bug: 414430842).
- प्राथमिकताएं और स्थानीय स्थिति (Android): Android डिवाइसों पर ChromeDriver चलाने के दौरान,
localStateऔरprefsसुविधाओं के लिए सहायता जोड़ी गई. यह ADB पर निर्भर करता है और इसके लिए कस्टमuser-data-dirफ़्लैग की ज़रूरत होती है. फ़िलहाल, यह डिफ़ॉल्ट टेंप्लेट (crrev.com/c/6397155, Bug: 406427226) के साथ स्थिति को शुरू करता है.
गड़बड़ियां ठीक की गईं
- स्थिरता: macOS पर ChromeDriver के क्रैश होने की समस्या ठीक की गई है. यह समस्या तब होती थी, जब कोई उपयोगकर्ता "जारी रखें" बटन के ज़रिए, पहली बार इस्तेमाल करने से जुड़ा अनुभव (एफ़आरई) वाला डायलॉग खारिज कर देता था. क्रैश,
kTargetDetachedगड़बड़ी की स्थिति को बदलने और अमान्यWebViewको ऐक्सेस करने की वजह से हुआ. (crrev.com/c/6538867, बग: 410599467). - परफ़ॉर्मेंस टेस्टिंग: Windows पर
crossbenchtest runner की समस्या ठीक की गई है. इसमें pinpoint बॉट, ChromeDriver बाइनरी का पता लगाने के लिए, पुराने../Release_x64पाथ का इस्तेमाल कर रहे थे. ऐसा तब हो रहा था, जब--browser=release_x64पास किया गया था. इस वजह से, यह लोकल बिल्ड (crrev.com/c/6502134) का इस्तेमाल करने के बजाय, पुराने बाइनरी को डाउनलोड कर रहा था.
आंतरिक बदलाव और रीफ़ैक्टर
- मेमोरी सेफ़्टी (स्पैनिफ़िकेशन):
WebSocket::OnReadDuringHandshakeऔरWebSocket::OnReadDuringOpenमें बिना जांच किए गए पॉइंटर कोbase::spanसे बदल दिया गया है. इससेunsafe-buffer-usageचेतावनियों (crrev.com/c/6557346, Bug: 354307328) को ठीक किया गया है.chrome/test/chromedriverमें मौजूद ग़ैर-ज़रूरी#pragma allow_unsafe_bufferspragmas हटा दिए गए हैं. अन्य माइग्रेशन (crrev.com/c/6503154, Bug: 414858406) के बाद, इनकी ज़रूरत नहीं थी. - C++ स्टैंडर्ड:
chrome/हेडर में मौजूद गैर-ज़रूरी#include "url/gurl.h"और#include <queue>डायरेक्टिव हटा दिए गए हैं. साथ ही, कंपाइल होने में लगने वाले समय को कम करने के लिए, ज़रूरी जगहों पर फ़ॉरवर्ड डिक्लेरेशन जोड़े गए हैं (crrev.com/c/6578272, crrev.com/c/6570349, Bug: 40318405). - एपीआई माइग्रेशन:
RSAPrivateKeyकोcrypto::PrivateKeyऔरSHA256HashStringकोcrypto::Sha256में माइग्रेट किया गया. साथ ही, गड़बड़ी ठीक करने के पुराने तरीके को हटाया गया, क्योंकि नए पासकोड जनरेट करने वाले एपीआई में गड़बड़ी होने की संभावना नहीं होती (crrev.com/c/6490294, बग: 372283556). - जांच: Compute Pressure API के ऑटोमेशन कमांड में
OwnContributionEstimateएट्रिब्यूट जोड़ा गया है. यह एट्रिब्यूट, सीडीपी और testdriver, दोनों के लिए लागू किया गया है (crrev.com/c/6373001, Bug: 402033762). - जांच: इंटिग्रेशन की जांच से जुड़ी समस्याओं को ठीक किया गया है. इससे यह पुष्टि की जा सकेगी कि कंटीन्यूअस इंटिग्रेशन (सीएफ़टी) बॉट पर
ClearDisplayFeaturesकाम कर रहा है. इसके लिए, यह जांच की जाएगी कि व्यूपोर्ट सेगमेंट, व्यूपोर्ट के डिफ़ॉल्ट साइज़ (crrev.com/c/6535067, बग: 417195296) पर वापस आ गए हैं. - जांच: Protected Audience WebDriver की जांच के लिए टाइमआउट की अवधि बढ़ा दी गई है, ताकि धीमी गति से काम करने वाले सीआई बॉट (crrev.com/c/6494277) पर होने वाली गड़बड़ियों को ठीक किया जा सके.
ChromeDriver 137
नई सुविधाएं
- डिसप्ले फ़ीचर मैनेजमेंट: डिसप्ले फ़ीचर को एम्युलेट करने और हटाने के लिए, ChromeDriver कमांड जोड़ी गई हैं. साथ ही, व्यूपोर्ट सेगमेंट एपीआई (सीएसएस और JS) के लिए ऑटोमेशन से जुड़ी ज़रूरी शर्तें लागू की गई हैं. इससे डेवलपर, डुअल-स्क्रीन या फ़ोल्ड किए जा सकने वाले डिवाइसों पर, फ़ोल्ड या हिंज के इस्तेमाल से जुड़े प्रोग्रामैटिक टेस्ट कर सकते हैं (crrev.com/c/6368674, Bug: 40137084).
- BiDi: ChromeDriver को अपडेट किया गया है, ताकि वह डिफ़ॉल्ट रूप से छिपे हुए टारगेट में BiDi Mapper को चला सके. इससे, मैपर के
data:,पेज का टेस्ट के एक्ज़ीक्यूशन और विज़िबिलिटी पर कोई असर नहीं पड़ता. मैपर को डीबग करने के लिए, क्लाइंट--debug-bidi-mapperफ़्लैग पास कर सकते हैं, ताकि इसे दिखने वाले टैब में चलाया जा सके (crrev.com/c/6441064, crrev.com/c/6433672 को वापस लाने के बाद crrev.com/c/6439633, बग: 402339952).
गड़बड़ियां ठीक की गईं
- BiDi: अगर ChromeDriver को अन्य सीडीपी या BiDi सेशन से बनाए गए टारगेट का पता नहीं चलता है, तो BiDi कमांड (जैसे कि
browsingContext.close) को प्रोसेस करते समय, पूरे ब्राउज़र सेशन को गलत तरीके से बंद होने से रोका गया. अब यह ब्राउज़र को बंद करने का फ़ैसला लेने से पहले, टॉप-लेवल टैब को साफ़ तौर पर सिंक करता है (crrev.com/c/6440293, Bug: 42323838). - BiDi: इसे WebDriver BiDi के अपस्ट्रीम स्पेसिफ़िकेशन के साथ अलाइन किया गया है. इससे यह पक्का किया जाता है कि अगर
goog:channelक्षमता को खाली स्ट्रिंग के तौर पर पास किया जाता है, तो ChromeDriver उसे हटा दे. साथ ही, इसे किसी ऐसे चैनल की तरह माना जाता है जो मौजूद नहीं है (crrev.com/c/6438865, Bug: 409282307). - इनपुट: हमने एक समस्या को ठीक किया है. इस समस्या में, ChromeDriver को अपडेट करने के बाद, टच और पॉइंटर इवेंट काम नहीं कर रहे थे या गलत तरीके से काम कर रहे थे. ChromeDriver को अपडेट करने के बाद, पॉइंटर मूव कमांड में x और y कोऑर्डिनेट के फ़्रैक्शनल (फ़्लोटिंग-पॉइंट) काम कर रहे थे (crrev.com/c/6440834, Bug: 409684333).
- टारगेट चुनना: अगर
PdfOopifसुविधा बंद है, तो मेहमान के तौर पर देखे जाने वाले पेजों में खुले, प्रोसेस से बाहर के पीडीएफ़ iframe (ओओपीआईएफ़) को टॉप-लेवल के टारगेट की सूची में शामिल होने से रोका गया. फ़िल्टर करने के लॉजिक को बेहतर बनाया गया है, ताकिchrome-extension://प्रीफ़िक्स वाले इन टारगेट (crrev.com/c/6383500, Bug: 396611138) को सही तरीके से हटाया जा सके.
आंतरिक बदलाव और रीफ़ैक्टर
- C++ स्टैंडर्ड:
LogMessageऔर ट्रेस इवेंट में फ़ाइल के नामों के लिएstd::string_viewका इस्तेमाल करने से जुड़े बदलाव को फिर से लागू किया गया. इससे, नल-टर्मिनेटेड स्ट्रिंग को हैंडल करने से जुड़ी उन समस्याओं को हल किया गया जिनकी वजह से पहले के बदलावों को वापस लाया गया था (crrev.com/c/6430129, crrev.com/c/6395097 को फिर से लागू करना, crrev.com/c/6383699 को वापस लाने के बाद crrev.com/c/6387020 को फिर से लागू करना). - C++ स्टैंडर्ड:
//chromeमें मौजूद सभीEnvironment::GetVarकॉल को मॉडर्न बनाया गया है, ताकि आउट-पैरामीटर के बजायstd::optionalरिटर्निंग एपीआई का इस्तेमाल किया जा सके (crrev.com/c/6417343, Bug: 400758498). - C++ standards: Windows के लिए खास हैंडल हेल्पर को
win_util.hसे हटाकर, एक अलगwindows_handle_util.hहेडर में रिफ़ैक्टर किया गया है, ताकि सर्कुलर डिपेंडेंसी की समस्याओं से बचा जा सके (crrev.com/c/6418805, Bug: 406023316). - टेस्टिंग: Android के लिए खास तौर पर बनाया गया
Browserडोमेन हैंडलर जोड़ा गया है. साथ ही, Android विंडो बनाने से जुड़े टेस्ट (crrev.com/c/6427605, Bug: 404932444) के लिए,Browser.getWindowForTargetAPI लागू किया गया है. - जांच: macOS पर की जाने वाली जांचों में, एक्सटेंशन को शुरू होने में ज़्यादा समय लगने की वजह से आने वाली गड़बड़ी को ठीक किया गया है (crrev.com/c/6423229, बग: 407804497).
- जांच:
chrome-headless-shellके साथ चलाने पर,testBrowserWithUsedUserDataDirमें पैरललuser-data-dirबनाने की सुविधा को कुछ समय के लिए बंद कर दिया गया है. ऐसा इसलिए किया गया है, क्योंकि यह macOS पर एक्सक्लूसिव लॉकिंग के साथ काम नहीं कर रही थी (crrev.com/c/6470455, Bug: 411407649, Bug: 380903149). - एक्सटेंशन:
ExtensionManifestV2Unsupportedफ़ील्ड ट्रायल चालू होने पर, Chrome के अपडेट किए गए टेस्ट पास किए जा सकते हैं. यह एक बुनियादी चरण है. हालांकि, अन्य रिपॉज़िटरी (crrev.com/c/6415997, Bug: 367395349) में अपडेट होने तक, इस सुविधा को आज़माने की सुविधा बंद रहेगी. (ध्यान दें: कॉन्फ़िगरेशन के ज़रिए इस ट्रायल को चालू करने की पिछली कोशिश को crrev.com/c/6397497 पर वापस लाया गया था. crrev.com/c/6358257 पर वापस लाया गया). - डिपेंडेंसी:
catapultडिपेंडेंसी को मैन्युअल तरीके से रोल आउट किया गया है. साथ ही, इससे जुड़ीpydepsफ़ाइलों औरdevil_utilरेफ़रंस को अपडेट किया गया है (crrev.com/c/6480814, crrev.com/c/6466865, crrev.com/c/6448910 को वापस लाने के बाद crrev.com/c/6406098 को फिर से लागू किया गया, बग: 397459590).
ChromeDriver 136
नई सुविधाएं
- ब्राउज़र का लाइफ़साइकल: Chrome के लिए एक खास सुविधा
quitGracefullyजोड़ी गई है. इससे ChromeDriver, ब्राउज़र को डिफ़ॉल्टSIGKILLके बजायBrowser.closeया SIGTERM का इस्तेमाल करके बंद करने की कोशिश करेगा. इससेrrजैसे डीबगर को प्रोसेस खत्म होने से पहले, अपनी रिकॉर्डिंग डंप करने का समय मिल जाता है (crrev.com/c/6322538, कुछ समय के लिए वापस लाने के बाद crrev.com/c/6269180 पर फिर से लैंड करना crrev.com/c/6320536, बग: 339644807). - टेस्टिंग:
run_wpt_tests.py --wrapperआर्ग्युमेंट को प्लंब किया गया.इसके लिए, एक टेंपररी रैपर स्क्रिप्ट जनरेट की गई. यह स्क्रिप्ट, ब्राउज़र बाइनरी के पहले डीबगर (जैसे,rr) और उसके आर्ग्युमेंट को जोड़ती है. यह ChromeDriver की उस समस्या को हल करता है जिसमेंargsको स्विच के तौर पर प्रोसेस किए जाने पर, बाइनरी को सीधे तौर पर बदला नहीं जा सकता (crrev.com/c/6271108, Bug: 339644807). - जांच:
TranslateEnabledTestमें, सेटिंग के हिसाब से अनुवाद करने की सुविधा चालू की गई है. इससे जांच करने के लिए ऐसा एनवायरमेंट तैयार किया जा सकेगा जहां ChromeDriver, ब्राउज़र प्रोसेस को मैनेज करता है. साथ ही,--user-data-dirके इंप्लिसिट होने पर,--remote-debugging-portकी नई पाबंदी को बायपास करता है (crrev.com/c/6354089, Bug: 327797500). - DevTools: Android पर दूसरी विंडो में नया टैब खोलने के लिए, DevTools की मल्टी-इंस्टेंस सुविधा के लिए सहायता जोड़ी गई है (crrev.com/c/6352169, Bug: 401269942, Bug: 382183406).
गड़बड़ियां ठीक की गईं
- टारगेट चुनना: हमने उस समस्या को ठीक किया है जिसमें
PdfOopifसुविधा बंद होने पर, मेहमान के तौर पर देखे गए PDF आउट-ऑफ़-प्रोसेस iframe (OOPIF) को टॉप-लेवल के टारगेट की सूची से फ़िल्टर नहीं किया जा रहा था. फ़िल्टर कोchrome-extensionप्रीफ़िक्स को शामिल करने के लिए बढ़ाया गया था. इससे बग ठीक हो गया और MV3 Chrome एक्सटेंशन के लिए कवरेज शामिल हो गया, जो टैब बनाते हैं (crrev.com/c/6383500, Bug: 396611138). - टारगेट चुनने की सुविधा: एक रिग्रेशन को ठीक किया गया है. इसकी वजह से, पैकेज किए गए Chrome ऐप्लिकेशन को टारगेट करते समय,
getWindowHandles()कमांडconnection refusedस्टेटस के साथ काम नहीं करती थी (crrev.com/c/6317161, Bug: 396622746).
आंतरिक बदलाव और रीफ़ैक्टर
- C++ स्टैंडर्ड:
LogMessageऔर ट्रेस इवेंट में फ़ाइल के नामों के लिएstd::string_viewका इस्तेमाल करने वाले बदलाव को फिर से लागू किया गया है. इससे, Rust लॉगिंग स्ट्रक्चर के साथ बेहतर तरीके से काम किया जा सकेगा. ये स्ट्रक्चर, नल-टर्मिनेटेड स्ट्रिंग की गारंटी नहीं देते हैं (crrev.com/c/6387020, crrev.com/c/6383699 और crrev.com/c/6395097 को वापस लाने के बाद, crrev.com/c/5765705 को फिर से लागू किया गया). - C++ स्टैंडर्ड: परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के लिए,
base::Value::Clone()के गैर-ज़रूरी कॉल हटा दिए गए हैं (crrev.com/c/6361818). बिल्ड आउटपुट को क्लीन अप करने के लिए, Windows के लिए खास तौर पर बनाई गई फ़ाइलों में-Wunsafe-buffers-in-libc-callsचेतावनियों को छिपाया गया है (crrev.com/c/6369920, Bug: 390223051). - एक्सटेंशन: एक समस्या की वजह से,
ExtensionManifestV2Unsupportedफ़ेज़ के लिएfieldtrial_testing_config.jsonएंट्री को वापस जोड़ दिया गया है (crrev.com/c/6397497, crrev.com/c/6358257 को वापस जोड़ना, बग: 367395349, बग: 406523920). - दस्तावेज़: Android के लिए, ChromeDriver की टेस्टिंग से जुड़े दस्तावेज़ को बेहतर बनाया गया है (crrev.com/c/6354040).
ChromeDriver 135
नई सुविधाएं
- BiDi: BiDi Mapper को अपडेट किया गया है, ताकि
--enable-unsafe-extension-debuggingके बारे में जानकारी देने पर, ChromeDriver की अनुमतियां इनहेरिट की जा सकें. इससे WebDriver BiDi क्लाइंट, उन एक्सटेंशन को असरदार तरीके से टेस्ट कर पाते हैं जिनके लिए आम तौर पर WebDriver क्लाइंट के पास मौजूद अनुमतियों की ज़रूरत होती है (crrev.com/c/6288627, Bug: 393500934).
गड़बड़ियां ठीक की गईं
- जांच: WDSpec के कई ऐसे टेस्ट के लिए, फिर से चालू की गई और अपडेट की गई उम्मीदें जिन्हें पहले फ़ेल के तौर पर मार्क किया गया था. इससे, पास किए गए टेस्ट के लिए स्पेसिफ़िकेशन के मुताबिक काम करने की कवरेज वापस मिल जाती है (crrev.com/c/6310420).
आंतरिक बदलाव और रीफ़ैक्टर
- क्लीनअप: Lacros को बंद किया जा रहा है. इसलिए, हमने
chrome/test/से Lacros के सभी निशान हटा दिए हैं. इनमेंIS_CHROMEOS_LACROSऔर उससे जुड़ा टेस्ट डेटा भी शामिल है. अबIS_CHROMEOSका इस्तेमाल किया जाएगा (crrev.com/c/6284446, बग: 354842935). - क्लीनअप:
md5sumयूटिलिटी कोdevil_utilसे बदलने के बाद, इसके सभी निशान हटा दिए गए हैं. साथ ही, लेगसी बिल्ड डिपेंडेंसी (crrev.com/c/6309939, Bug: 397452007) को क्लीन अप कर दिया गया है. - C++ स्टैंडर्ड:
ResultCodeऔरIsNormalResultCode()सेchrome::नेमस्पेस हटा दिया गया है. इन्हें ग्लोबल नेमस्पेस में ले जाया गया है. साथ ही, ChromeOS के स्टार्टअप इंपोर्ट (crrev.com/c/6196899, Bug: 41050580) हटा दिए गए हैं. - मेमोरी की सुरक्षा: ChromeDriver में
std::ranges::lower_boundका इस्तेमाल करके,std::lower_boundकॉल को आसान बनाया गया (crrev.com/c/6223172, Bug: 392116519). नीति का पालन न करने वाली फ़ाइलों की पहचान करने के बाद, उन फ़ाइलों के लिएunsafe_libc_callचेतावनियां नहीं दिखाई गईं. ऐसा इसलिए किया गया, ताकि आने वाले समय में नीति उल्लंघन ठीक करने के लिए कार्रवाई की जा सके (crrev.com/c/6187925, Bug: 390223051). सुरक्षा को बेहतर बनाने और कंपाइल-टाइम के दौरान आकलन करने के लिए,std::to_arrayके रिटर्न वैल्यू कोconstexprके तौर पर मार्क किया गया है (crrev.com/c/6298909).
ChromeDriver 134
नई सुविधाएं
- बाउंस ट्रैकिंग को कम करने की सुविधा (DIPS): बाउंस ट्रैकिंग को कम करने की सुविधा के लिए, ChromeDriver में फिर से लैंड करने की सुविधा जोड़ी गई है. यह
RunBounceTrackingMitigationsकमांड का इस्तेमाल करती है. इंटिग्रेशन टेस्ट को फिर से बनाया गया है, ताकि अलग-अलग पेजों का इस्तेमाल किया जा सके. इससे यह पक्का किया जा सकेगा कि कमांड के लागू होने से पहले, स्टेटफ़ुल बाउंस को सही तरीके से रिकॉर्ड किया गया हो. यह सुविधाnav-tracking-mitigationsस्पेसिफ़िकेशन के साथ काम करती है. इसे//chrome(crrev.com/c/4935955, Bug: 1474656) में लागू किया गया है. (ध्यान दें: इसे मूल रूप से crrev.com/c/4873672 में जोड़ा गया था. बाद में, इसे पहले जैसा कर दिया गया). - BiDi: ChromeDriver को अपडेट किया गया है, ताकि वह
goog:प्रीफ़िक्स के साथ WebDriver BiDi एक्सटेंशन की स्टैंडर्ड प्रॉपर्टी इस्तेमाल कर सके. इससे,chromium-bidiमें किए गए बदलावों को लागू किया जा सकेगा. लेगसीchannelप्रॉपर्टी का इस्तेमाल अब नहीं किया जा सकता (crrev.com/c/6179410). - Windows: Windows पर
chromedriver.exeबाइनरी में वर्शन रिसॉर्स जोड़ा गया (crrev.com/c/6114586, Bug: 385300323).
गड़बड़ियां ठीक की गईं
- MPArch/Targets: ChromeOS पर प्राइमरी टारगेट तय करते समय, Chrome एक्सटेंशन के टारगेट (
chrome-extension://) गलत तरीके से खोजे जा रहे थे और अटैच किए जा रहे थे. इस वजह से, बाद की कमांड (जैसे कि नेविगेशन) काम नहीं कर रही थीं. इस समस्या को ठीक कर दिया गया है. इस शुरुआती चरण के दौरान, अब एक्सटेंशन टारगेट को सही तरीके से स्किप किया जाता है (crrev.com/c/6183202, Bug: 385241097). - MPArch/Targets: एक और रिग्रेशन ठीक किया गया है. इसमें एक्सटेंशन
background_pageके लिए टैब टारगेट को, एक्सटेंशन टारगेट की सुविधा बंद होने पर (crrev.com/c/6160774, Bug: 385731198) टॉप-लेवल वेब व्यू से सही तरीके से फ़िल्टर नहीं किया जा रहा था. - MPArch/Navigation: इस समस्या को ठीक किया गया है. इसमें MPArch चालू होने के दौरान, किसी टैब से कुछ समय के लिए कोई चालू पेज अटैच नहीं होता था. इस वजह से, ChromeDriver इसे गड़बड़ी वाली स्थिति के तौर पर देखता था. ChromeDriver अब टैब के नए पेज पर जाने और नेविगेशन पूरा करने का इंतज़ार करता है. इसके बाद, वह स्थिति को ठीक करता है (crrev.com/c/6177606).
- लॉग प्रोसेसिंग: मल्टीबाइट वर्णों वाली लॉग स्ट्रिंग को गलत तरीके से छोटा करने की वजह से होने वाली क्रैश (
base::Value()मेंDCHECKकी गड़बड़ी) की समस्या को ठीक किया गया है. लॉजिक को अपडेट किया गया है, ताकिstd::stringकी लंबाई की जांच करने के बजायUnicodeStringकी सीमा का पता लगाया जा सके. इससे यह पक्का किया जा सकेगा कि कोड पॉइंट मान्य हैं (crrev.com/c/6210809, Bug: 367752739). - जांच: हमने प्रीरेंडरिंग से जुड़े ज़्यादातर डब्ल्यूपीटी (एपीआई से जुड़ी कुछ समस्याओं वाले डब्ल्यूपीटी को छोड़कर) को
content_shellसेheadless_shellपर माइग्रेट कर दिया है. ऐसा इसलिए, क्योंकि हाल ही में एमपीआर्क को फिर से तैयार किया गया है. इससे ChromeDriver, इन डब्ल्यूपीटी को सही तरीके से चला सकता है (crrev.com/c/6168830, Bug: 42323502, Bug: 366257368).
आंतरिक बदलाव और रीफ़ैक्टर
- C++ स्टैंडर्ड:
base::rangesके इस्तेमाल को स्टैंडर्डstd::rangesसे बदल दिया गया है (crrev.com/c/6200893, crrev.com/c/6177197, Bug: 386918226).b ? "true" : "false"पैटर्न को फिर से लिखा गया है, ताकि जहां भी हो सके वहांbase::ToString(bool)का इस्तेमाल किया जा सके (crrev.com/c/6165810, Bug: 335797528). सुरक्षित नहीं माने जाने वालेStringPrintfNonConstexpr()फ़ंक्शन को हटा दिया गया है. साथ ही, इसे स्ट्रिंग फ़ॉर्मैट करने के ज़्यादा सुरक्षित विकल्पों (crrev.com/c/6149756) से बदल दिया गया है. असुरक्षित बफ़र की चेतावनियों (crrev.com/c/6217045, Bug: 392116519) को ठीक करने के लिए, पॉइंटर अंकगणित (+ std::size) को स्टैंडर्डbegin/endइटरेटर से बदल दिया गया है. - सफ़ाई:
FedCmIdpSigninStatusसुविधा फ़्लैग और उसके रनटाइम फ़्लैग (crrev.com/c/6111321, Bug: 381211734) को हटा दिया गया है. (ध्यान दें: हटाने की पिछली कोशिश को crrev.com/c/6082405 पर वापस लाया गया था, क्योंकि इससे समस्याएं आ रही थीं).
ChromeDriver 133
नई सुविधाएं
- आर्किटेक्चर: ChromeDriver को फिर से बनाया गया है, ताकि यह मल्टीपल पेज आर्किटेक्चर (एमपीआर्क) और टैब टारगेट के साथ काम कर सके.
WebViewImplअबAutoAttachके ज़रिए टैब के टारगेट से कनेक्ट होता है. पहले जिन कमांड के लिए पेज की ज़रूरत होती थी वे अब टैब में मौजूद चालू पेज को खोजती हैं. इस बदलाव की वजह से, एक्सटेंशन के बैकग्राउंड पेजों की जांच की जा सकती है. अब इन्हेंenable_extension_targetsकी मदद से टारगेट किया जा सकता है. डिफ़ॉल्ट रूप से, एक्सटेंशन के टारगेट स्किप कर दिए जाते हैं (crrev.com/c/5961156, Bug: 379767670, Bug: 42323502). एक रिग्रेशन को ठीक किया गया है, जिसमेंchrome-extension://यूआरएल पेजों को एक्सटेंशन के टारगेट के तौर पर गलत तरीके से शामिल किया गया था. अब सिर्फ़type=background_pageको चुना जा सकता है (crrev.com/c/6093588, गड़बड़ी: 383141569).enableExtensionTargetsको टॉप-लेवल की सुविधा (crrev.com/c/6093032) के बजाय Chrome के विकल्पों में ले जाया गया. - क्लासिक: एक से ज़्यादा कुंजी वाले एलिमेंट के रेफ़रंस के लिए, फिर से सहायता उपलब्ध कराई गई है. इस सुविधा के बारे में कोई दस्तावेज़ उपलब्ध नहीं है. इसका इस्तेमाल अक्सर W3C और नॉन-W3C, दोनों मोड के साथ काम करने वाले रेफ़रंस बनाने के लिए किया जाता है. अब यह सुविधा आधिकारिक तौर पर उपलब्ध है और इंटिग्रेशन टेस्ट (crrev.com/c/6063257, Bug: 379584343) में शामिल है.
गड़बड़ियां ठीक की गईं
- स्थिरता:
browsingContext.closeकमांड को हैंडल करते समय, ChromeDriver को अनिश्चित काल के लिए ब्लॉक होने से रोका गया. ब्राउज़र को बंद करने की ज़रूरत है या नहीं, यह तय करने के लिए ChromeDriver अब किसी दूसरे तरीके का इस्तेमाल करता है. इसलिए, अब यहbeforeunloadप्रॉम्प्ट को बिना किसी रुकावट के सही तरीके से हैंडल कर सकता है (crrev.com/c/6080431, Bug: 42323838, Bug: 379049702). - नेविगेशन: हमने एक गड़बड़ी को ठीक किया है. इस गड़बड़ी की वजह से,
about:blank?testयूआरएल वाला डमी पेज लोड नहीं हो रहा था. नई विंडो के जवाब न देने (baseURL==about:blankऔरdocumentURL!=about:blank) की पहचान करने के लिए इस्तेमाल होने वाला अनुमानित तरीका, अब क्वेरी-स्ट्रिंग वाले इन यूआरएल को खास मामले के तौर पर सही तरीके से हैंडल करता है (crrev.com/c/6038039, Bug: 377410086). - नेविगेशन:
AbortedByNavigationगड़बड़ी की वजह से काम न करने वाले निर्देशों को फिर से आज़माने के लिए लॉजिक जोड़ा गया. अब ChromeDriver, स्टैंडर्डTimeoutगड़बड़ी (crrev.com/c/6012427, Bug: 42323825) दिखाने से पहले, कमांड को कई बार आज़माएगा. - डाइग्नोस्टिक्स:
kTargetCrashedगड़बड़ी की जानकारी सीधेNavigationTrackerके ज़रिए भेजी गई. अगर नेविगेशन का पता लगाने के दौरान कोई टारगेट क्रैश हो जाता है, तो अब उपयोगकर्ता को सामान्य टाइमआउट के बजाय यह गड़बड़ी दिखती है. इससे गड़बड़ी की सूचना देने वाले मैसेज को बेहतर बनाया जा सकता है (crrev.com/c/6032612, Bug: 377410086). - Android:
chrome_android_impl.ccमें टैब टारगेट लुकअप की समस्या ठीक की गई (crrev.com/c/6110492, Bug: 384781876). - टेस्टिंग:
win11-arm64पर विंडो के साइज़ की जांच से जुड़े कई टेस्ट में, फ़्लैकनेस की समस्या ठीक की गई है. उदाहरण के लिए, धुंधले किए गए एलिमेंट पर क्लिक करना. अब टेस्ट, विंडो का साइज़ बदलने के बाद, बार-बार अंदरूनी विंडो के साइज़ के बारे में क्वेरी करते हैं. ऐसा तब तक किया जाता है, जब तक कि विंडो की ऊंचाई सही तरीके से रजिस्टर न हो जाए. इसमें विंडो को फिर से रेंडर करने में लगने वाला समय भी शामिल होता है (crrev.com/c/6012658, Bug: 378470046). - जांच: इंटिग्रेशन टेस्ट में कई गड़बड़ियों को ठीक किया गया है. इसके लिए, Python कनेक्शन से जुड़ी सामान्य गड़बड़ियों को
WebSocketConnectionClosedExceptionपर मैप किया गया है. साथ ही, गड़बड़ी ठीक करने की प्रोसेस को आसान बनाया गया है (crrev.com/c/6054134). इसके अलावा,PostCommandकी जगहSendCommandका इस्तेमाल करके रेस कंडीशन से बचा गया है. रेस कंडीशन तब होती है, जब किसी ऑपरेशन के नतीजे इस बात पर निर्भर करते हैं कि कौनसे टास्क पहले पूरे होते हैं (crrev.com/c/6054137). साथ ही,ExecuteScriptके तुरंत असर दिखाने की सुविधा को, नेविगेशन का पता लगाने वाले ज़्यादा भरोसेमंद तरीकों से बदला गया है (crrev.com/c/6063040, गड़बड़ी: 42323825). - जांच:
FedCmIdpSigninStatusफ़ीचर फ़्लैग को हटाने की सुविधा को वापस लाया गया है, क्योंकि इसे हटाने से समस्याएं आ रही थीं (crrev.com/c/6082405, crrev.com/c/6078693 को वापस लाना, बग: 384866916, बग: 381211734). - टूल:
log_replayस्क्रिप्ट मेंPrintकमांड के लिए सहायता जोड़ी गई (crrev.com/c/6010809, Bug: 378451938).
आंतरिक बदलाव और रीफ़ैक्टर
- C++ स्टैंडर्ड:
Mojo.InvalidUTF8Stringहिस्टोग्राम हटा दिया गया है. इससे, सार्वजनिक मोजो हेडर और उसके बाद के IWYU कैस्केड को क्लीन अप किया जा सकेगा (crrev.com/c/6133861, Bug: 40509710, Bug: 386793084). - C++ स्टैंडर्ड:
std::listसेbase::circular_dequeपर स्विच करके,WaitableEvent::Wait()में मेमोरी के इस्तेमाल को कम किया गया (crrev.com/c/6097198). - C++ स्टैंडर्ड:
chrome/कोडबेस में, उपयोगकर्ता के तय किए गए खाली कंस्ट्रक्टर और डिस्ट्रक्टर को डिफ़ॉल्ट किया गया है. हालांकि, ऐसा सिर्फ़ उन जगहों पर किया गया है जहां यह मुमकिन है (crrev.com/c/6101911, crrev.com/c/6056220, Bug: 381119547). - मेमोरी की सुरक्षा (स्पैनिफ़िकेशन):
chrome/में C-स्टाइल के ऐरे कोstd::arrayमें माइग्रेट किया गया है. ऐसा-Wunsafe-buffer-usageचेतावनियों (crrev.com/c/6043879, Bug: 378069401) को ठीक करने के लिए किया गया है. स्पैन फ़ंक्शन मेंsize_tके सख्त इस्तेमाल को प्लंब किया गया (crrev.com/c/6026238, crrev.com/c/6020621). - जांच: फ़ुलस्क्रीन
{ref,crash}testsको वापसwpt_internal/पर अपस्ट्रीम किया गया है, क्योंकिtestdriverअब इनका इस्तेमाल कर सकता है (crrev.com/c/6088404). - जांच: iOS के लिए
wptrunnerको ठीक किया गया है, ताकि डिफ़ॉल्ट आउटपुट डायरेक्ट्री (जैसे,//out/*-ios-wpt-fyi-rel/) का इस्तेमाल करते समय, ChromeDriver रैपर का सही पता लगाया जा सके. इसके लिए,--build-directoryको सही तरीके से प्लंब किया गया है (crrev.com/c/6014940, Bug: 374199289, Bug: 355218109). - जांच:
testBrowserCrashWhileWaitingForEventsइंटिग्रेशन टेस्ट जोड़ा गया है. इससे रिग्रेशन के उन मामलों को दिखाया जा सकता है जिनमें क्लाइंट को गंभीर गड़बड़ियों के बारे में पता नहीं चलता (crrev.com/c/6025145, गड़बड़ी: 379049702). - जांच: कुछ ऐसे WPT को बंद कर दिया गया है जो
headless_shellऔर ChromeDriver के साथ मिलकर काम करते समय क्रैश हो जाते हैं. ऐसा बिल्डरों को स्थिर करने के लिए किया गया है (crrev.com/c/6032163, Bug: 377410086).
ChromeDriver 132
नई सुविधाएं
- जांच: ChromeDriver इंटिग्रेशन टेस्ट के लिए,
repeatऔरretry-limitकमांड-लाइन पैरामीटर के लिए सहायता जोड़ी गई है. इन्हें स्टैंडर्डisolated-script-test-repeatऔरisolated-script-test-launcher-retry-limitआर्ग्युमेंट (crrev.com/c/5938195, Bug: 374681919) पर मैप किया गया है. स्थानीय तौर पर (नॉन-सीआई) किए गए टेस्ट के लिए, डिफ़ॉल्टretry-limitको 0 (crrev.com/c/5953326, Bug: 374681919) पर सेट कर दिया गया है. - WebSockets:
EmbeddedTestServerमेंWebSocketConnectionऔर उससे जुड़ी क्लास लागू की गई हैं. इससे WebSocket से जुड़ी जांचों कोSpawnedTestServerसे माइग्रेट करने की अनुमति मिलती है. इसमें प्रोटोकॉल के हिसाब से फ़्रेमिंग और हैंडलर का आसान रजिस्ट्रेशन शामिल है (crrev.com/c/5849732, Bug: 40812029).
गड़बड़ियां ठीक की गईं
- स्टेबिलिटी: ChromeDriver के क्रैश होने की समस्या को ठीक किया गया है. यह समस्या तब हो सकती है, जब क्लिक कमांड की वजह से ब्राउज़र बंद हो जाता है. ऐसा, पहले के रीफ़ैक्टर में पेश की गई
kTargetDetachedगड़बड़ी की स्थिति को ठीक से हैंडल करने की वजह से होता है (crrev.com/c/5934524, Bug: 42323264). - स्थिरता: रेस कंडीशन (crrev.com/c/5975526, Bug: 375971185) को ठीक करके, Mac ARM64 पर
testClickNavigateRemoteToLocalइंटिग्रेशन टेस्ट के दौरान होने वाले क्रैश की समस्या को ठीक किया गया है. - नेविगेशन:
GoBackऔरGoForwardकमांड से जुड़ी समस्या ठीक की गई है. पहले, अगर दस्तावेज़ को चालू स्थिति से हटाया जा रहा था (इसका मतलब है कि नेविगेशन जारी है) और इस दौरानPage.getNavigationHistoryको कॉल किया जाता था, तो ये कमांड काम नहीं करती थीं. ChromeDriver अब इस स्थिति में कमांड को सही तरीके से फिर से आज़माता है (crrev.com/c/6011739, Bug: 378433873). - स्क्रिप्ट को लागू करना: यह पक्का किया गया है कि नेविगेशन को ट्रिगर करने वाली या विंडो को बंद करने वाली स्क्रिप्ट, ब्राउज़र की ओर से नतीजे की गारंटी न दिए जाने पर, स्टैंडर्ड
ScriptTimeoutगड़बड़ी दिखाएं. इससे उपयोगकर्ता को टेस्ट के अस्पष्ट स्ट्रक्चर (crrev.com/c/5934265, Bug: 372883701) से बचने के लिए कहा जाता है. - स्क्रिप्ट को लागू करना: उस समस्या को ठीक किया गया है जिसमें लॉग रीप्ले की सुविधा काम नहीं कर रही थी. ऐसा "अनपेक्षित कमांड रिस्पॉन्स" गड़बड़ी की वजह से हो रहा था (crrev.com/c/5961142, गड़बड़ी: 42323342).
- गड़बड़ी के कोड: ChromeDriver में गड़बड़ी ठीक करने की सुविधा को बेहतर बनाया गया है. अब यह सभी अपवादों को "कोड" प्रॉपर्टी के साथ, सामान्य "JavaScript गड़बड़ी" में अपने-आप रैप नहीं करेगी. इससे यह पक्का होता है कि "स्टेल एलिमेंट रेफ़रंस" (
call_function.jsसे) और "अमान्य एलिमेंट की स्थिति" (Selenium AtomsCLEARफ़ंक्शन से) जैसी स्टैंडर्ड गड़बड़ियों की जानकारी, उपयोगकर्ता को सही तरीके से मिलती है (crrev.com/c/5937893, Bug: 42323409).GetElementTagNameमें गड़बड़ी ठीक करने की सुविधा को बेहतर बनाया गया है, ताकि टैग के नाम की जानकारी मौजूद न होने पर, उसे "object is not an Element" के तौर पर सही तरीके से समझा जा सके (crrev.com/c/5929087). - BiDi: उस समस्या को ठीक किया गया है जिसमें कस्टम उपयोगकर्ता प्रोफ़ाइल का इस्तेमाल करने पर, BiDi सेशन शुरू नहीं हो पाते थे. कस्टम प्रोफ़ाइल के लोड किए गए पेज की वजह से, BiDiMapper शुरू नहीं हो पाता था. ChromeDriver अब यह पक्का करता है कि पहला टैब हमेशा
data:,लोड हो, ताकि मैपर के लिए एक नया स्लेट उपलब्ध हो (crrev.com/c/5960656, Bug: 366886096). - गुप्त मोड: हमने एक ऐसे बग को ठीक किया है जिसकी वजह से, ChromeDriver गुप्त मोड में काम करते समय नए टैब नहीं बना पा रहा था (crrev.com/c/5952980, Bug: 42323352).
- जांच:
testScriptNavigateRemoteToLocalइंटिग्रेशन टेस्ट में गड़बड़ी को ठीक किया गया. यह टेस्ट 8.33% की दर से फ़ेल हो रहा था. साथ ही, रेस कंडीशन (crrev.com/c/6010867, Bug: 378387680) के लिए फ़िक्स को फिर से बनाने और उसकी पुष्टि करने के लिए, C++ इंटिग्रेशन टेस्ट जोड़े गए. - जांच: Mac (
testWindowMinimize) और Windows (ChromeDownloadDirTest.testFileDownloadAfterTab,InvalidCertificateTest.*) पर, पहले से मौजूद कई इंटिग्रेशन टेस्ट को फिर से चालू किया गया है. साथ ही, दुनिया भर में (testShadowDomFindElement, एलिमेंट के स्क्रीनशॉट टेस्ट) भी ऐसा किया गया है. कुछ समय के लिए,css/css-scrollbars/WPT टेस्ट को हेडलेस शेल से कॉन्टेंट शेल पर वापस ले जाया गया है. ऐसा इसलिए किया गया है, क्योंकि ये टेस्ट ठीक से काम नहीं कर रहे थे (crrev.com/c/5953708, crrev.com/c/5948803, crrev.com/c/5941351, crrev.com/c/5941098, crrev.com/c/5959254, Bug: 42323825, Bug: 40848017, Bug: 40736504, Bug: 40176424, Bug: 40927590).
आंतरिक बदलाव और रीफ़ैक्टर
- BiDi:
chromium-bidiमैपर की डिपेंडेंसी को अपग्रेड किया गया है, ताकि अपस्ट्रीम से जुड़े नए फ़िक्स और प्रोटोकॉल अपडेट को शामिल किया जा सके (crrev.com/c/5953339, crrev.com/c/5865478, Bug: 4226). (ध्यान दें: WPT फ़ेल होने की वजह से, मैपर बंप को कुछ समय के लिए पहले जैसा कर दिया गया था. इसके बाद, इसे फिर से लागू कर दिया गया (crrev.com/c/5961113)). - आर्किटेक्चर: ChromeDriver में थ्रेड-लोकल सेशन ऑब्जेक्ट के इस्तेमाल को कम किया गया है. इससे टेस्ट के बीच स्टेट-शेयरिंग से जुड़ी गड़बड़ियों को रोका जा सकेगा. साथ ही, सेशन को मैनेज करना आसान हो जाएगा (crrev.com/c/5978486, गड़बड़ी: 42323555). C++ इंटिग्रेशन टेस्ट को फिर से फ़ैक्टर किया गया है, ताकि शेयर किए गए टेस्ट फ़िक्चर का इस्तेमाल किया जा सके (crrev.com/c/5971474, Bug: 42323555).
- सफ़ाई: "पुराने हेडलेस" मोड के लिए, काम न करने वाले समाधानों को हटा दिया गया है. ऐसा इसलिए, क्योंकि लेगसी
chrome-headless-shellकोड अब Chrome में मौजूद नहीं है (crrev.com/c/5961602, बग: 42323387). - क्लीनअप: इस्तेमाल न की गई
java_tests.txtफ़ाइल को हटा दिया गया है. यह फ़ाइल, ChromeDriver के स्वीकार्यता टेस्ट (crrev.com/c/5970994, Bug: 357737793) के बचे हुए हिस्से से जुड़ी है. - टेस्टिंग: C++ इंटिग्रेशन टेस्ट जोड़ा गया है. इससे यह पुष्टि की जा सकेगी कि ChromeDriver, एक ही
user-data-dirके साथ पैरलल सेशन नहीं बनाता है या सेशन के बीच यूआरएल को लीक नहीं करता है. इससे गड़बड़ियां हो सकती हैं (crrev.com/c/5961137, Bug: 375312517). - जांच: यह पक्का किया गया है कि इंटिग्रेशन टेस्ट से शुरू किए गए ChromeDriver के अस्थायी इंस्टेंस को जल्द से जल्द बंद कर दिया जाए, ताकि संसाधनों को खाली किया जा सके (crrev.com/c/5997970, Bug: 375974725).
ChromeDriver 131
नई सुविधाएं
- BiDi:
chromium-bidiमैपर की डिपेंडेंसी को v0.8.0 पर ले जाया गया है. इसमें प्रोटोकॉल के नए अपडेट और गड़बड़ियों को ठीक किया गया है (crrev.com/c/5899240, crrev.com/c/5865478, Bug: 4226). - डीओएम ऐक्सेस:
GetElementShadowRootकमांड में, क्लोज़्ड शैडो रूट के लिए सहायता जोड़ी गई. पहले, बंद किए गए शैडो रूट (crrev.com/c/5923865, Bug: 372834222) को ऐक्सेस करने की कोशिश करने पर, यह कमांडNoSuchShadowRootगड़बड़ी दिखाती थी. - DOM ऐक्सेस: विंडो और फ़्रेम आइडेंटिफ़ायर के लिए सहायता लागू की गई है. इससे, विंडो या फ़्रेम (इसमें OOP Iframes भी शामिल हैं) के रेफ़रंस को, एक्ज़ीक्यूट की गई स्क्रिप्ट से वापस लाया जा सकता है, ताकि आगे के लिए डीरेफ़रंसिंग की जा सके (crrev.com/c/5890437, crrev.com/c/5923555, Bug: 366272556, Bug: 40229283).
- WebAuthn: WebAuthn ऑटोमेशन एपीआई को बड़ा किया गया है, ताकि इसमें
userNameऔरuserDisplayNameप्रॉपर्टी शामिल की जा सकें (crrev.com/c/5905423, Bug: 367915823).
गड़बड़ियां ठीक की गईं
- इनपुट: रिमोट फ़्रेम पर माउस क्लिक करने से जुड़ी रेस कंडीशन को ठीक किया गया है. इसके लिए, माउस इवेंट को टारगेट फ़्रेम के सबसे पुराने सेम-ऑरिजिन ऐनसेस्टर पर रूट किया गया है. इसके बजाय, उन्हें सिर्फ़ सबसे ऊपर वाले फ़्रेम पर भेजा गया था (crrev.com/c/5836968, Bug: 42323535).
- इनपुट:
Input.dispatchTouchEventकमांड के साथ भेजे गए टाइमस्टैंप के फ़ॉर्मैट को मिलीसेकंड से सेकंड में बदल दिया गया है. इससे WPT पॉइंटर इवेंट की टेस्टिंग में आने वाली क्रैश की समस्याओं को ठीक किया गया है (crrev.com/c/5924253, Bug: 360918166). - जांच: Mac (crrev.com/c/5923569, crrev.com/c/5922823, crrev.com/c/5921444, crrev.com/c/5920851, crrev.com/c/5921442) और Windows (crrev.com/c/5923955) पर ChromeDriver की कई जांचों को फिर से चालू किया गया है, क्योंकि अब इनसे जुड़ी गड़बड़ियां ठीक हो गई हैं.
आंतरिक बदलाव और रीफ़ैक्टर
- मेमोरी सेफ़्टी (स्पैनिफ़िकेशन):
net::HttpUtil(crrev.com/c/5854420) में असुरक्षित पॉइंटर के इस्तेमाल कोbase::spanसे बदल दिया गया है. साथ ही,base::File::WriteAtCurrentPos()को स्पैन पर आधारित इसके बराबर के फ़ंक्शन (crrev.com/c/5818972) पर माइग्रेट कर दिया गया है. मैप पॉइंटर की वैल्यू (जैसे,std::map,std::unordered_map) कोraw_ptrमें फिर से लिखा गया (crrev.com/c/5867189, Bug: 329428315). - C++ स्टैंडर्ड: Abseil एट्रिब्यूट मैक्रो (
ABSL_ATTRIBUTE_*) को स्टैंडर्डbase/मैक्रो (crrev.com/c/5852373) से बदल दिया गया है. पास-बाय-वैल्यू स्ट्रिंग/वेक्टर कोstd::string_viewया const रेफ़रंस से बदलकर, अनचाही कॉपी से बचा गया. साथ ही,std::string_viewआर्ग्युमेंट सेstd::string_viewक्वालिफ़ायर हटा दिए गए (crrev.com/c/5914620, crrev.com/c/5906184, Bug: 369952985).const - बुनियादी ढांचा: ChromeDriver का इस्तेमाल करके
web-engineको कंट्रोल करने के लिए, Fuchsia को कॉन्फ़िगर किया गया (crrev.com/c/5867896, Bug: 40935291). - जांच: हमने फ़ेन्स्ड फ़्रेम के WebAuthn टेस्ट को लेगसी कॉन्टेंट शेल रनर से ChromeDriver के साथ हेडलेस Chrome पर माइग्रेट किया है. ऐसा इसलिए किया गया है, क्योंकि लेगसी रनर जल्द ही WebAuthn testdriver API (crrev.com/c/5920770, बग: 372169469) के लिए सहायता बंद कर देगा.
ChromeDriver 130
नई सुविधाएं
- BiDi: BiDi Mapper की डिपेंडेंसी को अपडेट किया गया है. इससे अपस्ट्रीम
chromium-bidiसे प्रोटोकॉल के नए अपडेट और बग ठीक करने वाले फ़िक्स मिल सकेंगे (crrev.com/c/5850570, crrev.com/c/5840080 को वापस लाने के बाद crrev.com/c/5837065 को फिर से लागू किया गया; crrev.com/c/5717956, बग: 4226). - BiDi: BiDi सेशन शुरू करते समय, ChromeDriver को अपडेट किया गया है, ताकि वह
session.newकमांड के ज़रिएunhandledPromptBehaviorको सीधे Mapper तक पहुंचा सके. इससेMapperOptions(crrev.com/c/5682934, crrev.com/c/5766077, Bug: 42323841, Bug: 356371297) से माइग्रेट करने की प्रोसेस पूरी हो जाती है. - टेस्टिंग: डेस्कटॉप बिल्ड के लिए,
bisect-builds.pyस्क्रिप्ट में--chromedriverआर्ग्युमेंट के लिए सहायता जोड़ी गई है. इससे स्क्रिप्ट, WebDriver/ChromeDriver पर निर्भर टेस्ट के लिए, बाईसेक्शन के दौरान ChromeDriver के सही वर्शन को अपने-आप डाउनलोड और इस्तेमाल कर सकती है (crrev.com/c/5861048, Bug: 352344089).
आंतरिक बदलाव और रीफ़ैक्टर
- C++ स्टैंडर्ड: अलग-अलग क्लास में "rule-of-five" से जुड़ी समस्याएं हल की गईं. Chrome स्टाइल प्लगिन, आउट-ऑफ़-लाइन डिस्ट्रक्टर पर ज़ोर देता है. हालांकि, यह आउट-ऑफ़-लाइन मूव कंस्ट्रक्टर को लागू नहीं करता. इसलिए, कंपाइलर मूव ऑपरेटर को मिटा रहा था और चुपचाप कॉपी पर वापस आ रहा था. ये छूटे हुए एलान जोड़ दिए गए हैं (crrev.com/c/5846757, Bug: 364788123).
- जांच:
wptrunnerजांच के नतीजों की खास जानकारी को बेहतर बनाया गया है. इसके लिए, हार्डकोड की गईchromeस्ट्रिंग को इस्तेमाल किए गए असली प्रॉडक्ट से बदल दिया गया है. साथ ही, खास जानकारी के आउटपुट से ज़्यादा जानकारी वालेcommandआर्टफ़ैक्ट को छिपा दिया गया है (crrev.com/c/5825633, Bug: 41494889). - टेस्टिंग: macOS 15 (Mac15) पर ChromeDriver इंटिग्रेशन टेस्ट में, टेस्ट के फ़ेल होने की कई समस्याओं को ठीक किया गया है. इसके लिए, कुछ खास टाइमआउट को दोगुना किया गया है, क्योंकि इस ओएस पर टेस्ट को Mac14 की तुलना में काफ़ी ज़्यादा समय की ज़रूरत होती है. इसके अलावा, चार वर्चुअल सेंसर टेस्ट को भी अनदेखा की जाने वाली सूची में जोड़ा गया है. इसकी वजह, टेस्ट के नतीजे में बार-बार बदलाव होना है (crrev.com/c/5817455, Bug: 354939744).
- जांच: Mac पर,
ChromeDriverSiteIsolation.testClickNavigateLocalToLocalटेस्ट को बंद कर दिया गया है. यह टेस्ट, कभी-कभी फ़ेल हो जाता था (crrev.com/c/5806894, Bug: 361521805). साथ ही, Windows 11 परChromeDriverTest.testClickElement*ObscuredByScrollBarटेस्ट को बंद कर दिया गया है. यह टेस्ट, कभी-कभी फ़ेल हो जाता था (crrev.com/c/5804083, Bug: 360058651). - जांच: बुनियादी ढांचे से जुड़ी कई समस्याओं की वजह से, ChromeDriver के लिए स्वीकृति जांचों को हटा दिया गया है. ये जांचें, ChromeDriver के मौजूदा वर्शन की जांच करने के लिए, Chrome के पुराने वर्शन डाउनलोड करती थीं. इन्हें बाद में, ऑटो रोल की सुविधा के साथ सीआई में फिर से जोड़ा जा सकता है (crrev.com/c/5812142, Bug: 357737793).
ChromeDriver 129
नई सुविधाएं
- BiDi: ChromeDriver सेशन शुरू करने में मदद करने वाले टूल को अपडेट किया गया है, ताकि BiDi Mapper को
session.newकमांड भेजी जा सके. इससे, मैपर सीधे तौर पर क्षमताओं को मैनेज कर सकेगा. यहMapperOptions(crrev.com/c/5741432, Bug: 356371297) को हटाने की दिशा में पहला कदम है. (ध्यान दें: इससे जुड़ा एक बदलाव crrev.com/c/5754093, प्रोसेस किए गएunhandledPromptBehaviorको उपलब्ध कराता है. हालांकि, टेस्ट कवरेज में गिरावट की वजह से इसे वापस कर दिया गया है crrev.com/c/5755744). - Compute Pressure: वर्चुअल प्रेशर सोर्स को मैनेज करने के लिए, नई एक्सटेंशन कमांड जोड़ी गई हैं. साथ ही, Compute Pressure स्पेसिफ़िकेशन के ऑटोमेशन सेक्शन को लागू किया गया है. इन कमांड को पार्स किया जाता है और सीडीपी लेयर को फ़ॉरवर्ड किया जाता है (crrev.com/c/5666583, Bug: 347031400).
- MV2 एक्सटेंशन: MV2 के व्यवहार को लागू करने वाले टेस्ट अपडेट किए गए हैं, ताकि एक्सटेंशन मेनिफ़ेस्ट V2 को बंद करने से जुड़े फ़ील्ड ट्रायल (crrev.com/c/5685054, बग: 339061151) के हिस्से के तौर पर
ScopedTestMV2Enablerका इस्तेमाल किया जा सके.
गड़बड़ियां ठीक की गईं
- क्लासिक सीरियलाइज़ेशन: WebDriver Classic स्क्रिप्ट के एक्ज़ीक्यूशन के नतीजों में, देखे गए ऑब्जेक्ट को ट्रैक किया जाता है. इससे इनफ़िनिट लूप को रोका जा सकता है और
Array.prototype.includesके ओवरराइड को स्वीकार किया जा सकता है (crrev.com/c/5765833, Bug: 357472850).Set(ध्यान दें: बाद में, WPT रिग्रेशन की वजह से इसे वापस कर दिया गया था crrev.com/c/5773175).
आंतरिक बदलाव और रीफ़ैक्टर
- BiDi: BiDi Mapper की डिपेंडेंसी को अपडेट किया गया है, ताकि
chromium-bidiसे जुड़े हाल ही के बग ठीक किए जा सकें और प्रोटोकॉल अपडेट शामिल किए जा सकें (crrev.com/c/5756587, crrev.com/c/5717956, Bug: 4226). - मेमोरी की सुरक्षा (स्पैनिफ़िकेशन):
WebSocketFrameParser::Decode,MaskWebSocketFramePayload, औरWriteWebSocketFrameHeaderमें असुरक्षित बफ़र के इस्तेमाल कोbase::spanसे बदल दिया गया है (crrev.com/c/5764863, crrev.com/c/5743019, crrev.com/c/5722108, Bug: 40284755, Bug: 354307327).chrome/*में#pragma allow_unsafe_buffersको जोड़ा गया है, ताकि आगे की गड़बड़ियों को ठीक किया जा सके (crrev.com/c/5717950, Bug: 40285824). साथ ही,UNSAFE_BUFFERS()मैक्रो कोUNSAFE_TODO()में बदला गया है (crrev.com/c/5786346).base::spanफ़ील्ड कोbase::raw_spanमें फिर से लिखा गया (crrev.com/c/5515096, Bug: 332587642). - C++ स्टैंडर्ड: कोडबेस में, अलग-अलग लंबाई वाले खतरनाक वैरिएबल (वीएलए) का इस्तेमाल बंद कर दिया गया है. इसके लिए, ऐरे की लंबाई को साफ़ तौर पर
constexprके तौर पर मार्क किया गया है (crrev.com/c/5738737, बग: 349656479). ज़रूरी<unordered_map>हेडर शामिल किए गए हैं. इन्हें पहले ट्रांज़िटिव तरीके से पुल किया गया था (crrev.com/c/5792881). - आर्किटेक्चर:
WebSocketEncoderके लागू होने की प्रोसेस को अनफ़ोर्क किया गया है. इसके लिए,//services/network/public/cpp/serverपर माइग्रेट करने की रुकी हुई प्रोसेस को वापस लाया गया है. साथ ही, लॉजिक को वापस//net/serverमें शामिल किया गया है, ताकि अपडेट लगातार मिलते रहें (crrev.com/c/5768214, Bug: 40205564).
ChromeDriver 128
नई सुविधाएं
- सुविधाएं:
unhandledPromptBehaviorसुविधा के लिए डिक्शनरी का इस्तेमाल करने की अनुमति दी गई है. यह सुविधा, स्टैंडर्ड सुविधाओं के स्ट्रक्चर के मुताबिक काम करती है. हालांकि, Mapper (crrev.com/c/5692204, crrev.com/c/5682934, Bug: 42323841) अब भी इसका पूरी तरह से पालन नहीं करता है. - स्टार्टअप: ChromeDriver में
--ignore-explicit-portकमांड-लाइन आर्ग्युमेंट जोड़ा गया. इस अस्थायी समाधान की वजह से, ChromeDriver को साफ़ तौर पर दिए गए किसी भी पोर्ट को अनदेखा करना पड़ता है. इसके बजाय, उसे एक फ़्री पोर्ट ढूंढना होता है और उससे बाइंड करना होता है. इससे वेब प्लैटफ़ॉर्म टेस्ट को एक्ज़ीक्यूट करने के दौरान, टीसीपी पोर्ट की रेस हल हो जाती है. इसे M132 के बाद हटा दिया जाएगा (crrev.com/c/5724574, crrev.com/c/5703976, Bug: 42323836).
गड़बड़ियां ठीक की गईं
- सेंसर:
setSensorOverrideReadingsसीडीपी कमांड से कोई वैल्यू नहीं मिलती है (crrev.com/c/5703589). इसलिए,SendCommandAndGetResult()के बजायSendCommand()का इस्तेमाल करने के लिए,ExecuteUpdateVirtualSensorकमांड को ठीक किया गया है. - FedCM: FedCM ChromeDriver टेस्ट में रेस कंडीशन को ठीक किया गया है. अब यह दावा नहीं किया जाता है कि जब कोई डायलॉग बॉक्स दिखने की उम्मीद होती है, तब
NoSuchDialogदिखता है. इससे, डायलॉग बॉक्स के बहुत तेज़ी से दिखने पर होने वाली गड़बड़ियों को रोका जा सकेगा (crrev.com/c/5713515, Bug: 346530330). - जांच: Mac पर WebAuthn वर्चुअल ऑथेंटिकेटर की जांच फिर से चालू की गई. ऐसा इसलिए किया गया, क्योंकि इससे जुड़ी समस्या (crbug.com/40233722) ठीक कर दी गई है (crrev.com/c/5635806, Bug: 329130177).
- गड़बड़ी के मैसेज:
execute/asyncकमांड के लिए, गड़बड़ी के मैसेज में टाइपिंग की गड़बड़ी को ठीक किया गया (crrev.com/c/5697913).
आंतरिक बदलाव और रीफ़ैक्टर
- BiDi: BiDi Mapper की डिपेंडेंसी को अपग्रेड किया गया है. इससे, अपस्ट्रीम
chromium-bidiप्रोजेक्ट से प्रोटोकॉल की नई सुविधाएं, बग ठीक करने से जुड़े अपडेट, और WPT की उम्मीदों से जुड़े अपडेट मिले हैं (crrev.com/c/5717956, crrev.com/c/5644823, crrev.com/c/5630727, crrev.com/c/5615110, crrev.com/c/5614670, Bug: 4226, Bug: 347863537, Bug: 324436866). - डिप्रेकेट की गई
GrowableIOBuffer::StartOfBufferविधि के इस्तेमाल कोspanसे बदल दिया गया है. इससे बिना जांच किए गए पॉइंटर (crrev.com/c/5706088, Bug: 329476354) को हटाकर, मेमोरी की सुरक्षा को बेहतर बनाया गया है. - मेमोरी की सुरक्षा को बेहतर बनाने के लिए,
WebSocketFrameParserकेDecodeतरीकों को स्पैनिफ़ाइड किया गया (crrev.com/c/5722108, Bug: 354307327). absl::optionalके बचे हुए हिस्सों को हटा दिया गया है. इसके लिए, पुराने Abseil हेडर हटा दिए गए हैं औरstd::optionalपर माइग्रेट कर दिया गया है (crrev.com/c/5691505, Bug: 40242125).- ChromeDriver में बदलाव किया गया है, ताकि सभी अनजान टारगेट टाइप (
shared_storage_workletभी शामिल हैं) को गड़बड़ियों के तौर पर न माना जाए, बल्किWebViewInfo::kOtherके तौर पर माना जाए. इससे Chrome, WPT (crrev.com/c/5680542, crrev.com/c/5679146, Bug: 42323839) को तुरंत बंद किए बिना, नए टारगेट टाइप लॉन्च कर सकता है. linux-builder-perfबिल्डर के लिए इंस्टॉलर टारगेट जोड़ा गया है, ताकि बिसेक्ट संग्रहों के लिए सिंबल-स्ट्रिप्ड बाइनरी जनरेट की जा सकें. साथ ही, पिनपॉइंट बिल्डर को अलग-अलगadditional_compile_targetsस्वीकार करने के लिए कॉन्फ़िगर किया गया है (crrev.com/c/5668198, Bug: 344643694).- परफ़ॉर्मेंस बिल्ड (crrev.com/c/5624538, बग: 338629299) के दौरान, ChromeDriver की जगह का पता लगाने और उसे
crossbenchको पास करने के लिए,run_performance_tests.pyको अपडेट किया गया. crossbenchडिपेंडेंसी (crrev.com/c/5681849) को रोल आउट किया गया.- Mac पर
FedCmSpecificTest.testClickErrorMoreDetailsऔरFedCmSpecificTest.testClickErrorGotItको फ़्लेकी के तौर पर मार्क किया गया है (crrev.com/c/5704320, crrev.com/c/5677564, Bug: 352821422, Bug: 346530330). BidiTest.testFocusInFirstTabटेस्ट (crrev.com/c/5676686, Bug: 350916212) को बंद किया गया.
ChromeDriver 127
गड़बड़ियां ठीक की गईं
- स्थिरता: ChromeDriver के क्रैश होने की समस्या को ठीक किया गया है. यह समस्या तब होती थी, जब DevTools क्लाइंट अन्य कमांड प्रोसेस कर रहा होता था और उसे
target.detachFromTargetकमांड (याtarget.detachedFromTargetइवेंट) मिलता था. इससेWebViewऔरDevToolsClientऑब्जेक्ट (crrev.com/c/5527584, Bug: 339773537) समय से पहले रिलीज़ नहीं होते थे. - स्टेबिलिटी: हमने उस समस्या को ठीक कर दिया है जिसमें
Switch To Windowकमांड के दौरान वेब व्यू अलग होने पर, "अनजान गड़बड़ी" का मैसेज गलत तरीके से दिखता था. अब यह "वेब व्यू नहीं मिला" वाली इंटरनल गड़बड़ी को अनदेखा करता है. इससे टारगेट विंडो बंद होने पर, "ऐसी कोई विंडो नहीं है" का स्टैंडर्ड जवाब मिलता है (crrev.com/c/5583730, गड़बड़ी: 338616700). - स्थिरता: यह पक्का किया गया है कि ChromeDriver, इंटरनल WebView सूची को अपडेट करते समय टारगेट डिटैचमेंट को बर्दाश्त कर सकता है. अगर अपडेट के दौरान कोई टारगेट अलग हो जाता है, तो ChromeDriver अब गैर-मानक गड़बड़ी दिखाने के बजाय फिर से कोशिश करेगा. इससे उन एनवायरमेंट में फ़्लेकीनेस कम हो जाएगी जहां विंडो तेज़ी से बनाई और बंद की जाती हैं (crrev.com/c/5565103, Bug: 338616700, Bug: 4771).
- नेविगेशन: ChromeDriver में लॉजिक जोड़ा गया है, ताकि वह एलिमेंट खोजते समय रिमोट एंड से पता लगाए गए नेविगेशन का इंतज़ार कर सके. इससे ChromeDriver को, नेविगेशन के दौरान एलिमेंट ढूंढने की कार्रवाई (crrev.com/c/5563113, crrev.com/c/5563420 को पहले जैसा करना, crrev.com/c/5562089 को फिर से लागू करना, Bug: 4771) के साथ मेल खाने पर, स्टैंडर्ड नहीं है ऐसी गड़बड़ी दिखाने या
DCHECKके साथ क्रैश होने से रोका जा सकता है. - BiDi: सेशन बनाते समय, ChromeDriver और BiDiMapper के बीच रेस की स्थिति ठीक की गई. ChromeDriver अब NewSession कमांड को पूरा करने से पहले,
browsingContext.getTreeकमांड के लिए तब तक इंतज़ार करता है, जब तक कि वह खाली नहीं हो जाती. इससे यह पक्का होता है कि नया डिफ़ॉल्ट टैब सही तरीके से रजिस्टर हो गया है (crrev.com/c/5575497, Bug: 341048786, Bug: 1503101). - BiDi: इस समस्या को ठीक किया गया है. इसमें सेशन बनाने के बाद, फ़ोकस BiDiMapper के बैकग्राउंड टैब में रहता था. ऐसा इसलिए होता था, क्योंकि फ़ोकस को पहले उपयोगकर्ता टैब पर साफ़ तौर पर सेट नहीं किया गया था (crrev.com/c/5594070, Bug: 341048786, Bug: 1503101).
- BiDi: BiDi कमांड (जैसे,
browsingContext.close) को हैंडल करते समय, ChromeDriver को टारगेट अटैच करने से रोका गया है. इससे, अगर उपयोगकर्ता का कोई प्रॉम्प्ट खुला है, तो सीडीपी कमांड को अनिश्चित काल तक रुकने से रोका जा सकेगा. साथ ही, हैंडलिंग को पहले से कनेक्ट की गई BiDi लेयर (crrev.com/c/5541915, crrev.com/c/5539818 को पहले जैसा किया गया, crrev.com/c/5522393, बग: 4758) को पूरी तरह से सौंपा जा सकेगा. - FedCM:
fedcm-loginhint.https.htmlWPT टेस्ट के फ़ेल होने की समस्या ठीक की गई है. इस समस्या में, डायलॉग को गलत तरीके से बंद के तौर पर मार्क किया गया था. अब स्थिति सिर्फ़ तब अपडेट की जाती है, जबselectAccountऑपरेशन सही तरीके से पूरा हो जाता है (crrev.com/c/5398379, Bug: 331237776). - जांच: JSON पार्सिंग के दौरान,
DCHECKफ़ेल होने की समस्या को ठीक किया गया है. यह समस्या तब होती थी, जब कोई वर्ण ठीकkExtendedASCIIStartसीमा पर पहुंच जाता था (crrev.com/c/5565276, Bug: 40284755). - जांच: स्क्रोल ऑरिजिन के तौर पर iframe एलिमेंट का इस्तेमाल करके और पॉइंटर को पूरी संख्याओं में ले जाकर,
scrollend-event-fires-to-iframe-window.htmlWPT टेस्ट को ठीक किया गया. इससे, ChromeDriver में टच की फ़्रैक्शनल पोज़िशन से जुड़ी गड़बड़ियों को रोका जा सकेगा (crrev.com/c/5570150, बग: 340956654). - टेस्टिंग: ChromeDriver इंटिग्रेशन टेस्ट में बेहतर डाइग्नोस्टिक्स. इसमें, ब्राउज़र बाइनरी का पता लगाने में
run_py_tests.pyके फ़ेल होने पर, कोशिश किए गए पाथ प्रिंट किए जाते हैं (crrev.com/c/5604204, बग: 4781).
आंतरिक बदलाव और रीफ़ैक्टर
- BiDi: BiDi Mapper की डिपेंडेंसी को अपडेट किया गया है. इससे प्रोटोकॉल से जुड़े नए अपडेट और बग ठीक किए जा सकेंगे (crrev.com/c/5614670, crrev.com/c/5593796, crrev.com/c/5537892, crrev.com/c/5471839, बग: 4226).
chrome/डायरेक्ट्री में,NOTREACHED()के इस्तेमाल की जगहों परNOTREACHED_IN_MIGRATION()का इस्तेमाल किया गया है. ऐसा इसलिए किया गया है, ताकिNOTREACHED()को सिर्फ़[[noreturn]]बनाया जा सके (crrev.com/c/5539004, Bug: 40580068).- वितरण से जुड़ी ज़रूरी शर्तों (crrev.com/c/5596355, Bug: 4777) का पालन करने के लिए,
licenses.pyटूल का इस्तेमाल करके ChromeDriver के लिएTHIRD_PARTY_NOTICES.txtजनरेट करने की सुविधा चालू की गई. run_wpt_tests.pyके लिएcontent_shellका समर्थन हटा दिया गया है, क्योंकि Chromium का WPT कवरेज पूरी तरह सेheadless_shell+ ChromeDriver (crrev.com/c/5589930) पर माइग्रेट हो रहा है.wptrunnerस्विच को फिर से व्यवस्थित किया गया है, ताकि एम्बेड करने वाले के हिसाब से बदलाव किया जा सके. इससे फ़ंक्शन पर कोई असर नहीं पड़ेगा (crrev.com/c/5589793, Bug: 338412391).- JavaScript डायलॉग का पता लगाने और उन्हें हैंडल करने के लॉजिक को एक साथ कर दिया गया है. इसके लिए, इसे
JavaScriptDialogManagerसे सीधेDevToolsClientImplमें ले जाया गया है. इससे अलग मैनेजर क्लास की ज़रूरत नहीं पड़ती. इससे टेस्टिंग और वजह जानने की प्रोसेस आसान हो जाती है (crrev.com/c/5545630, Bug: 4757). - crrev.com/c/5588665 और Bug: 343891977 में मौजूद गड़बड़ियों की वजह से, Mac पर
PureBidiTest.testBrowsingContextTreeIsNotEmptyकी सुविधा बंद कर दी गई है. - हाल ही में हुए मैपर अपडेट (crrev.com/c/5615110, Bug: 4226, Bug: 324436866) को ध्यान में रखते हुए, BiDi WPT की उम्मीदों को अपडेट किया गया.
- कोड कवरेज बढ़ाने के लिए,
WebView::SendBidiCommandऔरBidiTrackerके लिए यूनिट टेस्ट जोड़े गए (crrev.com/c/5588400, Bug: 341048786, Bug: 1503101).
ChromeDriver 126
नई सुविधाएं
- BiDi: WebDriver BiDi सेशन के लिए ब्राउज़र लॉन्च करते समय,
--disable-background-timer-throttlingस्विच उपलब्ध कराने के लिए ChromeDriver को अपडेट किया गया है. इससे बैकग्राउंड टैब को थ्रॉटल होने से रोका जा सकेगा (crrev.com/c/5515013, बग: 4762). - BiDi: ज़्यादा जानकारी वाली लॉगिंग की ज़रूरत होने पर, डीबग मैसेज (
sendDebugMessage) भेजने के लिए, BiDi Mapper के साथ काम करने की सुविधा जोड़ी गई. ChromeDriver इन इवेंट को पार्स करने के लिएbidi messagesके तौर पर मार्क करता है. हालांकि,BidiTrackerफ़िलहाल इन्हें अनदेखा करता है (crrev.com/c/5465782, Bug: 4753). - क्लासिक: इसमें,
beforeunloadडायलॉग (सूचनाएं) को अपने-आप स्वीकार करने की सुविधा लागू की गई है. यह WebDriver के स्टैंडर्ड के मुताबिक काम करता है. इसके तहत, इन्हें कभी भी क्लासिक सेशन में नहीं दिखाया जाना चाहिए (crrev.com/c/5517510, Bug: 4757).
गड़बड़ियां ठीक की गईं
- क्लासिक: एलिमेंट को वापस पाने के लॉजिक में, बार-बार कोशिश करने की सीमा को हटा दिया गया है. अब डेटा को सिर्फ़ इंप्लिसिट टाइमआउट के हिसाब से फ़ेच किया जाता है. इससे ऐसे मामलों को रोका जा सकेगा जहां ऑपरेशन समय से पहले पूरा नहीं हो पाता और ग़ैर-स्टैंडर्ड
NoSuchExecutionContextगड़बड़ी (crrev.com/c/5478668, Bug: 4379) दिखती है. - क्लासिक: एक रिग्रेशन को ठीक किया गया है. इसकी वजह से, ChromeDriver, गलत जगह की जानकारी पाने की रणनीति (crrev.com/c/5490662, Bug: 4743) का इस्तेमाल करने वाले डेटा वापस पाने के अनुरोध पर,
invalid selectorगड़बड़ी के बजायjavascript errorगड़बड़ी दिखाता था. - Classic: Android पर विंडो कमांड (ज़्यादा से ज़्यादा, कम से कम, फ़ुलस्क्रीन) के लिए, स्टैंडर्ड के मुताबिक
unsupported operationगड़बड़ी का मैसेज दिखता है. ऐसा इसलिए होता है, क्योंकि Android ब्राउज़र इन कार्रवाइयों के साथ काम नहीं करता (crrev.com/c/5490224, गड़बड़ी: 4689). - Classic: ChromeDriver में यह गड़बड़ी ठीक कर दी गई है कि वह कभी भी
kChromeNotReachableइंटरनल गड़बड़ी का कोड नहीं दिखाता है. अब यह एचटीटीपी क्लाइंट के ब्राउज़र से कनेक्ट न हो पाने पर, स्टैंडर्डkSessionNotCreatedगड़बड़ी का कोड दिखाता है (crrev.com/c/5476390, Bug: 4379). - क्लासिक: ChromeDriver में यह समस्या ठीक की गई है कि विंडो कमांड (crrev.com/c/5483606, Bug: 4379) को लागू करते समय, वह कभी भी नॉन-स्टैंडर्ड
kNoSuchExecutionContextगड़बड़ी नहीं दिखाता. - Classic: इस्तेमाल न किए जाने वाले और काम न करने वाले
kForbiddenगड़बड़ी कोड को, काम करने वाले गड़बड़ी कोड की सूची से हटा दिया गया है (crrev.com/c/5476927, Bug: 4379). - BiDi: ChromeDriver को अपडेट किया गया है, ताकि वह उपयोगकर्ता को Mapper टैब बंद करने से पहले सूचना दे. यह अपस्ट्रीम
chromium-bidiमें हुए बदलावों (crrev.com/c/5508600, Bug: 4761) के मुताबिक है.
आंतरिक बदलाव और रीफ़ैक्टर
- BiDi: BiDi Mapper की डिपेंडेंसी को अपग्रेड किया गया है. इससे अपस्ट्रीम
chromium-bidiप्रोजेक्ट (crrev.com/c/5490428, crrev.com/c/5471839, crrev.com/c/5509316, crrev.com/c/5458234, Bug: 4226) से नई सुविधाएं और बग ठीक किए गए हैं. (ध्यान दें: गार्डनर ने मैपर बंप को कुछ समय के लिए पहले जैसा कर दिया था. इसके बाद, इसे फिर से लागू कर दिया गया (crrev.com/c/5374839, crrev.com/c/5374366)). //chromeमें,base::StringPieceके इस्तेमाल कोstd::string_viewसे बदल दिया गया है (crrev.com/c/5467746, Bug: 40506050).//chromeमेंstd::to_string()के इस्तेमाल को हटा दिया गया है. इसकी जगहbase::NumberToString()याbase::FormatNumber()का इस्तेमाल किया जा रहा है (crrev.com/c/5505593, Bug: 335672557).- बिना ग्राफ़िक यूज़र इंटरफ़ेस वाले पुराने मोड में,
--remote-debugging-addressस्विच के लिए सहायता हटा दी गई है. ऐसा इसलिए किया गया है, क्योंकि Chrome DevTools प्रोटोकॉल को असुरक्षित तरीके से रिमोट ऐक्सेस करना बहुत खतरनाक माना गया था (crrev.com/c/5512634, बग: 327558594). //chromeसे Fuchsia के बिल्ड नियमों को हटा दिया गया है. हालांकि, ChromeDriver (crrev.com/c/5473870, Bug: 41481724) के लिए ऐसा नहीं किया गया है.- लेगसी
TODO(crbug.com/...)के सभी रेफ़रंस को कोडबेस में, नए इश्यू ट्रैकर आईडी फ़ॉर्मैट (TODO(b/...)) में माइग्रेट किया गया (crrev.com/c/5492605, crrev.com/c/5486477, crrev.com/c/5461380, Bug: 321899722). - Mac पर WebAuthn (प्रमाणीकरण करने वाला ऐप्लिकेशन) की जांच बंद कर दी गई है. ऐसा एक जटिल बग की वजह से किया गया है. यह बग हेडलेस और
chromedriver_py_tests, दोनों के लिए है. इससे बॉट को macOS 14 पर अपग्रेड करने की सुविधा चालू हो गई है (crrev.com/c/5525435, crrev.com/c/5518820, बग: 329130177). - ChromeDriver और Content Shell के साथ WPT को एक साथ चलाने में आ रही समस्याओं की वजह से,
content_shellके लिए WPT बिल्डर बंद कर दिए गए हैं (crrev.com/c/5512439, Bug: 40214293). - हमने एक ऐसे बदलाव को फिर से लागू किया है जो बैकवर्ड नेविगेशन के लिए,
test_driver.action_sequence()के ज़रिएShift+Tabका इस्तेमाल करने के लिए,focus-navigationWPT को अपडेट करता है.focus-utils.jsमें मौजूद एक बग को ठीक किया गया है. इसमें Shift कुंजी के लिए गलत कुंजी कोड (E008के बजायE050) का इस्तेमाल किया गया था (crrev.com/c/5467843, crrev.com/c/5466531 को पहले जैसा किया गया, crrev.com/c/5463903 को फिर से लागू किया गया, बग: 40597271). - परफ़ॉर्मेंस बिल्ड टारगेट (crrev.com/c/5521874, Bug: 338627700) में
crossbenchऔरchromedriverजोड़े गए.
ChromeDriver 125
नई सुविधाएं
- डिवाइस का पोस्चर: डिवाइस के पोस्चर को मैनेज करने के लिए, ChromeDriver कमांड जोड़ी गई हैं. ये डिवाइस के पोस्चर की खास बातों के ऑटोमेशन सेक्शन के साथ काम करती हैं. इससे, हार्डवेयर के हिसाब से सेट किए गए डिवाइस के पोस्चर को बदला जा सकता है. साथ ही, एक्सटेंशन कमांड (crrev.com/c/5437993, Bug: 330376761) की मदद से, बदलाव को हटाया जा सकता है.
गड़बड़ियां ठीक की गईं
- BiDi: आने वाली BiDi कमांड
idके इंटरमीडिएट स्टोरेज कोDoubleसे बदलकरbase::Valueकर दिया गया है. इससे यह पक्का होता है कि JSON सीरियलाइज़ेशन (crrev.com/c/5444225, Bug: 4676) के बाद,idको जवाब में सटीक तरीके से दिखाया जाए. इसमें दशमलव बिंदु या भिन्नात्मक भाग नहीं होना चाहिए. - FedCM: आईडीपी के तैयार होने के बाद, आईडी असर्शन एंडपॉइंट में CORS को चालू करने के लिए, बदलाव को फिर से लागू किया गया (crrev.com/c/5440132, crrev.com/c/5381316 को पहले जैसा किया गया, crrev.com/c/5370086 को फिर से लागू किया गया, Bug: 40284123).
- FedCM: हमने एक बग को ठीक किया है. इस बग में, डायलॉग को गलत तरीके से बंद के तौर पर मार्क किया गया था. हमने यह पक्का किया है कि डायलॉग को सिर्फ़ तब बंद के तौर पर मार्क किया जाए, जब
selectAccountकमांड काम करे. इससे,selectAccountको उम्मीद के मुताबिक खाता चुनने वाले टूल (crrev.com/c/5398379, Bug: 331237776) के बिना कॉल किए जाने पर, टेस्ट फ़ेल होने की समस्या हल हो जाती है. खाता चुनने वाले टूल के काम न करने पर,fedcm_get_and_select_first_accountको कॉल करने से बचा गया, ताकि इस बग (crrev.com/c/5398800) को ट्रिगर होने से रोका जा सके. - जांच:
popover-light-dismiss.htmlWPT टेस्ट में हुई गड़बड़ी को ठीक किया गया है. इसके लिए, ऐक्शन सीक्वेंस को एक साथ जोड़ा गया है औरpointerUpऐक्शन के लिए मुख्य फ़्रेम के दस्तावेज़ को ऑरिजिन के तौर पर इस्तेमाल किया गया है. इससे ChromeDriver को एक साथ कई फ़्रेम मेंpointerUpइवेंट भेजने से रोका जा सकेगा (crrev.com/c/5402096, Bug: 325981758). - जांच:
wptrunnerको ठीक किया गया है, ताकिstderrआउटपुट (इसमें--enable-chrome-logsका इस्तेमाल करते समय लिखे गए ब्राउज़र लॉग भी शामिल हैं) कोcrash_logके बजायstderrआर्टफ़ैक्ट पर सही तरीके से फ़ॉरवर्ड किया जा सके. साथ ही, हार्नेस की गड़बड़ियों (इनमें ब्राउज़र स्टैक ट्रेस शामिल होता है) कोcrash_log(crrev.com/c/5437023, Bug: 41494889) पर ले जाया गया है. - टेस्टिंग:
wptrunnerको ठीक किया गया है. इससे ChromeDriver प्रोसेस के हिसाब से आउटपुट को ग्रुप करके, ब्राउज़र के लॉग को सही टेस्ट आर्टफ़ैक्ट पर भेजा जा सकेगा. इससे पैरलल टेस्ट के दौरान, इंटरलीव किए गए और अनाथ लॉग को रोका जा सकेगा (crrev.com/c/5320681, बग: 41494889).
आंतरिक बदलाव और रीफ़ैक्टर
- BiDi: BiDi Mapper की डिपेंडेंसी को अपडेट किया गया है. इसमें प्रोटोकॉल से जुड़े नए सुधार और गड़बड़ियों को ठीक किया गया है (crrev.com/c/5433300, crrev.com/c/5393442, Bug: 4226). (ध्यान दें: crrev.com/c/5374366 पर किए गए पिछले बदलाव को वापस लाया गया था crrev.com/c/5374839. इसके बाद, इसे फिर से लागू किया गया. इस दौरान, भरोसेमंद तरीके से काम न करने वाले टेस्ट बंद कर दिए गए थे और लाइसेंस अपडेट कर दिए गए थे crrev.com/c/5374914).
- डाइग्नोस्टिक्स: Chrome के
StackTraceको ChromeDriver के अपवादों में शामिल किया गया. जब पेज/टैब क्रैश होने की वजह से कोई सेशन मिट जाता है, तब यह गड़बड़ी के मैसेज में ब्राउज़र स्टैक ट्रेस दिखाता है.उदाहरण के लिए, Mac पर डैंगलिंग पॉइंटर. इससे डीबग करने की क्षमता में काफ़ी सुधार होता है (crrev.com/c/5374371, Bug: 330009945). - जांच: Mac पर,
testTakeLargeElementViewportScreenshotइंटिग्रेशन टेस्ट को कुछ समय के लिए बंद कर दिया गया है. खास तौर पर,mac-arm64(crrev.com/c/5447515, Bug: 333826980). - टेस्टिंग: टेस्टिंग एनवायरमेंट (CEL) में ChromeDriver लॉन्च करने के तर्कों को अपडेट किया गया है, ताकि वे Selenium 4+ सिंटैक्स (crrev.com/c/5448812, Bug: 308885357) से मेल खाएं.
- जांच:
chromedriverलॉग से, हर WPT टेस्ट को चलाने के लिए इस्तेमाल की गईchromeकमांड लाइन को एक्सट्रैक्ट किया गया है. इसेcommandनाम के ResultDB आर्टफ़ैक्ट में सेव किया गया है. इससेrun_blink_wptserve.py(crrev.com/c/5441189, Bug: 41494889) की मदद से, मैन्युअल तरीके से डीबग करना आसान हो जाता है. - डिपेंडेंसी:
selenium-atomsकी डिपेंडेंसी की सूची सेClosureको हटा दिया गया है. इसलिए, इसे ChromeDriver की तीसरे पक्ष की सूचनाओं (crrev.com/c/5424804, Bug: 4226) से भी हटा दिया गया है. - डिपेंडेंसी: बेस रिपॉज़िटरी (crrev.com/c/3398908, Bug: 1282422) में,
dynamic_annotationsपर इस्तेमाल न की गई डिपेंडेंसी हटा दी गई हैं. - फ़ॉर्मैटिंग: समस्या वाले Windows हेडर (crrev.com/c/5367127, बग: 329138753) पर नया
clang-formatकॉन्फ़िगरेशन लागू किया गया.
ChromeDriver 124
नई सुविधाएं
- BiDi: ChromeDriver में एम्बेड करने से पहले,
BiDiMapperस्क्रिप्ट को छोटा करने के लिए एक बिल्ड स्टेप जोड़ा गया है. ऐसा इसलिए, क्योंकि सोर्स मैपर को अब CIPD से छोटा किए बिना डाउनलोड किया जाता है (crrev.com/c/5310075, Bug: 4226). - WebAuthn:
SetCredentialPropertiesकमांड जोड़ी गई है. इससे क्लाइंट, WebAuthn क्रेडेंशियल के लिए बैकअप फ़्लैग अपडेट कर सकते हैं (crrev.com/c/5296389, Bug: 40945430). - WebAuthn: WebDriver के ज़रिए WebAuthn के बैकअप फ़्लैग दिखाए गए. इसके लिए, "Add Virtual Authenticator" कमांड में
defaultBackupEligibilityऔरdefaultBackupStateको जोड़ा गया. साथ ही, "Add Credential" कमांड मेंbackupEligibilityऔरbackupStateको जोड़ा गया (crrev.com/c/5297117, Bug: 40945430). - जांच: ChromeDriver Python इंटिग्रेशन टेस्ट के लिए,
--failfastकमांड-लाइन आर्ग्युमेंट का इस्तेमाल करने की सुविधा जोड़ी गई है. इससे डीबग करने में मदद मिलती है. ऐसा इसलिए, क्योंकि पहली गड़बड़ी होने पर टेस्ट रन बंद हो जाता है (crrev.com/c/5374546). - टेस्टिंग:
testdriver-vendor.jsएपीआई (crrev.com/c/5205730, Bug: 1359103) के ज़रिए,SetRPHRegistrationModewebdriver कमांड के लिए कॉन्टेंट-शेल की सुविधा जोड़ी गई.
गड़बड़ियां ठीक की गईं
- स्थिरता:
ChromeImpl::SetWindowBoundsमें, टाइमआउट की समयसीमा खत्म होने की जांच को poll-and-wait लूप बॉडी में ले जाया गया. इस बदलाव से, ज़्यादा लोड होने पर टाइम आउट की समयसीमा खत्म होने से पहले ही लूप की पहली बार की प्रोसेस पूरी होने की समस्या ठीक हो जाएगी (crrev.com/c/5366899, Bug: 4642). - परफ़ॉर्मेंस:
ChromeImpl::SetWindowBoundsमें इंतज़ार का समय कम किया गया है. ऐसा सिर्फ़ तब किया गया है, जब विंडो की सीमाएं अब तक मनचाही स्थिति तक नहीं पहुंची हैं. इससे WPT सेटअप की लेटेन्सी कम हो जाती है (crrev.com/c/5366457, बग: 4642). - स्टार्टअप: ChromeDriver को अपडेट किया गया है, ताकि
content_shellके लिए डेटा डायरेक्ट्री तय करते समय--data-pathके बजाय--user-data-dirका इस्तेमाल किया जा सके. इससे, यह इस बात के मुताबिक काम करेगा कि यह चालू DevTools पोर्ट (crrev.com/c/5226609, Bug: 1295373) को कैसे पढ़ता है.
आंतरिक बदलाव और रीफ़ैक्टर
- BiDi: BiDi Mapper की डिपेंडेंसी को अपडेट किया गया है. इसमें प्रोटोकॉल से जुड़ी नई सुविधाएं और फ़िक्स शामिल हैं (crrev.com/c/5374366, crrev.com/c/5349491, crrev.com/c/5317650, Bug: 4226). (ध्यान दें: टेस्ट फ़ेल होने की वजह से, कुछ समय के लिए इस बदलाव को वापस लाया गया था. इसके बाद, इसे फिर से लागू कर दिया गया crrev.com/c/5374839, crrev.com/c/5368680, crrev.com/c/5319423).
absl::optionalको टाइप एलियास (crrev.com/c/5296147, Bug: 1500249) में बदलने के बाद, पूरे कोडबेस मेंabsl::optionalके इस्तेमाल कोstd::optionalसे बदल दिया गया है.MiraclePtr(raw_ptr) को अन्य स्टैंडर्ड कंटेनर के लिए भी उपलब्ध कराया गया है. जैसे,std::list,std::unordered_set,base::flat_set,std::stack, औरstd::queue(crrev.com/c/5306923, Bug: 325302189).WriteBigEndian()कोbase::numericsबाइट कन्वर्ज़न याBigEndianWriter(जो अबbase::spanस्वीकार करता है) का इस्तेमाल करने के लिए बदला गया है. इससे बिग-एंडियन बाइट (crrev.com/c/5202348, Bug: 1490484) लिखते समय सुरक्षा बेहतर होती है.content_shellके साथ Web Platform Tests (WPT) चलाने के लिए, ChromeDriver का इस्तेमाल किया गया. इसमें वर्चुअल टेस्ट और अपस्ट्रीम बग फ़िक्स के लिए लंबित रेफ़टेस्ट शामिल नहीं हैं (crrev.com/c/5347371, Bug: 40214293).- सभी मौजूदा जेनेरिक सेंसर वेब टेस्ट को JS/Mojo मॉक के बजाय
test_driver.jsऔर वर्चुअल सेंसर का इस्तेमाल करने के लिए बदल दिया गया है. इससे, जेनेरिक सेंसर स्पेसिफ़िकेशन के नए ऑटोमेशन सेक्शन (crrev.com/c/4770867, Bug: 1278377, Bug: 1471996) के साथ अलाइन किया जा सकेगा. BiDiMapperडिपेंडेंसी के लिए क्रेडिट जनरेट करने के लिए,append_notices.pyको जोड़कर लाइसेंस जनरेट करने की प्रोसेस को बेहतर बनाया गया है. साथ ही, तीसरे पक्ष की सूचनाओं के लिएselenium-atomsREADME पर पूरी तरह से भरोसा करने के लिए,licenses.pyइनवोकेशन को अपडेट किया गया है (crrev.com/c/5350601, crrev.com/c/5339957, Bug: 4729, Bug: 4735).
ChromeDriver 123
नई सुविधाएं
- FedCM: एक खाते वाले बटन फ़्लो के लिए मॉडल डायलॉग दिखाएं. इसमें ऑटोमेशन इंटरफ़ेस में मॉडल व्यू के लिए सहायता जोड़ना भी शामिल है (crrev.com/c/5231438, Bug: 1518356).
- FedCM: FedCM डायलॉग बॉक्स में लिंक खोलने के लिए, ChromeDriver की सुविधा लागू की गई है. इन्हें बटन के तौर पर इस्तेमाल किया जाता है, ताकि ऑटोमेशन को आसान बनाया जा सके (crrev.com/c/5225543, Bug: 1513520).
- सेंसर: ओरिएंटेशन-सेंसर के हाल ही के स्पेसिफ़िकेशन अपडेट के मुताबिक, WebDriver की वर्चुअल सेंसर कमांड में बदलाव किया गया है. अब ये कमांड, क्वाटर्नियन के बजाय यूलर ऐंगल (अल्फ़ा-बीटा-गामा) को पढ़ती हैं. इंटरनल सीडीपी और सेवा की लेयर, अब भी कन्वर्ज़न स्टेप के ज़रिए क्वाटर्नियन का इस्तेमाल करती हैं (crrev.com/c/5229177, Bug: 1506995, Bug: 1520912, Bug: 1520919).
गड़बड़ियां ठीक की गईं
- Classic: उस समस्या को ठीक किया गया है जिसमें स्क्रिप्ट के ज़रिए किसी दूसरे फ़्रेम से नोड वापस लाने पर,
StaleElementReferenceगड़बड़ी होती थी. अब WebDriver स्टैंडर्ड (crrev.com/c/5222746, Bug: 4668) के मुताबिक,JavaScriptErrorगड़बड़ी होती है. - जांच: ओवरस्क्रोल इवेंट की उस जांच को ठीक किया गया है जो Chrome/ChromeDriver पर फ़ेल हो रही थी. ऐसा इसलिए हो रहा था, क्योंकि टच ड्रैग, विंडो की सीमाओं से बाहर जा रहा था. अब ड्रैग को ठीक से सीमित कर दिया गया है (crrev.com/c/5297676, Bug: 40832230).
- जांच:
open-close.https.htmlMIDI की जांचों को ठीक किया गया है, ताकि वे बिना वजह प्रॉमिस न बनाएं. इससे, प्रॉमिस अस्वीकार होने की उन समस्याओं से बचा जा सकेगा जिनकी वजह से ChromeDriver जांच में फ़ेल हो जाता था (crrev.com/c/5239869, Bug: 1499775). - जांच:
wpt_internal/system-wake-lock/idlharness*टेस्ट में सेट की गई अनुमति को ठीक किया गया है. इनमेंtest_driver.set_permission(...),nullयाWindowProxyके बजायfalseको गलत तरीके से पास कर रहा था. इससे ChromeDriver भ्रमित हो रहा था (crrev.com/c/5271087, Bug: 40287920).
आंतरिक बदलाव और रीफ़ैक्टर
- BiDi: BiDi Mapper की डिपेंडेंसी को अपडेट किया गया है. इससे, हाल ही में किए गए सुधार और नई सुविधाएं मिलेंगी (crrev.com/c/5205452, crrev.com/c/5255321, crrev.com/c/5238148, crrev.com/c/5237125, Bug: 4226). (ध्यान दें: बिल्ड फ़ेल होने की वजह से, कुछ समय के लिए वर्शन को वापस लाया गया था. इसके बाद, फिर से नया वर्शन लागू किया गया crrev.com/c/5238855).
- ChromeDriver के कोड को बेहतर बनाया गया है. इसके लिए,
ChromeImplऔरDevToolsClientImpl, दोनों में बेस क्लास से डिराइव की गई क्लास में असुरक्षित स्टैटिक कास्ट को हटाया गया है. इससे, संभावित अनडिफ़ाइंड व्यवहार को रोका जा सकेगा (crrev.com/c/5277062, crrev.com/c/5272562, Bug: 4702). WebViewImplमें असुरक्षित कास्ट को हटाया गया (crrev.com/c/5272230, Bug: 4702).base::Base64Encode()के पुराने फ़ॉर्म हटा दिए गए हैं. अब नएstd::stringका इस्तेमाल किया जा रहा है. यह आउट पैरामीटर (crrev.com/c/5179900, crrev.com/c/5246585, Bug: 1486214) का इस्तेमाल करने के बजाय, वैरिएंट दिखाता है.- सभी
#includeनिर्देशों को अपडेट किया गया है, ताकिbase/...के लिए<>के बजाय""का इस्तेमाल किया जा सके. इससे एक जैसा अनुभव मिलेगा (crrev.com/c/5237376, Bug: 1500249). chrome/test/में मौजूद सभीDIR_METADATAफ़ाइलों को Buganizer में माइग्रेट किया गया (crrev.com/c/5284119, Bug: 1518875).- इस बदलाव की वजह से,
-vvvपास होने पर wptrunner को लोकल-फ़ाइल बनाने से रोका गया है. ऐसा, गैर-ज़रूरीchromedriver --log-path=-स्विच को हटाकर किया गया है, क्योंकि stderr को पहले ही stdout (crrev.com/c/5282721) पर रीडायरेक्ट कर दिया गया है. - रिग्रेशन होने पर, टेस्ट के नतीजों की खास जानकारी देने के लिए बेहतर wptrunner. इसमें सबटेस्ट के नतीजों और ChromeDriver स्टैक ट्रेस को खास जानकारी के आउटपुट में सीधे तौर पर शामिल किया गया है (crrev.com/c/5238662, Bug: 1521922).
--remote-chromedriver-portपैरामीटर कोrun_py_tests.pyमें जोड़कर, ChromeDriver इंटिग्रेशन टेस्ट को डीबग करने की प्रोसेस को आसान बनाया गया है. इससे, डीबगर (crrev.com/c/5237254, Bug: 4693) के तहत चल रहे मौजूदा इंस्टेंस से कनेक्ट किया जा सकता है.- कंपाइलर को सही साइज़ का पता लगाने देने के लिए, दो आर्ग्युमेंट वाले
base::HexEncode()औरRandBytes()कॉल से बचा गया. इससे कोड को आसान बनाया जा सका (crrev.com/c/5241357).
ChromeDriver 122
गड़बड़ियां ठीक की गईं
- BiDi: डीप नोड सीरियलाइज़ेशन को अपडेट किया गया है, ताकि इसमें
loaderIdशामिल किया जा सके. इससे ChromeDriver और BiDi Mapper, नोड को सही तरीके से रेफ़रंस और डीरेफ़रंस कर पाएंगे. इसके लिए, उन्हें ज़्यादा राउंड ट्रिप (crrev.com/c/5116240, Bug: 1420968) करने की ज़रूरत नहीं होगी. - सुविधाएं: ChromeDriver को अपडेट किया गया है, ताकि शुरू होते ही
acceptInsecureCertsसुविधा को BiDi Mapper को पास किया जा सके. इससे रेस की ऐसी स्थितियां नहीं बनेंगी जहां सुविधा को बहुत देर से लागू किया जा सकता है (crrev.com/c/5125711, बग: 4643). - क्लासिक: एलिमेंट रेफ़रंस जनरेशन को फिर से बनाया गया है, ताकि
<frame_id>.<loader_id>.<backend_node_id>फ़ॉर्मैट का इस्तेमाल किया जा सके. इससे ChromeDriver, फ़्रेम नेविगेशन और डीओएम अपडेट के दौरान, मान्य, अज्ञात, और पुराने एलिमेंट रेफ़रंस के बीच अंतर कर पाता है (crrev.com/c/5094519, गड़बड़ी: 4379). - क्लासिक: हमने उस समस्या को ठीक कर दिया है जिसमें
window/handlesकमांड, "ऐसी कोई विंडो नहीं है" गड़बड़ी के साथ काम नहीं कर पाती थी.ऐसा तब होता था, जब नया टारगेट ChromeDriver से अटैच होने से पहले ही बंद हो जाता था. उदाहरण के लिए, रेस कंडीशन में (crrev.com/c/5147409, बग: 1506833). - FedCM: FedCM डायलॉग बंद होने पर सूचना देने के लिए, एक इंटरनल इवेंट लिसनर जोड़ा गया है. इससे, अगर डायलॉग को बाहरी तौर पर बंद किया गया था (जैसे,
AbortController.abortके ज़रिए), तोdialogtypeकमांड को पुराना डेटा वापस भेजने से रोका जा सकेगा (crrev.com/c/5067504, Bug: 1506292). - FedCM:
ClickDialogButtonकमांड से वेंडर प्रीफ़िक्स हटा दिया गया है, क्योंकि अब इसे FedCM स्पेसिफ़िकेशन (crrev.com/c/5092527, Bug: 1499341) में मंज़ूरी मिल गई है.
आंतरिक बदलाव और रीफ़ैक्टर
- BiDi: BiDi Mapper की डिपेंडेंसी को नए वर्शन (crrev.com/c/5205452, Bug: 4226) पर ले जाया गया है.
- हर
DevToolsEventListenerसे भेजे गए गैर-ज़रूरीPage.enableकॉल हटाकर, ChromeDriver और Chrome DevTools Protocol (CDP) के ट्रैफ़िक को कम किया गया है. ऐसा इसलिए, क्योंकिDevToolsClientImplपहले से ही हर टारगेट के लिए इसे हैंडल करता है (crrev.com/c/5088789, Bug: 4600). - हमने
content_shellके लिए सभी Wptrunner बिल्डर को एक्सपेरिमेंटल स्टेटस में बदल दिया है. ऐसा इसलिए, क्योंकि प्रोटोकॉल मोड में टेस्ट चलाने की सुविधा फ़िलहाल पूरी तरह से काम नहीं करती है. साथ ही, ChromeDriver इंटिग्रेशन की प्रोसेस जारी है (crrev.com/c/5225148, Bug: 1474702). - उन टेस्ट को स्किप किया गया है जिनके लिए
content_shellपरwindow.test_driver_internal.get_computed_roleकी ज़रूरत होती है, क्योंकि इसे अभी तक लागू नहीं किया गया है. इससेTypeErrorकी गड़बड़ियों को रोका जा सकता है (crrev.com/c/5189678, Bug: 1517744). - प्लेटफ़ॉर्म से अलग
IS_OZONE_{X11, WAYLAND}फ़्लैग का इस्तेमाल करने के लिए, रिफ़ैक्टर को फिर से लागू किया गया. इसके लिए,OZONE_PLATFORM_*(crrev.com/c/5086329, Bug: 1500494) का इस्तेमाल किया गया. selenium-atomsडिपेंडेंसी को नए वर्शन (crrev.com/c/5110808, Bug: 4662) पर अपडेट किया गया.- SnapEvents की जांचों में तय किए गए लॉजिक को ठीक किया गया है. ये जांचें, Chrome के पूरे बाइनरी के ख़िलाफ़ की जाती हैं. इसके लिए, पॉइंटर को घुमाने के इनपुट को राउंड किया जाता है, स्क्रोल के लिए
originपैरामीटर लागू किया जाता है, और फ़्रैक्शनल स्क्रोल/ऑफ़सेट में अंतर को ठीक करने के लिए, अनुमानित पुष्टि (assert_approx_equals) का इस्तेमाल किया जाता है (crrev.com/c/5097343). StringPrintfNonConstexpr()हेल्पर को जोड़ा गया है, ताकि फ़ॉर्मैट स्ट्रिंग के कंपाइल-टाइम कॉन्स्टेंट न होने पर,StringPrintf()से अलग किया जा सके (crrev.com/c/4950568, Bug: 1371963).- यह पक्का किया गया है कि
chromium::import!रस्ट मैक्रो एस्केपिंग, इंजेक्टिव फ़ंक्शन का इस्तेमाल करता है, ताकि जनरेट किए गए GN टारगेट के नामों में टकराव न हो (crrev.com/c/5132119, Bug: 1512174). - कंस्ट्रक्टर और डिस्ट्रक्टर में अर्ली रिटर्न जोड़कर,
ScopedTempDirWithRetryको लागू करने की प्रोसेस को बेहतर बनाया गया (crrev.com/c/5113843).
ChromeDriver 121
नई सुविधाएं
- टेस्टिंग: बिल्ड बॉट पर स्टैंडर्ड Chrome ब्राउज़र के साथ-साथ,
chrome-headless-shellके ख़िलाफ़ इंटिग्रेट किए गए ChromeDriver टेस्ट (chromedriver_py_test) चलाने की सुविधा जोड़ी गई है. इसमें--browser-nameपैरामीटर के आधार पर ब्राउज़र बाइनरी का पता लगाने और कुछ खास टेस्ट सेट (crrev.com/c/4995189, crrev.com/c/4989442, Bug: 4358) को शर्तों के साथ चलाने की सुविधा शामिल है.
गड़बड़ियां ठीक की गईं
- स्थिरता: डिफ़ॉल्ट
KeyboardLayoutEngineकोStubKeyboardLayoutEngineके तौर पर शुरू किया गया है, ताकिKeyboardLayoutEngineManager::SetKeyboardLayoutEngineमेंDCHECKहिट होने की वजह से ChromeDriver क्रैश न हो (crrev.com/c/5017859, Bug: 4625). - स्टेबिलिटी: ChromeDriver के क्रैश होने की समस्या को ठीक किया गया है. ऐसा तब होता था, जब सेशन थ्रेड ने कनेक्शन बंद करने का अनुरोध किया हो और क्लाइंट ने पहले ही उसी कनेक्शन को बंद करने का अनुरोध कर दिया हो (crrev.com/c/4994636, Bug: 4606).
- संसाधन मैनेजमेंट: ChromeDriver इंटिग्रेशन टेस्ट (
RemoteBrowserTest) में संसाधन लीक होने की समस्या को ठीक किया गया है. इसके लिए, यह पक्का किया गया है कि ChromeDriver कमांड (crrev.com/c/5009554, Bug: 4614) से कोई अपवाद थ्रो किए जाने पर भी ब्राउज़र प्रोसेस बंद हो जाए. - संसाधन मैनेजमेंट: ChromeDriver इंटिग्रेशन टेस्ट में लॉजिक लागू किया गया है. इससे ChromeDriver प्रोसेस से बंद की गई किसी भी ब्राउज़र प्रोसेस का पता लगाया जा सकता है और उसे खत्म किया जा सकता है (crrev.com/c/5014093, Bug: 4617).
- स्टार्टअप: इस समस्या को ठीक किया गया है. इसमें
chrome-headless-shell, खाली टारगेट लिस्ट दिखाता था. इससे सेशन नहीं बन पाता था. ऐसा तब होता था, जब ब्राउज़र का नामchrome-headless-shellहोता था और ब्राउज़र कमांड लाइन मेंdata:,आर्ग्युमेंट जोड़ा जाता था (crrev.com/c/5010392, crrev.com/c/5009535, Bug: 4615, Bug: 4358). - FedCM: FedCM डायलॉग बंद होने पर सूचना देने के लिए, एक नया इवेंट जोड़ा गया है. इससे यह पक्का किया जा सकेगा कि अगर डायलॉग को बाहरी तौर पर बंद किया गया है (जैसे,
AbortController.abortके ज़रिए), तोdialogtypeऔर अन्य कमांड पुराना डेटा न दिखाएं (crrev.com/c/5067504, Bug: 1506292). - जांच: ChromeDriver के साथ इंटिग्रेट करने से जुड़ी उन सभी जांचों को ठीक कर दिया गया है जिन्हें Windows पर
chrome-headless-shellके लिए पहले बंद कर दिया गया था (crrev.com/c/5027594, Bug: 4358). - टेस्टिंग:
testElementRegionTestमें बहुत ज़्यादा पाबंदियों वाली पुष्टि को कमज़ोर किया गया है, ताकि WebDriver स्टैंडर्ड के साथ अलाइन किया जा सके. इससे ब्राउज़र रेंडरिंग की ख़ासियतों की वजह से होने वाली अस्थिरता को ठीक किया जा सकेगा (crrev.com/c/5017865, Bug: 4526).
आंतरिक बदलाव और रीफ़ैक्टर
- BiDi: BiDi Mapper की डिपेंडेंसी को अपडेट किया गया है (crrev.com/c/4994305, Bug: 4226).
- बग की वजह से,
IS_OZONE_{X11, WAYLAND}के बजायOZONE_PLATFORM_*का इस्तेमाल किया गया है (crrev.com/c/5086571, crrev.com/c/5083096 को वापस लाना, बग: 1500494). commands_unittest.ccमें माइग्रेट किया गया कोड, अबbase::Passedके बजायbase::BindLambdaForTestingका इस्तेमाल करेगा.base::Passedअब काम नहीं करता (crrev.com/c/5078589, Bug: 1326449).session.newको फिर से फ़ैक्टर किया गया है, ताकि बॉयलरप्लेट की क्षमता को हैंडल करने की सुविधा (जैसे,testName,binary,browserName) को एक खास तरीके से निकाला जा सके. साथ ही, यह पक्का किया गया है कि कमांड, क्षमताओं का उसी तरह से पालन करे जिस तरह से क्लासिक कमांड करती है (crrev.com/c/5004665, crrev.com/c/5001510, Bug: 4358, Bug: 4610).- अब
base/strings/string_piece_forward.hहेडर का इस्तेमाल नहीं किया जाता है (crrev.com/c/5008994, Bug: 691162). net::IOBufferकोnet::IOBufferWithSizeका इस्तेमाल करके, नॉन-ओनिंग क्लास में ट्रांज़िशन करने के लिए तैयार किया गया है. ऐसा ओनिंग केस के लिए किया गया है (crrev.com/c/4996470, Bug: 1493389).- स्ट्रिंग में बाइनरी वैल्यू सेव करने से बचने के लिए,
base::RandBytesAsVector()को लागू किया गया और इसका इस्तेमाल किया गया (crrev.com/c/5018451). - Mac पर, Python इंटिग्रेशन के कई ऐसे टेस्ट बंद कर दिए गए हैं जो लगातार फ़ेल हो रहे थे. ऐसा इसलिए किया गया है, ताकि LUCI विश्लेषण के आधार पर उन्हें ग्रीन बिल्ड में शामिल होने से रोका जा सके (crrev.com/c/4998771, Bug: 1486604, Bug: 1486520, Bug: 1486474, Bug: 1481915).
- Linux try बिल्डर पर WPT सुइट के नाम रखने के नियमों को स्टैंडर्ड बनाने के लिए,
webdriver_tests_suite(औरwpt_tests_suite) का नाम बदलकरchrome_wpt_testsकर दिया गया है (crrev.com/c/5014293, Bug: 1474702). ConfirmIdpLoginFedCM webdriver कमांड को ज़्यादा एक्सटेंसिबलClickDialogButtonकमांड में बदल दिया गया है. यहDialogButtonपैरामीटर स्वीकार करती है (crrev.com/c/5003255, Bug: 1499341).crossbenchडिपेंडेंसी को अपडेट किया गया है. इसमें कई सुधार और सुविधाएं शामिल हैं. जैसे, ड्राइवर टाइप को बेहतर तरीके से पार्स करना, नेटवर्क स्टब, और iOS के साथ काम करना (crrev.com/c/5009937).- IWYU के नियमों का पालन करने के लिए,
chrome_finder.hमें#include <string>को जोड़ा गया (crrev.com/c/4994605, Bug: 957519).
ChromeDriver 120
नई सुविधाएं
- BiDi:
session.newऔरsession.endकमांड के लिए सहायता जोड़ी गई है. इससे उपयोगकर्ता, BiDi कमांड के ज़रिए सीधे तौर पर सेशन बना और बंद कर सकते हैं (crrev.com/c/4941941, Bug: 4496). - BiDi:
session.statusPureBiDi कमांड के लिए सहायता जोड़ी गई है. इससे उपयोगकर्ता, किसी भी सेशन से बंधे बिना WebSocket कनेक्शन बना सकते हैं और सेशन की स्थिति वापस पा सकते हैं (crrev.com/c/4938596, Bug: 4496). (crrev.com/c/4922097 में पहले किए गए बदलाव को वापस लाने के बाद फिर से लागू किया गया) - BiDi: BiDi Mapper की डिपेंडेंसी को अपग्रेड किया गया है. साथ ही, इसे Mapper को चलाने की नई और आसान प्रोसेस (crrev.com/c/4952609, Bug: 4226) के साथ अलाइन किया गया है.
- सेंसर:
browser_protocol.pdlऔर सीडीपी लेयर (इम्यूलेशन डोमेन) में वर्चुअल सेंसर कमांड लागू की गईं. साथ ही, सामान्य सेंसर स्पेसिफ़िकेशन (crrev.com/c/4770864, Bug: 1278377) के ऑटोमेशन सेक्शन के लिए सहायता जोड़ी गई. - सेंसर: वर्चुअल सेंसर को मैनेज करने के लिए, ChromeDriver एक्सटेंशन कमांड जोड़ी गई हैं. साथ ही, WebDriver पैरामीटर को नए सीडीपी कॉल में बदला गया है (crrev.com/c/4770866, Bug: 1278377).
- सेंसर:
testdriver.jsके ज़रिए वर्चुअल सेंसर में बदलाव करने के लिए,content_shellकोड पाथ जोड़ा गया है. इससे वेब टेस्ट के लिए, ChromeDriver को पूरी तरह से बायपास किया जा सकेगा (crrev.com/c/4770865, Bug: 1278377). - ट्रैकिंग को कम करने से जुड़ी सुविधाएं: ChromeDriver में, ट्रैकिंग को कम करने से जुड़ी सुविधाओं (DIPS) के लिए सहायता जोड़ी गई है. इससे
nav-tracking-mitigationsस्पेसिफ़िकेशन (crrev.com/c/4873672, बग: 1474656) को अपने-आप लागू किया जा सकेगा. (ध्यान दें: crrev.com/c/4938394 पर Mac में टेस्ट फ़ेल होने की वजह से, इसे कुछ समय के लिए पहले जैसा कर दिया गया था)
गड़बड़ियां ठीक की गईं
- स्टार्टअप: ChromeDriver में हेडलेस शेल डिस्कवरी की सुविधा जोड़ी गई है. इससे ChromeDriver,
chrome-headless-shellबाइनरी को खोज सकता है. ऐसा तब होगा, जब क्षमताओं के ज़रिए अनुरोध किया गया हो और कोई पाथ न दिया गया हो (crrev.com/c/4987262, बग: 4358). (crrev.com/c/4984449 में पिछली बार वापस लाने के बाद फिर से लैंड किया गया) - WebSockets: WebSocket Closing Handshake के लिए, आंशिक तौर पर सहायता लागू की गई है. इससे यह पक्का किया जा सकेगा कि रिमोट एंड से
CLOSEफ़्रेम मिलने पर, ChromeDriver जवाब दे (crrev.com/c/4931500, Bug: 4499). - अनुमतियां: इसे बिल्ड फ़्लैग के तौर पर दिखाया गया है, ताकि वेंडर बिल्ड (जैसे कि Microsoft Teams) इसे बंद कर सकें. इससे macOS की अनुमति के प्रॉम्प्ट, टेस्ट ऑटोमेशन को रोकने से बचेंगे (crrev.com/c/4929495, Bug: 1223643).
options.disclaim_responsibility - C++ स्टैंडर्ड का पालन करना: रेंज से बाहर के डबल को int में बदलते समय, UBSan ने अनडिफ़ाइंड बिहेवियर (यूबी) का पता लगाया था. इसे ठीक करने के लिए, रेंज की जांच करने की सुविधा जोड़ी गई है (crrev.com/c/4980055, Bug: 1394755).
- FedCM: पुराने हेडर सिंटैक्स के लिए सहायता हटा दी गई है. इससे यह पक्का किया जा सकेगा कि स्टैंडर्ड
login-status-httpसिंटैक्स का पालन किया जा रहा है (crrev.com/c/4957073, Bug: 1381501).
आंतरिक बदलाव और रीफ़ैक्टर
testReturnFrameElementइंटिग्रेशन टेस्ट जोड़ा गया है. इससे यह पुष्टि की जा सकेगी कि ChromeDriver,testReturnFrameElementको पुराने रेफ़रंस के तौर पर इस्तेमाल करता है या नहीं (crrev.com/c/4983549, Bug: 4477).window.frameElement- बेहतर लॉगिंग की गई है. इससे यह पक्का किया जा सकेगा कि ChromeDriver, उन खास पाथ को लॉग करे जहां वह ब्राउज़र बाइनरी (crrev.com/c/4976116, Bug: 4539) का पता लगाने की कोशिश करता है.
- ज़्यादा जानकारी देने के लिए, कई
base::Timeफ़ंक्शन के नाम बदले गए हैं. जैसे,FromDoubleT()सेFromSecondsSinceUnixEpoch()(crrev.com/c/4956111). net::StringIOBufferकंस्ट्रक्टर औरIOBufferइंस्टैंटिएशन को फिर से फ़ैक्टर किया गया है, ताकि स्ट्रिंग की गैर-ज़रूरी कॉपी और शून्य लंबाई के असाइनमेंट से बचा जा सके (crrev.com/c/4938384, crrev.com/c/4959174).- स्ट्रिंग हैंडलिंग को बेहतर बनाया गया है. इसके लिए, जहां ज़रूरी हो वहां
base::StrCatको+से बदला गया है. साथ ही,base::AppendHexEncodedByte()का इस्तेमाल किया गया है (crrev.com/c/4963465, crrev.com/c/4977165). //chrome*टेस्ट में,DIR_SOURCE_ROOTका नाम बदलकरDIR_SRC_TEST_DATA_ROOTकर दिया गया है, ताकि इसे आसानी से समझा जा सके (crrev.com/c/4916045, Bug: 1264897).- Mac बिल्डरों पर, बार-बार फ़ेल होने वाले
PureBidiTestटेस्ट बंद किए गए (crrev.com/c/4983555, Bug: 1496826).
ChromeDriver 119
नई सुविधाएं
- BiDi: रिमोट फ़ंक्शन कॉल के दौरान, रिमोट एंड से मिले कमज़ोर लोकल ऑब्जेक्ट रेफ़रंस को ठीक करने की सुविधा लागू की गई (crrev.com/c/4886760, Bug: 4536).
- FedCM: आईडीपी साइन-इन स्टेटस एपीआई के ओरिजिन ट्रायल (crrev.com/c/4811725, Bug: 1451884) के लिए, वेंडर-प्रीफ़िक्स वाली
confirmidpsigninकमांड जोड़ी गई.
गड़बड़ियां ठीक की गईं
- मोबाइल इम्यूलेशन: ऐसी समस्या को ठीक किया गया है जिसमें क्लाइंट हिंट के बिना पहले से तय किए गए डिवाइस (जैसे, पुराने कॉन्फ़िगरेशन) को डिफ़ॉल्ट वैल्यू (crrev.com/c/4887254, Bug: 4550) के साथ पॉप्युलेट करने पर, वे काम नहीं कर रहे थे.
- क्लासिक:
MapऔरSetऑब्जेक्ट के सीरियलाइज़ेशन की समस्या ठीक की गई है. अब इन्हेंCollectionके बजायObjectके तौर पर सही तरीके से सीरियलाइज़ किया जाता है, क्योंकि इनमेंlengthप्रॉपर्टी नहीं होती है (crrev.com/c/4881378, बग: 4031). - क्लासिक: टेस्ट के दौरान, ChromeDriver के साथ काम करने वाले सबसे नए वर्शन को हमेशा डाउनलोड और इस्तेमाल करने के लॉजिक को फिर से लागू किया गया है. हालांकि, अगर वर्शन के साथ काम करने से जुड़ी समस्याएं आती हैं, तो सिर्फ़ खास वर्शन का इस्तेमाल किया जाएगा (crrev.com/c/4779613, crrev.com/c/4778973 को पहले जैसा किया जा रहा है).
- FedCM: ब्राउज़र ऑटोमेशन कमांड को स्टैंडर्ड बनाया गया है. इसके लिए,
Signinका नाम बदलकरLogin(confirmidplogin) कर दिया गया है, ताकि FedCM के बारे में हुई नई चर्चाओं (crrev.com/c/4901302, Bug: 1451884) के साथ अलाइन किया जा सके. - जांच: FedCM की उन जांचों को ठीक किया गया है जो तीसरे पक्ष की कुकी बंद होने पर काम नहीं करती थीं. ऐसा इसलिए होता था, क्योंकि जांच के दौरान आईडीपी के साइन-इन स्टेटस वाले एपीआई को चालू किया जाता था (crrev.com/c/4889802, बग: 1484833).
- जांच: आने वाले समय में, Chromium के यूआरएल स्टैंडर्ड को लागू करने से जुड़े बदलावों (crrev.com/c/4845589, Bug: 1416013) का पालन करने के लिए, टेस्ट रनर में अमान्य यूआरएल प्लेसहोल्डर
~NOTFOUNDको^NOTFOUNDसे बदल दिया गया है.
आंतरिक बदलाव और रीफ़ैक्टर
- BiDi: BiDi Mapper की डिपेंडेंसी को 0.4.27 वर्शन पर अपडेट किया गया है. इससे, नए फ़िक्स और सुविधाएं उपलब्ध होंगी (crrev.com/c/4862031, crrev.com/c/4890322).
- बेहतर सुरक्षा और सुविधा के लिए,
//urlमें कई पॉइंटर/लेंथ एपीआई कोstd::string_viewसे बदल दिया गया है (crrev.com/c/4897456). generateWebDriverValueयूटिलिटी को, BiDi प्रोटोकॉल (crrev.com/c/4889644) के ज़रिए नेटिव तौर पर उपलब्ध कराए गए डीप सीरियलाइज़ेशन विकल्प (serializationOptions.serialization: deep) का इस्तेमाल करने के लिए ट्रांज़िशन किया गया.- इंटिग्रेशन टेस्ट जोड़े गए हैं. इनसे यह पुष्टि की जा सकेगी कि पुराने एलिमेंट के रेफ़रंस में खोज करने पर, "पुराने एलिमेंट का रेफ़रंस" गड़बड़ी का मैसेज सही तरीके से दिखता है या नहीं (crrev.com/c/4886793, गड़बड़ी: 4440).
call_function.jsमें कोड स्टाइल फ़ॉर्मैटिंग को बेहतर बनाया गया है (crrev.com/c/4882511, Bug: 4031).- उपयोगकर्ताओं को बेहतर तरीके से जानकारी दी गई है. जैसे, जब वे WebSockets के ज़रिए कनेक्ट करते हैं, तो उन्हें साफ़ तौर पर बताया जाता है कि पाइप काम करते हैं. साथ ही, बेहतर भरोसेमंद और सुरक्षा के लिए, पाइप का इस्तेमाल करने का सुझाव दिया जाता है (crrev.com/c/4882626, Bug: 3480).
results.htmlके लिएwebdriver_tests_suiteटेस्ट को संग्रहित करने के लिए, WPT सुइट के कॉन्फ़िगरेशन को अपडेट किया गया है. इससे, नतीजों को देखने के लिए बेहतर यूज़र इंटरफ़ेस (यूआई) मिलता है (crrev.com/c/4873223).- WebView के साथ DevTools के इंटिग्रेशन की समस्या ठीक की गई. इसके लिए, WebView WebContents को मार्क किया गया और उनके DevTools टाइप को
otherके बजायpopup_pageपर सेट किया गया (crrev.com/c/4842093). - WPT के बिल्ड टारगेट
chrome_wptका नाम बदलकरchrome_wpt_testsकर दिया गया है, ताकि यह एक जैसा दिखे. साथ ही,webdriver_wpt_testsटारगेट (crrev.com/c/4847474, Bug: 1474702) को हटा दिया गया है. run_py_tests.pyको अब काम न करने वालीoptparseलाइब्रेरी सेargparseपर माइग्रेट किया गया (crrev.com/c/4849411, Bug: 4557).
ChromeDriver 118
नई सुविधाएं
- इंटिग्रेशन टेस्टिंग: ChromeDriver के लिए C++ इंटिग्रेशन टेस्ट शुरू किए गए हैं. इससे, यूनिट टेस्ट और Python इंटिग्रेशन टेस्ट के बीच के अंतर को कम किया जा सकेगा. साथ ही, CDP के असली ट्रैफ़िक के हिसाब से कुछ क्लास की टेस्टिंग की जा सकेगी (crrev.com/c/4707855, Bug: 4528).
- Crossbench:
crossbenchडिपेंडेंसी को अपडेट किया गया है. इसमें कई सुधार किए गए हैं. जैसे, पावर बेंचमार्क की नई स्टोरी, प्लैटफ़ॉर्म और डिवाइस के लिए बेहतर सपोर्ट, बेहतर डीबगिंग, और कई सुधार (crrev.com/c/4803743).
गड़बड़ियां ठीक की गईं
- सुविधाएं: हमने एक ऐसी समस्या को ठीक किया है जिसमें डिफ़ॉल्ट कॉन्फ़िगरेशन में, दिखाई गई सुविधाओं में
debuggerAddressमौजूद नहीं था. अब इसे सही तरीके से दिखाया जाता है, ताकि Selenium के सीडीपी पर आधारित BiDi कम्यूनिकेशन (crrev.com/c/4789068, बग: 4533) के साथ काम किया जा सके. - क्षमताएं: यह पक्का किया गया है कि ChromeDriver, WebDriver स्पेसिफ़िकेशन (crrev.com/c/4797735, Bug: 4548) के मुताबिक स्टैंडर्ड
platformNameवैल्यू (जैसे, 'linux', 'windows', 'mac') दिखाता है.
आंतरिक बदलाव और रीफ़ैक्टर
- बेहतर सुरक्षा के लिए,
MockSocketमें माइग्रेट किए गए कोड में रॉ पॉइंटर के बजायbase::span<>का इस्तेमाल किया गया है (crrev.com/c/4832086). - ऑटोमेटेड क्लीनअप (crrev.com/c/4773481) के ज़रिए,
base::raw_ptrऔरbase::raw_refके इस्तेमाल के ऐसे उदाहरण हटा दिए गए हैं जो अब काम नहीं करते. इनके बजाय,raw_ptrऔरraw_refका इस्तेमाल किया गया है. - हमने ऐसे बदलाव को कुछ समय के लिए पहले जैसा कर दिया है जो हमेशा ChromeDriver के नए वर्शन का इस्तेमाल करता था. इसकी वजह यह है कि इससे Windows के स्टेबल/बीटा चैनल क्रैश हो रहे थे (crrev.com/c/4778973, crrev.com/c/4777430 को पहले जैसा किया जा रहा है).
- डब्ल्यूपीटी (वेब प्लैटफ़ॉर्म टेस्ट) कॉन्फ़िगरेशन में बदलाव किए गए हैं. इनमें
pointer_touch.pyमें सिर्फ़ डीबग करने से जुड़ी गड़बड़ियों को छिपाना और फ़ेंस किए गए फ़्रेम के लिए ब्राउज़र-साइड फ़ोकस की पुष्टि करना शामिल है (crrev.com/c/4844810, crrev.com/c/4572517). - IWYU के नियमों का पालन करने के लिए,
client_hints.hमें छूटा हुआ#include <vector>जोड़ा गया (crrev.com/c/4767547). - Apple के लिए खास तौर पर बनाए गए बेस टाइप (
ScopedTypeRef,ScopedCFTypeRef,scoped_nsautorelease_pool) कोbase::apple::नेमस्पेस में माइग्रेट किया गया है. साथ ही, Crashpad के लिए फ़ॉरवर्ड करने वाले हेडर को कुछ समय के लिए छोड़ दिया गया है (crrev.com/c/4799213, crrev.com/c/4790744, crrev.com/c/4790741, crrev.com/c/4784010).
ChromeDriver 117
नई सुविधाएं
- पाइप कम्यूनिकेशन: ChromeDriver और Chrome के बीच डिफ़ॉल्ट कम्यूनिकेशन मोड को WebSockets से बदलकर पाइप (
--remote-debugging-in-pipeऔर--remote-debugging-out-pipe) कर दिया गया है. यह बदलाव, Windows (crrev.com/c/4634299, crrev.com/c/4628834, crrev.com/c/4635378, Bug: 3480) सहित उन सभी प्लैटफ़ॉर्म पर किया गया है जिन पर यह सुविधा काम करती है. - BiDi: BiDi Mapper की डिपेंडेंसी को अपडेट किया गया है (crrev.com/c/4670516, Bug: 4226).
गड़बड़ियां ठीक की गईं
- स्थिरता: एक ऐसे नल पॉइंटर ऐक्सेस को ठीक किया गया है जिसकी वजह से ChromeDriver क्रैश हो जाता था. इससे टेस्ट रन के दौरान
ConnectionRefusedगड़बड़ियां होती थीं (crrev.com/c/4675633, बग: 1457101). - नेविगेशन: नेविगेशन के दौरान Chrome में
NoSuchExecutionContextऔरNoSuchWindowगड़बड़ियों को एक जैसा नहीं माना जाता था. इस समस्या को ठीक कर दिया गया है. अब दोनों गड़बड़ियों को एक जैसा माना जाता है और ऑपरेशन को फिर से आज़माने के लिए मैप किया जाता है (crrev.com/c/4667156, गड़बड़ी: 4459). - मोबाइल इम्यूलेशन:
clientHints.mobileके लिए अनुमान लगाने के लॉजिक को ठीक किया गया है. अब इसे Android परuserAgentसे सही तरीके से अनुमान लगाया जाता है. साथ ही, अन्य प्लैटफ़ॉर्म पर यह डिफ़ॉल्ट रूप से गलत होता है. इससे उस समस्या को ठीक किया गया है जिसमें टैबलेट को गलत तरीके से मोबाइल के तौर पर रिपोर्ट किया जाता था (crrev.com/c/4649348, Bug: 4243). - सेशन बनाना: सेशन बनाने की सुविधा को अपडेट किया गया है, ताकि गड़बड़ी होने पर स्टैंडर्ड
SessionNotCreatedगड़बड़ी कोड सही तरीके से दिखाया जा सके. यह W3C WebDriver स्पेसिफ़िकेशन (crrev.com/c/4638223, Bug: 4379) का पूरी तरह से पालन करता है. ध्यान दें: बाद में इस बदलाव को पहले जैसा कर दिया गया, क्योंकि कुछ खास कोड पाथ के लिए अलग-अलग गड़बड़ी कोड की ज़रूरत होती है (crrev.com/c/4651188).
आंतरिक बदलाव और रीफ़ैक्टर
- ChromeDriver को मैन्युअल तरीके से रिलीज़ करने की प्रोसेस की स्क्रिप्ट हटा दी गई हैं. ऐसा इसलिए, क्योंकि ChromeDriver को अब Chrome को रिलीज़ करने की प्रोसेस में पूरी तरह से इंटिग्रेट कर दिया गया है. साथ ही, यह Chrome for Testing के इन्फ़्रास्ट्रक्चर (crrev.com/c/4520687, Bug: 4142) के ज़रिए उपलब्ध है.
- WPT (वेब प्लैटफ़ॉर्म टेस्ट) के इन्फ़्रास्ट्रक्चर को माइग्रेट किया गया है, ताकि कस्टम
run_webdriver_tests.pyके बजाय आधिकारिकwptrunnerका इस्तेमाल किया जा सके. इससे टेस्ट के एक्ज़ीक्यूशन की स्पीड और भरोसेमंद होने की संभावना काफ़ी बढ़ गई है. साथ ही, यह पक्का किया गया है कि क्रैश को अलग करने के लिए, ChromeDriver टेस्ट के बीच में फिर से शुरू हो (crrev.com/c/4723147, crrev.com/c/4676070, crrev.com/c/4639168). - पाइप पर ट्रांज़िशन करने के लिए,
ChromeLauncherऔर इससे जुड़ी क्लास को बड़े पैमाने पर रीफ़ैक्टर किया गया है. साथ ही,DevToolsHttpClientके साथ कपलिंग को कम किया गया है और WebSocket लॉजिक को अलग-अलग ब्रांच में ले जाया गया है (crrev.com/c/4632801, crrev.com/c/4674345). BrowserInfo.is_headlessफ़ील्ड का नाम बदलकरBrowserInfo.is_headless_shellकर दिया गया है, ताकि यह साफ़ तौर पर समझ में आ सके (crrev.com/c/4650452, बग: 4358).- कोडबेस में, बंद किए गए
base::Valueके कई तरीकों कोbase::Value::Dictके आधुनिक तरीकों (जैसे,FindDouble(),Set(),size()) से बदल दिया गया है (crrev.com/c/4258936, crrev.com/c/4336805, crrev.com/c/4461067).112.0.5603.0, 113.0.5653.0, 114.0.5733.0 - सुरक्षित बेस स्ट्रिंग यूटिलिटी के लिए,
[w]ctype.hका इस्तेमाल बंद कर दिया गया है. साथ ही,base::expectedके लिए नई सुविधाएं लागू की गई हैं (crrev.com/c/4749459, crrev.com/c/4755226). - FedCM WPT के लिए,
TestDriverमेंget_fedcm_dialog_titleऔरselect_fedcm_accountऑटोमेशन कमांड लागू की गईं (crrev.com/c/4618303). - BiDi मैपर की बिल्ड स्क्रिप्ट को अपडेट किया गया है, ताकि वे मौजूदा वर्किंग डायरेक्ट्री (crrev.com/c/4670550) के हिसाब से सही तरीके से काम कर सकें.
- macOS बिल्ड में एआरसी (ऑटोमैटिक रेफ़रंस काउंटिंग) का इस्तेमाल करने के लिए,
/chrome/test/chromedriverफ़ाइलों को बदला गया. साथ ही, ज़रूरी बॉयलरप्लेट (crrev.com/c/4663602) जोड़ा गया. - ऑटोमेटेड रबर-स्टैंपर कमिट के ज़रिए, पाइप कम्यूनिकेशन को डिफ़ॉल्ट रूप से बंद करने की कोशिश की गई. हालांकि, बदलाव सिर्फ़ कॉन्फ़िगरेशन पर लागू हुआ. इससे, पहले से लागू किए गए पाइप-बाय-डिफ़ॉल्ट के मुख्य व्यवहार में कोई बदलाव नहीं हुआ (crrev.com/c/4683947).
ChromeDriver 116
नई सुविधाएं
- FedCM: एक नई सुविधा जोड़ी गई है. इससे क्लाइंट यह देख पाएंगे कि ChromeDriver, FedCM कमांड के साथ काम करता है या नहीं. इसके लिए, उन्हें कमांड को लागू करने की ज़रूरत नहीं होगी. साथ ही, वे गड़बड़ियों का पता लगा पाएंगे (crrev.com/c/4624924, बग: 1356159).
- जांच:
wptrunnerमें ChromeDriver के ज़रिए चलाए गए testharness टेस्ट के लिए, टेस्ट विंडो को फिर से इस्तेमाल करने की सुविधा चालू की गई है. इससे परफ़ॉर्मेंस और गड़बड़ियों पर पड़ने वाले असर का आकलन किया जा सकेगा (crrev.com/c/4515180, Bug: 1394572).
गड़बड़ियां ठीक की गईं
- C++ स्टैंडर्ड का पालन करना: स्कोप किए गए इन्यूमरेशन (enum class) को फ़ॉर्मैट स्ट्रिंग में सीधे तौर पर गलत तरीके से इस्तेमाल करने की वजह से होने वाली समस्या को ठीक किया गया है. साथ ही, Clang कंपाइलर की नई चेतावनियों (crrev.com/c/4628112, Bug: 1456289) को ठीक किया गया है.
- FedCM: एक ऐसे मामले को ठीक किया गया है जिसकी वजह से टेस्ट के नतीजे कभी-कभी अलग आते थे. इस मामले में,
setdelayenabledठीक से काम नहीं कर रहा था (crrev.com/c/4606064, Bug: 1453412).
आंतरिक बदलाव और रीफ़ैक्टर
- BiDi: BiDi Mapper की डिपेंडेंसी को अपग्रेड किया गया है. साथ ही, बिल्ड स्क्रिप्ट को अपडेट किया गया है, ताकि डिफ़ॉल्ट रूप से 'main' से सबसे नया वर्शन पुल किया जा सके (crrev.com/c/4615087, crrev.com/c/4615791, Bug: 4226).
- ChromeDriver को UTF-8 एन्कोडिंग का इस्तेमाल करके, सभी फ़ाइलें खोलने और लिखने के लिए ट्रांज़िशन किया गया है (crrev.com/c/4614522).
ChromeImplको फिर से फ़ैक्टर किया गया है, ताकि यहDevToolsHttpClientपर निर्भर न रहे. साथ ही, WebSockets के बजाय पाइप के ज़रिए कम्यूनिकेट करने की तैयारी के लिए,SyncWebSocketFactoryऔरBrowserInfoके इस्तेमाल को कम किया गया है (crrev.com/c/4571690, crrev.com/c/4571199, Bug: 3480).- फ़ेन्स्ड फ़्रेम के लिए, बंद किए गए "डिफ़ॉल्ट मोड" को हटा दिया गया है. साथ ही, नई सुविधा फ़्लैग को चालू करने के लिए, इससे जुड़े टेस्ट अपडेट किए गए हैं. इससे, FLEDGE ऑक्शन पर माइग्रेट करने की प्रोसेस जारी रहेगी (crrev.com/c/4558645).
- FedCM टेस्ट को बेहतर बनाया गया है. इसके लिए, सामान्य
WaitForConditionअसर्शन कोassertTrueसे बदल दिया गया है, ताकि टाइमआउट कब होते हैं, यह साफ़ तौर पर पता चल सके (crrev.com/c/4590211). linux-relयूनिट टेस्ट में,raw_ptrचेतावनियों को फ़्लैकी डैंगलिंग के तौर पर मार्क किया गया है (crrev.com/c/4598070).- BiDi मैपर (crrev.com/c/4614518) के लिए OWNERS फ़ाइल अपडेट की गई.
ChromeDriver 115
नई सुविधाएं
- मोबाइल इम्यूलेशन: मोबाइल इम्यूलेशन में User-Agent Client Hints के लिए सहायता लागू की गई है. इससे ChromeDriver, क्षमताओं और प्रीसेट से क्लाइंट हिंट पार्स कर सकता है और उन्हें Chrome को पास कर सकता है (crrev.com/c/4498667, crrev.com/c/4466129, Bug: 4243).
- मोबाइल इम्यूलेशन: मोबाइल इम्यूलेशन के प्रीसेट अपडेट किए गए हैं. इससे, उपयोगकर्ता एजेंट में
%sफ़ॉर्मैट स्ट्रिंग को बदलते समय, ChromeDriver वर्शन के बजाय होस्ट ब्राउज़र के मुख्य वर्शन का इस्तेमाल किया जा सकेगा (crrev.com/c/4502850, Bug: 4243). - सेटअप: किसी चैनल के लिए ChromeDriver का कोई खास वर्शन डाउनलोड करने की सुविधा जोड़ी गई है. इससे ऑटोमेशन के उन मामलों में सुधार होगा जहां ChromeDriver, होस्ट (crrev.com/c/4550281) के मुकाबले किसी दूसरे प्लैटफ़ॉर्म (जैसे, Android/WebView) पर चलता है.116.0.5791.0
गड़बड़ियां ठीक की गईं
- क्लासिक: इस समस्या को ठीक किया गया है. इसमें नोड को हल न कर पाने पर, स्टैंडर्ड
NoSuchElementगड़बड़ी (crrev.com/c/4508952, गड़बड़ी: 4440) के बजाय, गलत तरीके सेUnknownErrorदिखता था. - मोबाइल इम्यूलेशन: मोबाइल इम्यूलेशन प्रीसेट में ज़्यादा सख्त दावे जोड़े गए हैं. इससे यह पक्का किया जा सकेगा कि अगर
userAgentस्ट्रिंग में 'Mobile' शामिल है, तोclientHints.mobileफ़्लैग को सही पर सेट किया जाना चाहिए (crrev.com/c/4507142, बग: 4243). - मोबाइल इम्यूलेशन: माइग्रेट किए गए
DeviceMetricsओवरराइड, अब बंद हो चुकीPageडोमेन कमांड के बजायEmulation.setDeviceMetricsOverrideसीडीपी कमांड का इस्तेमाल करते हैं (crrev.com/c/4502614, Bug: 4243).
आंतरिक बदलाव और रीफ़ैक्टर
- BiDi: BiDi Mapper की डिपेंडेंसी को अपडेट किया गया है. इससे डीप सीरियलाइज़ेशन की सुविधाएं चालू हो गई हैं (crrev.com/c/4535936, crrev.com/c/4512195).
- पाइप के ज़रिए कम्यूनिकेट करने के लिए ChromeDriver को माइग्रेट करने की तैयारी के दौरान, हमने
DevToolsClientसेConnectके इस्तेमाल में नहीं है तरीके को हटा दिया है (crrev.com/c/4521485, Bug: 3480). - कोडबेस को माइग्रेट करके,
base::Value::Dictकोbase::Valueपर प्राथमिकता दी गई है. साथ ही,FindStringKey(),SetKey(), औरSetByDottedPath()जैसे बंद किए गए तरीकों को बदल दिया गया है (crrev.com/c/4529788, crrev.com/c/4522701, crrev.com/c/4515800, crrev.com/c/4507150). - टाइप कन्वर्ज़न को ज़्यादा सुरक्षित बनाने के लिए,
[w]ctype.hके बजायstring_util.hफ़ंक्शन का इस्तेमाल किया गया (crrev.com/c/4529187). - सीड फ़ाइल लोड करने के लॉजिक में बदलाव किया गया है, ताकि अलग-अलग जगहों पर स्क्रिप्ट और Chrome चलाने पर, एक जैसा अनुभव मिले. इसके लिए, अब ऐब्सलूट पाथ का इस्तेमाल किया जाएगा (crrev.com/c/4504656).
web_view.hसे, इस्तेमाल न की गईCallAsyncFunction()विधि को हटाया गया (crrev.com/c/4518363, Bug: 3376).- स्टाइल गाइड की प्राथमिकताओं (crrev.com/c/4476651) के मुताबिक,
base::raw_ptrका नाम बदलकरraw_ptrकर दिया गया है.
ChromeDriver 114
नई सुविधाएं
- Classic:
MobileDeviceसेMobileEmulationOverrideManagerको जानकारी भेजी गई, ताकि आने वाले समय में क्लाइंट हिंट और UserAgent ओवरराइड (crrev.com/c/4447524) के लिए बुनियादी ढांचा तैयार किया जा सके. - जांच: ChromeDriver के लिए टेस्ट फ़िक्चर जोड़े गए (crrev.com/c/4459939).
गड़बड़ियां ठीक की गईं
- हेडलेस: स्क्रिप्ट किए गए प्रिंट प्रीव्यू के अनुरोधों (जैसे,
window.print()) को चुपचाप अनदेखा करके, नए हेडलेस मोड में क्रैश होने की समस्या को ठीक किया गया है. साथ ही, इसके व्यवहार को पुराने हेडलेस मोड (crrev.com/c/4436313, Bug: 4385) के साथ अलाइन किया गया है. - सुविधाएं: ChromeDriver की सुविधाओं में, use-after-move बग को ठीक किया गया है (crrev.com/c/4462094, बग: 4243).
- DevTools: DevTools कनेक्शन टूटने पर क्रैश होने से रोकने के लिए,
DevToolsClientImpl::SendCommandInternalमें मौजूदDCHECKको हटा दिया गया है. ऐसा इसलिए, क्योंकि यह इनवेरिएंट का उल्लंघन नहीं है (crrev.com/c/4370486, बग: 4385).
आंतरिक बदलाव और रीफ़ैक्टर
- BiDi: BiDi Mapper की डिपेंडेंसी (crrev.com/c/4418727) को अपडेट किया गया है.
- यूनिट टेस्ट के दौरान, डैंगलिंग पॉइंटर की कई चेतावनियों को ठीक किया गया. इसके लिए,
WebViewImplमें बिना मालिकाना हक वाले रेफ़रंस और लोकल डिस्ट्रक्शन को सही तरीके से मैनेज किया गया. साथ ही, परफ़ॉर्मेंस लॉगर टेस्ट (crrev.com/c/4374824, crrev.com/c/4368179) को भी ठीक किया गया. - कोडबेस को माइग्रेट करके, नए
base::Valuev2 API का इस्तेमाल किया गया. साथ ही, बंद किए गए तरीकों जैसे किValue::SetPath(),Value::SetStringPath(), औरbase::ListValueको बदल दिया गया (crrev.com/c/4452309, crrev.com/c/4431420, crrev.com/c/4422897, crrev.com/c/4377520). base::GUIDके सभी इस्तेमाल कोbase::Uuidसे बदल दिया गया है, ताकि कोर बेस लाइब्रेरी के नाम बदलने (crrev.com/c/4455083) के साथ अलाइन किया जा सके.- कोड को छोटा करने,
expectedके लिए मोनडिक ऑपरेशंस का इस्तेमाल करने, इस्तेमाल न किए गए कोड को हटाने, और स्टाइल से जुड़े उल्लंघन ठीक करने (crrev.com/c/4475368, crrev.com/c/4464199) जैसे कई कोड क्लीनअप किए गए. - फ़ेंस किए गए फ़्रेम से जुड़ी जांचों को अपडेट किया गया है, ताकि अब
srcएट्रिब्यूट के बजायconfigएट्रिब्यूट का इस्तेमाल किया जा सके.srcएट्रिब्यूट अब काम नहीं करता (crrev.com/c/4382231). ShadowDOMV0के ऐसे इस्तेमाल को हटाया गया जिससे कोई फ़ायदा नहीं होता (crrev.com/c/4388302).- Skia PDF फ़िक्स (
SK_IGNORE_PDF_EOF_NEWLINE_FIX) के लिए फ़्लैग जोड़ने की सुविधा को पहले जैसा कर दिया गया है, ताकि रीबेसलिंग (crrev.com/c/4401451) की जा सके. - ChromeDriver टेस्ट स्क्रिप्ट के मालिक को अपडेट किया गया है. साथ ही, कॉन्फ़िगरेशन JSON को सिर्फ़ Pinpoint के लिए जनरेट करने के लिए बदलाव किए गए हैं (crrev.com/c/4437492, crrev.com/c/4298554).
- IWYU बिल्ड की समस्या (crrev.com/c/4376772) को ठीक करने के लिए,
web_view_impl.ccमेंstd::strlenके लिए, शामिल करें (<cstring>) को जोड़ा गया. - इस्तेमाल नहीं की गई टेस्ट फ़ाइल (
orientation_test.html) हटाई गई (crrev.com/c/4335668).
ChromeDriver 113.0.5672.63
Chrome के 113 वर्शन के साथ काम करता है
- समस्या 4205 हल की गई: क्लासिक और BiDi में एक जैसे ऑब्जेक्ट आईडी [Pri-1]
- हल की गई समस्या 4302: यह न मान लें कि ExecuteGetWindowHandles में Mapper पहले टैब में है [Pri-1]
- समस्या 4356 हल हो गई है: Chrome 110, "download.default_directory" की प्राथमिकता वाली वैल्यू का इस्तेमाल नहीं कर रहा है [Pri-1]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 113.0.5672.24
Chrome के 113 वर्शन के साथ काम करता है
- समस्या 4205 हल की गई: क्लासिक और BiDi में एक जैसे ऑब्जेक्ट आईडी [Pri-1]
- हल की गई समस्या 4302: यह न मान लें कि ExecuteGetWindowHandles में Mapper पहले टैब में है [Pri-1]
- समस्या 4356 हल हो गई है: Chrome 110, "download.default_directory" की प्राथमिकता वाली वैल्यू का इस्तेमाल नहीं कर रहा है [Pri-1]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 112.0.5615.49
Chrome के 112 वर्शन पर काम करता है
- समस्या 3517 हल हो गई है: बिना हेडलेस वाले ब्राउज़र के लिए प्रिंट करने की सुविधा चालू करें [Pri-]
- समस्या 4419 हल की गई: chromedriver का इस्तेमाल करते समय, Speedometer पर ज़्यादा ओवरहेड [Pri-3]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 112.0.5615.28
Chrome के 112 वर्शन पर काम करता है
- हल की गई समस्या 4357: Chromedriver के वर्शन 110.0.5481.77 में, --headless और --user-data-dir विकल्पों के साथ सेशन से जुड़ी समस्या. [Pri-1]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 111.0.5563.64
Chrome 111 वर्शन के साथ काम करता है
- हल की गई समस्या 4216: पसंद के मुताबिक बनाए गए BiDiMapper के साथ ChromeDriver चलाएं [Pri-]
- समस्या 4300 ठीक कर दी गई है: विंडो हैंडल, क्लासिक और BiDi के बीच इंटरऑपरेबल है [Pri-]
- समस्या 4325 हल की गई: call_function.js के jsonSerialize में toJSON को हैंडल करने का तरीका, स्टैंडर्ड से अलग है. [Pri-]
- हल की गई समस्या 4330: DevToolsClientImpl::AddListener [Pri-] पर DCHECK फ़ेल हो गया
- समस्या 4357 ठीक की गई: --headless और --user-data-dir विकल्पों के साथ ChromeDriver सेशन से जुड़ी समस्या [Pri-1]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 111.0.5563.41
Chrome 111 वर्शन के साथ काम करता है
- समस्या 4357 ठीक की गई: --headless और --user-data-dir विकल्पों के साथ ChromeDriver सेशन से जुड़ी समस्या [Pri-1]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 111.0.5563.19
Chrome 111 वर्शन के साथ काम करता है
- हल की गई समस्या 4216: पसंद के मुताबिक बनाए गए BiDiMapper के साथ ChromeDriver चलाएं [Pri-]
- समस्या 4300 ठीक कर दी गई है: विंडो हैंडल, क्लासिक और BiDi के बीच इंटरऑपरेबल है [Pri-]
- समस्या 4325 हल की गई: call_function.js के jsonSerialize में toJSON को हैंडल करने का तरीका, स्टैंडर्ड से अलग है. [Pri-]
- हल की गई समस्या 4330: DevToolsClientImpl::AddListener [Pri-] पर DCHECK फ़ेल हो गया
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 110.0.5481.77
Chrome के 110 वर्शन पर काम करता है
- समस्या 4193 हल की गई: Android 13 पर नया सेशन शुरू नहीं किया जा सका [Pri-]
- हल की गई समस्या 4272: WebSocket को code=0 को FIN के तौर पर मानना चाहिए [Pri-]
- समस्या 4276 हल की गई: ChromeDriver में कनेक्टिविटी से जुड़ी समस्याओं को ठीक किया गया [Pri-]
- समस्या 4295 हल की गई:
"webSocketUrl": trueके साथ ChromeDriver में रेसी की समस्या है [Pri-] - हल की गई समस्या 4297: ChromeDriver Bidi, गलत तरीके से क्रम से लगाता है [Pri-]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 110.0.5481.30
Chrome के 110 वर्शन पर काम करता है
- समस्या 4193 हल की गई: Android 13 पर नया सेशन शुरू नहीं किया जा सका [Pri-]
- हल की गई समस्या 4272: WebSocket को code=0 को FIN के तौर पर मानना चाहिए [Pri-]
- समस्या 4276 हल की गई: ChromeDriver में कनेक्टिविटी से जुड़ी समस्याओं को ठीक किया गया [Pri-]
- समस्या 4295 हल की गई:
"webSocketUrl": trueके साथ ChromeDriver में रेसी की समस्या है [Pri-] - हल की गई समस्या 4297: ChromeDriver Bidi, गलत तरीके से क्रम से लगाता है [Pri-]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 109.0.5414.74
Chrome 109 के साथ काम करता है
- हल की गई समस्या 4179: BiDi सेशन में एक से ज़्यादा कनेक्शन काम करने चाहिए [Pri-]
- हल की गई समस्या 4203: क्रेडिट की जानकारी को बेहतर बनाएं [Pri-]
- समस्या 4263 हल की गई: Meta+A पर क्रैश होना [Pri-]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 109.0.5414.25
Chrome 109 के साथ काम करता है
- हल की गई समस्या 4179: BiDi सेशन में एक से ज़्यादा कनेक्शन काम करने चाहिए [Pri-]
- हल की गई समस्या 4203: क्रेडिट की जानकारी को बेहतर बनाएं [Pri-]
- समस्या 4263 हल की गई: Meta+A पर क्रैश होना [Pri-]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 108.0.5359.71
Chrome के 108 वर्शन के साथ काम करता है ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 108.0.5359.22
Chrome के 108 वर्शन के साथ काम करता है
- समस्या 4204 हल की गई: WPT test_top_level_and_one_child [Pri-] टेस्ट के फ़ेल होने की समस्या ठीक की गई
- हल की गई समस्या 4215: chromedriver_mac64_m1 बिल्ड का नाम बदलकर chromedriver_mac_arm64 करें [Pri-]
- समस्या 4221 हल की गई: क्लिक करने के निर्देश से ब्राउज़र बंद होने पर क्रैश होने की समस्या [Pri-]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 107.0.5304.62
Chrome 107 के साथ काम करता है
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 107.0.5304.18
Chrome 107 के साथ काम करता है
- हल की गई समस्या 4180: BiDiMapper के शुरू होने की सूचना मिलने तक, BiDi से जुड़ी किसी भी कमांड को हैंडल करने पर रोक लगाएं [Pri-]
- हल की गई समस्या 4198: ChromeDriver BiDi को यह नहीं मानना चाहिए कि BiDiMapper हमेशा पहले टैब में होता है [Pri-]
- समस्या 4207 हल की गई: WPT चलाने पर WebDriver से जुड़ी गड़बड़ी [Pri-1]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 106.0.5249.61
Chrome के 106 वर्शन के साथ काम करता है
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 106.0.5249.21
Chrome के 106 वर्शन के साथ काम करता है
- हल की गई समस्या 4016: ChromeDriver (Mapper पर आधारित) में BiDi की बुनियादी सुविधा जोड़ें [Pri-1]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 105.0.5195.52
Chrome के वर्शन 105 के साथ काम करता है
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 105.0.5195.19
Chrome के इस वर्शन पर काम करता है
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 104.0.5112.79
Chrome के वर्शन 104 के साथ काम करता है
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 104.0.5112.29
Chrome के वर्शन 104 के साथ काम करता है
- समस्या 4121 ठीक कर दी गई है: WebDriver कमांड कभी-कभी "अनपेक्षित कमांड रिस्पॉन्स" के साथ फ़ेल हो जाती है [Pri-1]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 104.0.5112.20
Chrome के वर्शन 104 के साथ काम करता है
- समस्या 4121 ठीक कर दी गई है: WebDriver कमांड कभी-कभी "अनपेक्षित कमांड रिस्पॉन्स" के साथ फ़ेल हो जाती है [Pri-1]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 103.0.5060.134
Chrome के वर्शन 103 के साथ काम करता है
- हल की गई समस्या 4048: टारगेट फ़्रेम अलग किया गया [Pri-]
- समस्या 4121 ठीक कर दी गई है: WebDriver कमांड कभी-कभी "अनपेक्षित कमांड रिस्पॉन्स" के साथ फ़ेल हो जाती है [Pri-1]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 103.0.5060.53
Chrome के वर्शन 103 के साथ काम करता है
- हल की गई समस्या 4048: टारगेट फ़्रेम अलग किया गया [Pri-]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 103.0.5060.24
Chrome के वर्शन 103 के साथ काम करता है
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 102.0.5005.61
Chrome के 102 वर्शन पर काम करता है
- समस्या 1309282 हल की गई: chromedriver, एक से ज़्यादा वैल्यू वाले स्विच के साथ काम नहीं करता [Pri-1]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 102.0.5005.27
Chrome के 102 वर्शन पर काम करता है
- समस्या 1309282 हल की गई: chromedriver, एक से ज़्यादा वैल्यू वाले स्विच के साथ काम नहीं करता [Pri-1]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 101.0.4951.41
Chrome के 101 वर्शन पर काम करता है
- 4046 नंबर वाली समस्या हल की गई: खाली फ़ेंस किए गए फ़्रेम को जोड़ते समय DCHECK हिट हुआ [Pri-]
- समस्या 4080 हल की गई: नेस्ट किए गए फ़्रेम पर स्विच नहीं किया जा सका [Pri-]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 101.0.4951.15
Chrome के 101 वर्शन पर काम करता है
- 4046 नंबर वाली समस्या हल की गई: खाली फ़ेंस किए गए फ़्रेम को जोड़ते समय DCHECK हिट हुआ [Pri-]
- समस्या 4080 हल की गई: नेस्ट किए गए फ़्रेम पर स्विच नहीं किया जा सका [Pri-]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 100.0.4896.60
Chrome के वर्शन 100 के साथ काम करता है
- समस्या 4002 हल की गई: फ़ेन्स्ड फ़्रेम के लिए सहायता [Pri-]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 100.0.4896.20
Chrome के वर्शन 100 के साथ काम करता है
- समस्या 4002 हल की गई: फ़ेन्स्ड फ़्रेम के लिए सहायता [Pri-]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 99.0.4844.51
Chrome के 99वें वर्शन पर काम करता है
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 99.0.4844.35
Chrome के 99वें वर्शन पर काम करता है
- REVERTED!!! समस्या 2269 हल की गई: नॉन-बीएमपी वर्णों (U+FFFF से ऊपर के कोड पॉइंट) का इस्तेमाल नहीं किया जा सकता [Pri-3]
- हल की गई समस्या chromium:1295243: ChromeDriver sendKeys में रिग्रेशन [Pri-1]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 99.0.4844.17
Chrome के 99वें वर्शन पर काम करता है
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 98.0.4758.102
Chrome के वर्शन 98 के साथ काम करता है
- समस्या 3933 ठीक की गई: गड़बड़ी के बिना व्यूपोर्ट के किनारे पर क्लिक करने से कोई असर नहीं पड़ता [Pri-]
- REVERTED!!! समस्या 2269 हल की गई: नॉन-बीएमपी वर्णों (U+FFFF से ऊपर के कोड पॉइंट) का इस्तेमाल नहीं किया जा सकता [Pri-3]
- हल की गई समस्या chromium:1295243: ChromeDriver sendKeys में रिग्रेशन [Pri-1]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 98.0.4758.80
Chrome के वर्शन 98 के साथ काम करता है
- समस्या 3933 ठीक की गई: गड़बड़ी के बिना व्यूपोर्ट के किनारे पर क्लिक करने से कोई असर नहीं पड़ता [Pri-]
- समस्या 2269 हल की गई: नॉन-बीएमपी वर्णों (U+FFFF से ऊपर के कोड पॉइंट) का इस्तेमाल नहीं किया जा सकता [Pri-3]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 98.0.4758.48
Chrome के वर्शन 98 के साथ काम करता है
- समस्या 3933 ठीक की गई: गड़बड़ी के बिना व्यूपोर्ट के किनारे पर क्लिक करने से कोई असर नहीं पड़ता [Pri-]
- समस्या 2269 हल की गई: नॉन-बीएमपी वर्णों (U+FFFF से ऊपर के कोड पॉइंट) का इस्तेमाल नहीं किया जा सकता [Pri-3]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 97.0.4692.71
Chrome के वर्शन 97 के साथ काम करता है
- समस्या 3878 हल की गई: एलिमेंट पर क्लिक करने के लिए, फ़्रैक्शनल एलिमेंट कोऑर्डिनेट को बेहतर तरीके से हैंडल किया गया [Pri-]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 97.0.4692.36
Chrome के वर्शन 97 के साथ काम करता है
- समस्या 3878 हल की गई: एलिमेंट पर क्लिक करने के लिए, फ़्रैक्शनल एलिमेंट कोऑर्डिनेट को बेहतर तरीके से हैंडल किया गया [Pri-]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 97.0.4692.20
Chrome के वर्शन 97 के साथ काम करता है
- समस्या 3878 हल की गई: एलिमेंट पर क्लिक करने के लिए, फ़्रैक्शनल एलिमेंट कोऑर्डिनेट को बेहतर तरीके से हैंडल किया गया [Pri-]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 96.0.4664.45
Chrome के 96वें वर्शन के साथ काम करता है
- समस्या 3445 हल की गई: शैडो रूट में मौजूद iframe में एलिमेंट ऐक्सेस नहीं किए जा सकते [Pri-3]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 96.0.4664.35
Chrome के 96वें वर्शन के साथ काम करता है
- समस्या 3445 हल की गई: शैडो रूट में मौजूद iframe में एलिमेंट ऐक्सेस नहीं किए जा सकते [Pri-3]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 96.0.4664.18
Chrome के 96वें वर्शन के साथ काम करता है
- समस्या 3445 हल की गई: शैडो रूट में मौजूद iframe में एलिमेंट ऐक्सेस नहीं किए जा सकते [Pri-3]
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 95.0.4638.69
Chrome के वर्शन 95 पर काम करता है
- समस्या 3857 ठीक कर दी गई है: होस्ट हेडर या ऑरिजिन हेडर तय किया गया है और इसे वाइटलिस्ट नहीं किया गया है या यह localhost नहीं है [Pri-1]
--allowed-originsआर्ग्युमेंट जोड़ा गया
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 95.0.4638.54
Chrome के वर्शन 95 पर काम करता है
- समस्या 3857 ठीक कर दी गई है: होस्ट हेडर या ऑरिजिन हेडर तय किया गया है और इसे वाइटलिस्ट नहीं किया गया है या यह localhost नहीं है [Pri-1]
--allowed-originsआर्ग्युमेंट जोड़ा गया
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 95.0.4638.17
Chrome के वर्शन 95 पर काम करता है
- समस्या 3857 ठीक कर दी गई है: होस्ट हेडर या ऑरिजिन हेडर तय किया गया है और इसे वाइटलिस्ट नहीं किया गया है या यह localhost नहीं है [Pri-1]
--allowed-originsआर्ग्युमेंट जोड़ा गया
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 95.0.4638.10
Chrome के वर्शन 95 पर काम करता है
- समस्या 3857 ठीक कर दी गई है: होस्ट हेडर या ऑरिजिन हेडर तय किया गया है और इसे वाइटलिस्ट नहीं किया गया है या यह localhost नहीं है [Pri-1]
--allowed-originsआर्ग्युमेंट जोड़ा गया
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 94.0.4606.113
Chrome के वर्शन 94 के साथ काम करता है
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 94.0.4606.61
Chrome के वर्शन 94 के साथ काम करता है
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 94.0.4606.41
Chrome के वर्शन 94 के साथ काम करता है
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 93.0.4577.63
Chrome के वर्शन 93 के साथ काम करता है
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 93.0.4577.15
Chrome के वर्शन 93 के साथ काम करता है
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 92.0.4515.107
Chrome के वर्शन 92 के साथ काम करता है
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 92.0.4515.43
Chrome के वर्शन 92 के साथ काम करता है
- समस्या 3389 हल की गई: ChromeDriver के अनुरोधों के लिए होस्ट की पुष्टि करना
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 91.0.4472.101
Chrome के 91वें वर्शन पर काम करता है
- समस्या 1205107 हल की गई: वेब ऐप्लिकेशन पर मौजूद फ़ील्ड के लिए एट्रिब्यूट वैल्यू नहीं मिल रही है.
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 91.0.4472.19
Chrome के 91वें वर्शन पर काम करता है
- समस्या 3744 हल की गई: लिंक नेविगेशन के बाद SendKeys() और Click() चुपचाप फ़ेल हो जाते हैं
- समस्या 3746 हल हो गई है: एट्रिब्यूट एंडपॉइंट, वैल्यू को गलत तरीके से अपडेट करता है
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 90.0.4430.24
Chrome के 90वें वर्शन पर काम करता है
- समस्या 3708 हल की गई: शैडो डीओएम में मौजूद एलिमेंट के लिए, GetElementLocation's inView फ़ेल हो जाता है
- समस्या 3721 हल की गई: सेवा देने वाले वर्कर के चालू होने पर, उसके लिए परफ़ॉर्मेंस लॉग इकट्ठा करना
- समस्या 3731 ठीक कर दी गई है: AdbImpl::GetPidByName, OnePlus जैसे नॉन-स्टैंडर्ड Android OS पर ठीक से काम नहीं करता
- समस्या 3733 हल की गई: लोकल होस्ट पर डोमेन के साथ गंभीर समस्या
- समस्या 3734 हल हो गई है: ड्राइवर को गलत डोमेन पर कुकी सेट करने की कोशिश करने पर गड़बड़ी का मैसेज दिखाना चाहिए
- हल की गई समस्या 3743: कॉल फ़ंक्शन को फिर से फ़ैक्टर किया गया और एलिमेंट हटाने से जुड़ी समस्या को ठीक किया गया
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 89.0.4389.23
Chrome के वर्शन 89 के साथ काम करता है
- हल की गई समस्या 3667: रेंडरर से मैसेज पाने में टाइम आउट हुआ
- हल की गई समस्या 3675: GetElementLocation, inView तरीके का इस्तेमाल करता है. यह बूलियन को ऐरे के तौर पर गलत तरीके से हैंडल करता है
- समस्या 3682 हल की गई: GetElementRegion, उन एलिमेंट के लिए गलत साइज़ दिखाता है जो व्यूपोर्ट से बाहर हैं
- समस्या 3690 हल की गई: अगर एक्सटेंशन chrome.windows API का इस्तेमाल करते हैं, तो ChromeDriver काम नहीं करता
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 88.0.4324.96
Chrome के वर्शन 88 पर काम करता है
- समस्या 3641 हल की गई: Chrome Beta v87 और chromedriver v(87/86) के साथ, ब्राउज़र विंडो फ़ोकस में न होने पर पेज लोड/रेंडर नहीं हो रहा है
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 88.0.4324.27
Chrome के वर्शन 88 पर काम करता है
- समस्या 3611 हल की गई: प्रोट्रैक्टर में
getText()का आउटपुट,<element>.innerTextसे अलग होता है - समस्या 3625 हल की गई: एलिमेंट के स्क्रीनशॉट की सुविधा को बेहतर बनाया गया
- समस्या 3628 हल हो गई है: स्टेल एलिमेंट रेफ़रंस और गलत यूआरएल की शिकायत की गई थी. इस यूआरएल के पाथ में एक और यूआरएल शामिल था
- समस्या 3631 हल हो गई है:
webauthn:extension:largeBlobसुविधा के लिए सहायता जोड़ी गई - समस्या 3635 ठीक की गई: Chromedriver 86 -
chromedriver.quit()अनलोड इवेंट को ठीक से पास नहीं करता - समस्या 3649 हल की गई: हेडलेस मोड का इस्तेमाल करते समय, Windows 10 पर चुने गए टेक्स्ट को क्लिपबोर्ड पर कॉपी करने की सुविधा काम नहीं करती
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 87.0.4280.88
Chrome के वर्शन 87 पर काम करता है
- समस्या 3641 हल की गई: Chrome Beta v87 और chromedriver v(87/86) के साथ, ब्राउज़र विंडो फ़ोकस में न होने पर पेज लोड/रेंडर नहीं हो रहा है
- समस्या 3657 हल की गई: स्क्रीनशॉट बैकग्राउंड ब्राउज़र का समय खत्म हो गया
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 87.0.4280.20
Chrome के वर्शन 87 पर काम करता है
- समस्या 2421 ठीक की गई: android adb-server पर पोर्ट-फ़ॉरवर्ड करने वाले पुराने चैनल मिटाएं
- समस्या 3474 हल की गई: मोबाइल डिवाइस की सूची को अपडेट करने की ज़रूरत है
- समस्या 3507 हल की गई: "get computed role" को लागू करें
- समस्या 3508 हल की गई: "get computed label" लागू करें
- समस्या 3584 हल हो गई है: ChromeDriver कमांड लाइन विकल्प --whitelisted-ips का नाम बदलें
- हल की गई समस्या 3588: बिडी WebSocket कनेक्शन
- समस्या 3594 हल हो गई है: अगर मुख्य पेज से पहले OOPIF लोड हो जाता है, तो नेविगेशन समय से पहले पूरा हो जाता है
- समस्या 3598 हल की गई: devtools पोर्ट को webview_devtools_remote सॉकेट पर फ़ॉरवर्ड करने के लिए, कमांड लाइन का विकल्प
- समस्या 3608 हल की गई: Chromedriver debuggerAddress, ipv6 के साथ काम नहीं करता
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 86.0.4240.22
Chrome के वर्शन 86 के साथ काम करता है
- समस्या 3370 ठीक की गई: Chrome को बंद करने पर कुकी को SQLite परसिस्टेंस फ़ाइल में सही तरीके से सेव नहीं किया जाएगा
- समस्या 3401 हल की गई: Get Element Location JS, एलिमेंट के दिखने वाले सेंटर का पता नहीं लगाता है
- हल की गई समस्या 3462: sendKeys के लिए, CMD कुंजी MAC पर काम नहीं करती
- समस्या 3541 ठीक की गई: क्लाइंट और ChromeDriver के बीच लॉग को बेहतर बनाएं
- समस्या 3559 ठीक की गई: ChromeDriver के साथ काम न करने वाला Chrome वर्शन आउटपुट करना
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 85.0.4183.87
Chrome के 85वें वर्शन पर काम करता है
- समस्या 3578 हल हो गई है: Chrome 85 में, सूचना वाला डायलॉग बॉक्स खुला होने पर विंडो के साथ आसानी से इंटरैक्ट नहीं किया जा सकता
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 85.0.4183.83
Chrome के 85वें वर्शन पर काम करता है
- हल की गई समस्या 3577: ChromeDriver 85, बदली गई Chrome डायरेक्ट्री (C:\Program Files) का पता नहीं लगाता
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 85.0.4183.38
Chrome के 85वें वर्शन पर काम करता है
- समस्या 3214 हल की गई: ChromeDriver78: Sendkeys, contenteditable के साथ टेक्स्ट चुनने की सुविधा को रीसेट करता है
- समस्या 3376 ठीक की गई: ChromeDriver से LaunchApp कमांड हटाएं
- समस्या 3432 हल हो गई है: कभी-कभी
NavigationTrackerयह पता नहीं लगा पाता कि पेज लोड हो गया है - समस्या 3481 हल की गई: w3c स्पेसिफ़िकेशन के मुताबिक नया प्रिंट एंडपॉइंट
- समस्या 3488 हल की गई: प्रॉक्सी को गलत तरीके से कॉन्फ़िगर किए जाने पर, driver.get से गड़बड़ी नहीं होती
- हल की गई समस्या 3502: यह देखने के लिए कि एलिमेंट फ़ोकस किया गया है या नहीं,
document.hasFocus()का इस्तेमाल करें - समस्या 3515 हल हो गई है: selenium.common.exceptions.WebDriverException: Message: unknown error: bad inspector message
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 84.0.4147.30
Chrome के वर्शन 84 पर काम करता है
- समस्या 3420 हल की गई: प्रिंट विंडो पर स्विच करने के बाद, chromedriver काम नहीं करता
- समस्या 3421 हल हो गई है: ड्राइवर, स्टाइल के बिना सिरिलिक टेक्स्ट दिखाता है
- समस्या 3422 हल की गई: GetElementText, प्रोटोटाइप 1.6.0.3 के साथ काम नहीं करता
- समस्या 3434 हल की गई: 'browser' लॉग से 'assert' मैसेज नहीं मिल रहे हैं
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 83.0.4103.39
Chrome के वर्शन 83 पर काम करता है
- Chromedriver को अपडेट किया गया है, ताकि यह prototype.js के साथ ठीक से काम कर सके.
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 83.0.4103.14
Chrome के वर्शन 83 पर काम करता है
- हल की गई समस्या 1778: ChromeDriver से launchApp को बंद करना
- समस्या 2520 ठीक की गई: Chrome के काम न करने पर, InitSession हमेशा के लिए इंतज़ार कर सकता है
- हल की गई समस्या 3120: नए टैब से हेडलेस मोड डाउनलोड करने की सुविधा
- समस्या 3234 हल हो गई है: सबस्ट्रिंग से पहले सेमीकोलन मिलने की पुष्टि करें
- समस्या 3240 हल हो गई है: ExecuteGetElementRect, GET_SIZE से मिले स्टेटस की जांच नहीं करता
- समस्या 3331 ठीक कर दी गई है:
get_cookies()तरीके से, डबल टाइप की 'expiry' कुंजियां वापस मिल रही हैं. हालांकि, w3c मोड में यह int64 होनी चाहिए - हल की गई समस्या 3332: फिर से कोशिश करने के लिए इंतज़ार करने का समय खत्म होने की जानकारी को गंभीर समस्या के तौर पर लॉग किया गया
- समस्या 3339 हल की गई: Chromedriver, कोड null और सिग्नल SIGTRAP के साथ अचानक बंद हो गया
- समस्या 3351 हल की गई: सुरक्षा से जुड़ी बातों के बारे में बताने वाले मैसेज को बेहतर बनाया गया
- समस्या 3352 हल की गई: रंग वाले एलिमेंट के लिए SendKeys का इस्तेमाल करने की सुविधा
- समस्या 3353 हल हो गई है: फ़्रेम का कॉन्टेक्स्ट मिटने के बाद भी, नेविगेशन के लिए इंतज़ार करने की सुविधा चालू रहती है
- समस्या 3375 हल की गई: Chromedriver v80, कुछ साइटों पर getPageSource पर रुक जाता है
- समस्या 3383 ठीक की गई: Windows पर ChromeDriver 80+ कुछ एलिमेंट या क्लिक कमांड पर बंद हो जाता है या रुक जाता है
- समस्या 3399 हल की गई: wasThrown चेक हटाएं
ChromeDriver 81.0.4044.138
Chrome के 81वें वर्शन पर काम करता है
- Chromedriver को अपडेट किया गया है, ताकि यह prototype.js के साथ ठीक से काम कर सके.
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 81.0.4044.69
Chrome के 81वें वर्शन पर काम करता है
- ठीक किया गया: कुछ साइटों पर getPageSource का इस्तेमाल करने पर Chromedriver क्रैश हो जाता है.
- ठीक की गई समस्या: ChromeDriver, कुछ एलिमेंट या क्लिक कमांड पर क्रैश हो जाता है.
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 81.0.4044.20
Chrome के 81वें वर्शन पर काम करता है
- एचटीएमएल एलिमेंट की जगह की जानकारी पाने की कोशिश करते समय हुई गड़बड़ी को ठीक किया गया.
- Get और Add Cookie कमांड अब फ़्रेम के हिसाब से काम करती हैं.
- उन साइटों से जुड़ी कुछ समस्याएं ठीक की गई हैं जो स्टैंडर्ड JavaScript ऑब्जेक्ट को फिर से परिभाषित करती हैं.
- Target Closed मैसेज मिलने के बाद भी, ChromeDriver लोड होने का इंतज़ार करता रहेगा.
- Chromedriver अब टाइमआउट के लिए, स्पेसिफ़िकेशन के मुताबिक गड़बड़ी का कोड दिखाता है
- ठीक किया गया: NewSession कमांड पर ChromeDriver का रिस्पॉन्स मिलने में ज़्यादा समय लगता था.
- अब 10 मिनट से ज़्यादा के टाइमआउट को सेट किया जा सकता है.
- ठीक किया गया: IPv4 और IPv6 के मेल न खाने की वजह से, ChromeDriver DevTools से कनेक्ट नहीं हो पा रहा था.
- Linux पर Chrome बाइनरी के लिए खोज क्रम को वापस लाया गया.
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 80.0.3987.106
Chrome के वर्शन 80 के साथ काम करता है
- Linux पर Chrome बाइनरी के लिए खोज के क्रम को वापस लाया गया
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 80.0.3987.16
Chrome के वर्शन 80 के साथ काम करता है
- प्रॉक्सी का इस्तेमाल करते समय, फ़िक्स्ड लोड पेज को बंद कर दिया गया था.
- Chromedriver अब Current फ़्रेम के लोड होने का इंतज़ार करता है.
- ChromeDriver के लॉग में, ड्राइवर की ओर से इस्तेमाल किया गया पोर्ट शामिल होगा.
- w3c मोड के लिए, SetGeoLocation चालू किया गया.
- UnexpectedAlertOpen स्टेटस के लिए, सूचना का टेक्स्ट जोड़ा गया.
- CRX2 एक्सटेंशन लोड होने पर दिखने वाले मैसेज को बेहतर बनाया गया.
- ExecuteGetPageSource में रेस कंडीशन की समस्या को ठीक किया गया है.
- acceptInsecureCerts की वैल्यू true होने पर, ChromeDriver --ignore-certificate-errors फ़्लैग जोड़ देगा
- इस तरह के एक्ज़ीक्यूशन कॉन्टेक्स्ट के लिए, गड़बड़ी के मैसेज और सामान लौटाने की स्थिति को अपडेट किया गया
- ठीक किया गया: ChromeDriver, नेविगेशन के लंबित रहने के दौरान अनिश्चित काल के लिए ब्लॉक हो सकता है.
- AddCookie और GetCookie में SameSite एट्रिब्यूट जोड़ा गया.
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 79.0.3945.36
Chrome के वर्शन 79 के साथ काम करता है
इसमें वर्शन 79.0.3945.16 के मुकाबले यह बदलाव शामिल है:
- एलिमेंट के कोऑर्डिनेट की गलत कैलकुलेशन को ठीक किया गया
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 79.0.3945.16
Chrome के वर्शन 79 के साथ काम करता है
- कमांड लागू करने के दौरान JavaScript की सूचना मिलने की वजह से, ChromeDriver के क्रैश होने की समस्या ठीक की गई
- स्क्रीनशॉट लेते समय सूचना मिलने पर, Chromedriver के लॉक होने की गड़बड़ी को ठीक किया गया है
- Chrome लॉन्च करने की कमांड से --ignore-certificate-errors को हटाया गया
- Win10 पर प्लैटफ़ॉर्म और platformName को बदलकर windows कर दिया गया है
- "enable-automation" को शामिल न करने पर, window.navigator.webdriver की तय नहीं की गई वैल्यू को ठीक किया गया
- WPT के "test_not_editable_inputs[hidden]" टेस्ट से जुड़ी समस्या ठीक की गई
- हेडलेस मोड का इस्तेमाल करते समय, "Element is not clickable" समस्या को ठीक किया गया
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 78.0.3904.105
Chrome के वर्शन 78 के साथ काम करता है
इसमें वर्शन 78.0.3904.70 में हुए ये बदलाव शामिल हैं: * एलिमेंट के कोऑर्डिनेट की गलत कैलकुलेशन को ठीक किया गया
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 78.0.3904.70
Chrome के वर्शन 78 के साथ काम करता है
इसमें वर्शन 78.0.3904.11 के मुकाबले यह बदलाव शामिल है:
- कई समस्याओं की शिकायत मिलने के बाद, रेटिना डिसप्ले पर स्क्रीनशॉट का साइज़ अडजस्ट करने के लिए किए गए बदलाव को पहले जैसा कर दिया गया है
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 78.0.3904.11
Chrome के वर्शन 78 के साथ काम करता है
- JavaScript ऑब्जेक्ट के क्रमबद्ध होने से जुड़ी कई समस्याएं ठीक की गईं
- Android पर Chrome के लिए, क्षमता मैचिंग से जुड़ी गड़बड़ी को ठीक किया गया
- अनुमतियों के ऑटोमेशन को लागू किया गया
- रेटिना डिसप्ले पर स्क्रीनशॉट का साइज़ तय किया गया
- कुछ मामलों में, पेज लोड होने के टाइम आउट की समस्या ठीक की गई
- platformName के लिए, मैचिंग की बेहतर सुविधा
- ड्रॉप-डाउन सूची के विकल्पों पर पॉइंटर ले जाते समय दिखने वाले गड़बड़ी के कोड को ठीक किया गया
- हेडलेस मोड में डाउनलोड करने से जुड़ी समस्या को ठीक किया गया है
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 77.0.3865.40
Chrome के वर्शन 77 के साथ काम करता है
इसमें वर्शन 77.0.3865.10 के मुकाबले ये बदलाव शामिल हैं:
- JavaScript ऑब्जेक्ट को क्रम से लगाने और क्रम से हटाने से जुड़ी दो गड़बड़ियां ठीक की गईं
- मिलती-जुलती सुविधाओं का मिलान करते समय, platformName: android को हैंडल करने की सुविधा ठीक की गई
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 77.0.3865.10
Chrome के वर्शन 77 के साथ काम करता है
- Actions API को लागू करने से जुड़ी कई समस्याएं ठीक की गईं
- JavaScript कोड को बेहतर तरीके से चलाने और नतीजों को मैनेज करने की सुविधा
- हमने एक ऐसी गड़बड़ी को ठीक किया है जिसकी वजह से, ओएसएस मोड में खाली बॉडी वाले POST अनुरोधों को गलत तरीके से अस्वीकार कर दिया जाता था
- ज़्यादा बेहतर नेविगेशन ट्रैकर
- ईगर पेज लोड होने की रणनीति के साथ काम करता है
- W3C WebDriver स्पेसिफ़िकेशन से New Window कमांड जोड़ी गई
- हेडलेस मोड में फ़ाइल डाउनलोड सेव करने की सुविधा
- CRX3 एक्सटेंशन लोड करने की सुविधा जोड़ी गई
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 76.0.3809.126
Chrome के 76वें वर्शन के साथ काम करता है
इसमें वर्शन 76.0.3809.68 के मुकाबले ये बदलाव शामिल हैं:
- JavaScript ऑब्जेक्ट को क्रम से लगाने और क्रम से हटाने से जुड़ी दो गड़बड़ियां ठीक की गईं
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 76.0.3809.68
Chrome के 76वें वर्शन के साथ काम करता है
इसमें वर्शन 76.0.3809.25 के मुकाबले ये बदलाव शामिल हैं:
- JavaScript ऑब्जेक्ट में सर्कुलर रेफ़रंस का पता लगाने से जुड़ी गड़बड़ी को ठीक किया गया
- उस गड़बड़ी को ठीक किया गया है जिसकी वजह से, कुछ खास तरह की JavaScript गड़बड़ियां होने पर ChromeDriver क्रैश हो जाता था
- उस गड़बड़ी को ठीक किया गया है जिसकी वजह से, Actions API, शैडो डीओएम में मौजूद एलिमेंट के साथ इंटरैक्ट नहीं कर पा रहा था
- कार्रवाइयों के एपीआई कमांड के बीच, मॉडिफ़ायर बटन की स्थिति को ट्रैक करने से जुड़ी गड़बड़ी को ठीक किया गया है
- कार्रवाइयों के एपीआई कमांड के बीच पॉइंटर की जगहें ट्रैक करने से जुड़ी गड़बड़ी को ठीक किया गया
- जब "Cannot call non W3C standard command while in W3C mode" गड़बड़ी होती है, तब उसे लॉग फ़ाइल में सेव करें
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 76.0.3809.25
Chrome के 76वें वर्शन के साथ काम करता है
इसमें वर्शन 76.0.3809.12 के मुकाबले ये बदलाव शामिल हैं:
- हमने एक ऐसी गड़बड़ी को ठीक किया है जिसकी वजह से, ओएसएस मोड में खाली बॉडी वाले POST अनुरोधों को गलत तरीके से अस्वीकार कर दिया जाता था
- Chrome के लॉग पाने के लिए नए एंडपॉइंट जोड़े गए
- W3C मोड में, 'Is Displayed' कमांड के लिए एंडपॉइंट जोड़ा गया
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 76.0.3809.12
Chrome के 76वें वर्शन के साथ काम करता है
- Actions API को लागू कर लिया गया है
- स्क्रिप्ट के टाइम आउट को हैंडल करने के लिए, स्पेसिफ़िकेशन के पालन को बेहतर बनाया गया है
- Execute Script कमांड से मिले नतीजों को बेहतर तरीके से क्रम में लगाया गया
- स्क्रोलिंग एलिमेंट को व्यू में लाने से जुड़ी समस्याएं ठीक की गईं
- WebDriver स्पेसिफ़िकेशन में तय की गई Cancel कुंजी को हैंडल करने की सुविधा जोड़ी गई
- सूचना से जुड़ी गड़बड़ी के ऐसे जवाब को प्रोसेस करने की सुविधा ठीक की गई है जिसे हैंडल नहीं किया गया है
<details>एलिमेंट की प्रोसेसिंग से जुड़ी समस्या ठीक की गई- excludeSwitches विकल्प को अपडेट किया गया है, ताकि स्विच के नामों में डैश का इस्तेमाल किया जा सके
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 75.0.3770.140
Chrome के 75वें वर्शन के साथ काम करता है
इसमें वर्शन 75.0.3770.90 के मुकाबले ये बदलाव शामिल हैं:
- उस गड़बड़ी को ठीक किया गया है जिसकी वजह से, कुछ तरह की JavaScript गड़बड़ी होने पर ChromeDriver क्रैश हो जाता था
- कार्रवाइयों के बीच मॉडिफ़ायर बटन की स्थिति को बनाए रखने से जुड़ी गड़बड़ी को ठीक किया गया
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 75.0.3770.90
Chrome के 75वें वर्शन के साथ काम करता है
इसमें वर्शन 75.0.3770.8 के मुकाबले ये बदलाव शामिल हैं:
- हमने एक ऐसी गड़बड़ी को ठीक किया है जिसकी वजह से, ओएसएस मोड में खाली बॉडी वाले POST अनुरोधों को गलत तरीके से अस्वीकार कर दिया जाता था
- Chrome लॉग को वापस पाने के लिए, नए एंडपॉइंट जोड़े गए
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 75.0.3770.8
Chrome के 75वें वर्शन के साथ काम करता है
सबसे अहम बदलाव यह है कि ChromeDriver अब डिफ़ॉल्ट रूप से W3C स्टैंडर्ड के मुताबिक मोड में काम करता है. अन्य बदलावों में ये शामिल हैं:
- उस गड़बड़ी को ठीक किया गया है जिसकी वजह से एलिमेंट को मिटाने के दौरान, ब्लर इवेंट दो बार ट्रिगर होता था
- W3C स्टैंडर्ड के मुताबिक, capability loggingPrefs का नाम बदलकर goog:loggingPrefs कर दिया गया है
- W3C मोड में गड़बड़ी ठीक करने की सुविधा को ठीक किया गया है
- डोमेन नेम में डॉट के बिना कुकी बनाने की सुविधा को ठीक से हैंडल किया गया
- यह स्क्रिप्ट के टाइम आउट के लिए, शून्य की अनुमति देता है
- 'multiple' एट्रिब्यूट के साथ फ़ाइल इनपुट के लिए, Element Send Keys कमांड से जुड़ी समस्या ठीक की गई
- Get Active Element कमांड को ठीक किया गया है. अब कोई भी ऐक्टिव एलिमेंट मौजूद न होने पर, यह "no such element" गड़बड़ी दिखाती है
- गलत तरीके से बनाए गए यूआरएल पर नेविगेट करने की समस्या ठीक की गई, ताकि "अमान्य आर्ग्युमेंट" गड़बड़ी का मैसेज दिखे
- अमान्य सेशन आईडी मिलने पर, एचटीटीपी स्टेटस कोड से जुड़ी समस्या ठीक की गई
- इनपुट पैरामीटर मौजूद न होने या गलत होने पर, गड़बड़ी के जवाब को ठीक किया गया
- लाइन के हिसाब से JavaScript की टिप्पणी को हैंडल करने के लिए, Execute Script कमांड को ठीक किया गया
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 74.0.3729.6
Chrome के 74वें वर्शन के साथ काम करता है
- Windows पर debug.log फ़ाइल जनरेट करने वाली गड़बड़ी को ठीक किया गया है
- SVG दस्तावेज़ में माउस से क्लिक करने और खींचकर छोड़ने की सुविधा से जुड़ी समस्या ठीक की गई
- ChromeDriver से मिलने वाले जवाबों में, cache-control हेडर जोड़ा गया
- जब क्लिक को किसी दूसरे एलिमेंट से इंटरसेप्ट किया जाता है, तब गड़बड़ी के टाइप को ठीक किया गया
- उस बग को ठीक किया गया है जिसकी वजह से, /dev/shm के बिना Linux डिवाइसों पर ChromeDriver काम नहीं करता था
- डबल क्लिक वाले कुछ इवेंट ठीक किए गए
- 'सेशन पाएं' कमांड से जुड़ी समस्या ठीक की गई
- Switch To Frame कमांड में गड़बड़ी की जांच करने की सुविधा ठीक की गई
- पेज का सोर्स कोड पाने की कमांड से जुड़ी समस्या ठीक की गई
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 73.0.3683.68
Chrome के 73वें वर्शन के साथ काम करता है
- Windows पर debug.log फ़ाइल जनरेट करने वाली गड़बड़ी को ठीक किया गया है
- कुछ मामलों में, Execute Script कमांड से मिले गड़बड़ी कोड को ठीक किया गया
- ChromeDriver से मिलने वाले जवाबों में, cache-control हेडर जोड़ा गया
- एचटीटीपी सर्वर को डिफ़ॉल्ट रूप से कनेक्शन चालू रखने की सुविधा दी गई
- उपयोगकर्ता के अनुरोधों को सही तरीके से हैंडल करने के लिए, Close Window कमांड को ठीक किया गया
- बंद किए गए एलिमेंट को कुंजियां भेजते समय, गड़बड़ी कोड वापस मिलने की समस्या ठीक की गई
- टाइम आउट की वैल्यू को हैंडल करने के लिए, स्पेसिफ़िकेशन के पालन से जुड़ी बेहतर सुविधा
- Add Cookie कमांड के स्पेसिफ़िकेशन में सुधार किया गया है
- एचटीटीपी सर्वर की लिसनिंग क्यू की लंबाई बढ़ गई है
- शैडो डीओएम v0 में, Is Element Displayed कमांड से जुड़ी समस्या ठीक की गई
- लॉग फ़ाइल में, Element Clear कमांड के काम करने के तरीके में हुए बदलाव के बारे में चेतावनी जोड़ी गई
- Execute Script कमांड में सुधार किया गया है, ताकि document.all को JSON फ़ॉर्मैट में सही तरीके से बदला जा सके
- खराब एलिमेंट रेफ़रंस को बेहतर तरीके से मैनेज करने की सुविधा
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 2.46
Chrome के 71 से 73 तक के वर्शन पर काम करता है
- कुछ मामलों में, Execute Script कमांड से मिले गड़बड़ी कोड को ठीक किया गया
- एचटीटीपी सर्वर को डिफ़ॉल्ट रूप से कनेक्शन चालू रखने की सुविधा दी गई
- उपयोगकर्ता के अनुरोधों को सही तरीके से हैंडल करने के लिए, Close Window कमांड को ठीक किया गया
- बंद किए गए एलिमेंट को कुंजियां भेजते समय, गड़बड़ी कोड वापस मिलने की समस्या ठीक की गई
- टाइम आउट की वैल्यू को हैंडल करने के लिए, स्पेसिफ़िकेशन के पालन को बेहतर बनाया गया है
- Add Cookie कमांड के लिए, स्पेसिफ़िकेशन के बेहतर तरीके से पालन करने की सुविधा
- 'फ़्रेम पर स्विच करें' कमांड के स्पेसिफ़िकेशन का बेहतर तरीके से पालन करना
- एचटीटीपी सर्वर की लिसनिंग क्यू की लंबाई बढ़ गई है
- v0 शैडो डीओएम में, Is Element Displayed कमांड से जुड़ी समस्या ठीक की गई
- तय किए गए एलिमेंट पर दो बार क्लिक करने की कमांड
- लॉग फ़ाइल में, Element Clear कमांड के काम करने के तरीके में हुए बदलाव के बारे में चेतावनी जोड़ी गई
- Execute Script कमांड में सुधार किया गया है, ताकि document.all को JSON फ़ॉर्मैट में सही तरीके से बदला जा सके
- खराब एलिमेंट रेफ़रंस को बेहतर तरीके से मैनेज करने की सुविधा
ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें.
ChromeDriver 2.45
Chrome के वर्शन 70 से 72 के साथ काम करता है
- 'नया सेशन' की तय की गई शर्तों का पालन न करने से जुड़ी समस्या ठीक की गई
- ठीक किया गया: अगर Chrome और ChromeDriver के वर्शन एक-दूसरे के साथ काम नहीं करते हैं, तो ChromeDriver को Chrome लॉन्च नहीं करना चाहिए
- अमान्य लोकेटर का इस्तेमाल करने पर, 'तत्व ढूंढें' कमांड से गड़बड़ी का गलत कोड मिलता है
- 'कुछ ChromeDriver स्टेटस कोड गलत हैं' समस्या को ठीक किया गया
- WebViewImpl::DispatchTouchEventsForMouseEvents में JS के कंपाइल होने से जुड़ी गड़बड़ी को ठीक किया गया
- विंडो के साइज़ को तय करने वाले निर्देशों को उपयोगकर्ता के प्रॉम्प्ट को हैंडल करना चाहिए
- ChromeDriver, Chrome के विकल्प "user-data-dir=" के साथ Chrome को सही तरीके से शुरू नहीं करता है. इस समस्या को ठीक कर दिया गया है
- 'ठीक हो गया' स्टेटस वाली कमांड, खास जानकारी के मुताबिक नहीं है
- strictFileInteractability के लिए सहायता जोड़ने की समस्या ठीक की गई
ChromeDriver 2.44
Chrome के वर्शन 69 से 71 तक काम करता है
- Mac पर WindowMaximize की समस्या ठीक की गई
- विंडो हैंडल कॉल के लिए, 'अलर्ट ओपन करने में गड़बड़ी' की समस्या ठीक की गई
- W3C मोड में, फ़िक्स्ड एलिमेंट के Send Keys को "text" प्रॉपर्टी मिलनी चाहिए
- Is Element Enabled के खास मामले में, एक्सएमएल को स्पेसिफ़िकेशन के मुताबिक ठीक नहीं किया गया है
- Get Element CSS Value के खास मामले में, एक्सएमएल को स्पेसिफ़िकेशन के मुताबिक हैंडल नहीं किया जाता
- Fixed Set Window Rect को अमान्य इनपुट की जांच करनी चाहिए
- unhandledPromptBehavior के नए मोड के लिए सहायता से जुड़ी समस्या ठीक की गई
ChromeDriver 2.43
Chrome के वर्शन 69 से 71 तक काम करता है
बदलावों में ये शामिल हैं:
- प्रॉक्सी कॉन्फ़िगरेशन को पार्स करने की सुविधा, स्टैंडर्ड के मुताबिक नहीं है
- 'ऐप्लिकेशन लॉन्च करें' कमांड कभी-कभी काम नहीं करती
- तय की गई समस्या: iFrame में मौजूद एलिमेंट का स्क्रीनशॉट गलत तरीके से लिया गया है
- ChromeDriver में यह सुविधा जोड़ी गई है कि रिमोट कनेक्शन पर विंडो का साइज़ बदला जा सकता है
- Clear एलिमेंट में गड़बड़ी के कोड हैंडल नहीं किए जाते हैं
- ठीक किया गया: एलिमेंट दिखने तक इंतज़ार न करना
- Get element property को लागू नहीं किया गया है
- फ़्रेम पर स्विच करने की सुविधा, तय की गई शर्तों के मुताबिक नहीं है
- Execute Async Script फ़ंक्शन में गड़बड़ी के ऐसे कोड नहीं दिखते जो स्पेसिफ़िकेशन के मुताबिक हों
- Execute Script फ़ंक्शन से, स्पेसिफ़िकेशन के मुताबिक गड़बड़ी के कोड नहीं मिलते हैं
- ExecuteGet में गड़बड़ी का कोड ठीक किया गया है. यह कोड, स्पेसिफ़िकेशन के मुताबिक नहीं था
- 'सूचना भेजने के लिए टेक्स्ट' सुविधा से जुड़ी गड़बड़ियों के लिए, तय की गई शर्तों के मुताबिक कोड नहीं मिल रहे थे. इस समस्या को ठीक कर दिया गया है
- इनपुट टाइप="date" पर clear() को ठीक किया गया है. इससे यह पता चलता है कि एलिमेंट में उपयोगकर्ता बदलाव नहीं कर सकता
- Chromedriver को ठीक किया गया है. अब यह उस टैब के लिए विंडो हैंडल करता है जिसे मैन्युअल तरीके से खोला गया है
- ठीक किया गया: chromedriver के लिए, नई लॉग फ़ाइल शुरू करने या मौजूदा लॉग फ़ाइल में डेटा जोड़ने की अनुमति दें
- ठीक किया गया: अगर फ़्लैग firstMatch में है, तो New Session w3c मोड को चालू नहीं करता
ChromeDriver 2.42
Chrome के 68 से 70 वर्शन पर काम करता है
बदलावों में ये शामिल हैं:
- मोबाइल एम्युलेशन में ClickEelement को ठीक किया गया
- IPv4 के साथ श्वेतसूची में शामिल किए गए आईपी पते ठीक किए गए
- Mac OS पर, ChromeDriver को whitelisted-ips फ़्लैग के साथ शुरू करने की समस्या ठीक की गई
- SetTimeout को ठीक किया गया है, ताकि यह प्री-W3C और W3C, दोनों फ़ॉर्मैट को स्वीकार कर सके
- स्क्रीनशॉट लेने वाले एलिमेंट की जगह तय की गई
- ChromeDriver, सिस्टम पाथ में Chrome बाइनरी भी ढूंढ रहा है
- विंडो को बड़ा करने और फ़ुल स्क्रीन की समस्या ठीक की गई
- लॉग-रिप्ले की सुविधा लागू की गई. ( फ़िलहाल, यह सुविधा Android और रिमोट ब्राउज़र के लिए काम नहीं करती )
- कुछ गड़बड़ी कोड, W3C स्टैंडर्ड के मुताबिक नहीं थे. इस समस्या को ठीक किया गया है
- console.log में कई आर्ग्युमेंट को सही तरीके से हैंडल न करने की समस्या ठीक की गई
- GetElementRect में डबल वैल्यू इस्तेमाल करने की अनुमति होनी चाहिए
- टच एम्युलेशन की सुविधा
ChromeDriver 2.41
Chrome के 67 से 69 तक के वर्शन पर काम करता है
बदलावों में ये शामिल हैं:
- ChromeDriver को "whitelisted-ips" विकल्प के साथ चलाने पर आने वाली समस्या ठीक की गई
- क्षमताएं में रिमोट डीबगिंग पोर्ट की जानकारी दिखती है
- Android पर विंडो का साइज़ पाने की सुविधा लागू की गई
- डेस्कटॉप पर Chrome लॉन्च करने से जुड़ी गड़बड़ियों के मैसेज को बेहतर बनाया गया है
- Chrome बाइनरी शुरू न होने पर, ChromeDriver तुरंत काम करना बंद कर देता है
- Close Window फ़ंक्शन के लिए तय की गई वैल्यू, स्पेसिफ़िकेशन के मुताबिक है