Google นำเสนอ การเปิดตัวเว็บเบราว์เซอร์ 80 Chrome... พร้อมกัน ใช้ได้ การเปิดตัวโครงการฟรีที่เสถียร โครเมียมซึ่งเป็นพื้นฐานของ Chrome เบราว์เซอร์ Chrome ต่าง การใช้โลโก้ Google, การมีระบบสำหรับส่งการแจ้งเตือนในกรณีที่เกิดการขัดข้อง, ความสามารถในการโหลดโมดูล Flash ตามความต้องการ, โมดูลสำหรับเล่นเนื้อหาวิดีโอที่มีการป้องกัน (DRM), ระบบอัปเดตอัตโนมัติ และการส่งในการค้นหา พารามิเตอร์ RLZ. Chrome 81 รุ่นถัดไปมีกำหนดการในวันที่ 17 มีนาคม

หลัก การเปลี่ยนแปลง в Chrome 80:

  • สำหรับผู้ใช้ส่วนน้อย จะมีการนำเสนอฟังก์ชันการจัดกลุ่มแท็บ ซึ่งช่วยให้คุณสามารถรวมหลายแท็บที่มีจุดประสงค์คล้ายกันเป็นกลุ่มที่แยกออกจากกันด้วยสายตา แต่ละกลุ่มสามารถกำหนดสีและชื่อของตนเองได้ ผู้ใช้ที่ไม่รวมอยู่ในการเปิดใช้งานระลอกแรกสามารถเปิดใช้งานการสนับสนุนการจัดกลุ่มผ่านตัวเลือก “chrome://flags/#tab-groups”

    Chrome รุ่น 80

  • เพิ่มการสนับสนุนสำหรับคุณลักษณะนี้ เลื่อนเป็นข้อความซึ่งช่วยให้คุณสามารถสร้างลิงก์ไปยังคำหรือวลีแต่ละคำโดยไม่ต้องระบุป้ายกำกับในเอกสารอย่างชัดเจนโดยใช้แท็ก "ชื่อ" หรือคุณสมบัติ "id" ไวยากรณ์ของลิงก์ดังกล่าวได้รับการวางแผนให้ได้รับการอนุมัติเป็นมาตรฐานเว็บ ซึ่งยังอยู่ในขั้นตอน ร่าง. มาสก์การเปลี่ยน (โดยพื้นฐานแล้วคือการค้นหาแบบเลื่อน) ถูกแยกออกจากจุดยึดปกติด้วยแอตทริบิวต์ “:~:” ตัวอย่างเช่น เมื่อคุณเปิดลิงก์ “https://opennet.ru/52312/#:~:text=Chrome” หน้าเว็บจะย้ายไปยังตำแหน่งที่มีการกล่าวถึงคำว่า “Chrome” เป็นครั้งแรก และคำนี้จะถูกเน้น .
  • สมัครแล้ว ข้อจำกัดที่เข้มงวดยิ่งขึ้นในการถ่ายโอนคุกกี้ระหว่างไซต์ สำหรับคำขอที่ไม่ใช่ HTTPS ห้ามการประมวลผลคุกกี้ของบุคคลที่สามที่ตั้งค่าไว้เมื่อเข้าถึงไซต์อื่นนอกเหนือจากโดเมนของหน้าปัจจุบัน คุกกี้ดังกล่าวใช้เพื่อติดตามความเคลื่อนไหวของผู้ใช้ระหว่างไซต์ในโค้ดของเครือข่ายโฆษณา วิดเจ็ตเครือข่ายโซเชียล และระบบวิเคราะห์เว็บ โปรดทราบว่าเพื่อควบคุมการส่งคุกกี้ มีการใช้แอตทริบิวต์ SameSite ที่ระบุในส่วนหัว Set-Cookie ซึ่งตามค่าเริ่มต้นแล้วตอนนี้จะถูกตั้งค่าเป็น "SameSite=Lax" ซึ่งจะจำกัดการส่งคุกกี้สำหรับคำขอย่อยข้ามไซต์ เช่น การร้องขอรูปภาพหรือการโหลดเนื้อหาผ่าน iframe จากไซต์อื่น ไซต์สามารถแทนที่การทำงานเริ่มต้นของ SameSite ได้ด้วยการตั้งค่าคุกกี้เป็น SameSite=None อย่างชัดเจน อย่างไรก็ตาม ค่า SameSite=None สำหรับคุกกี้สามารถตั้งค่าได้ในโหมดปลอดภัยเท่านั้น (ใช้ได้กับการเชื่อมต่อผ่าน HTTPS) การเปลี่ยนแปลงจะเริ่มเป็นขั้นตอน นำมาใช้ 17 กุมภาพันธ์ เริ่มแรกสำหรับผู้ใช้ส่วนน้อย จากนั้นจึงค่อยๆ ขยายความครอบคลุม
  • เพิ่ม การป้องกันจากการแจ้งเตือนที่น่ารำคาญที่เกี่ยวข้องกับการยืนยันข้อมูลประจำตัว เนื่องจากกิจกรรม เช่น คำขอแจ้งเตือนแบบพุชที่เป็นสแปมรบกวนประสบการณ์ของผู้ใช้และเบี่ยงเบนความสนใจจากกล่องโต้ตอบการยืนยัน ใน Chrome 80 แทนที่จะแสดงกล่องโต้ตอบแยกต่างหาก คำแนะนำเครื่องมือที่ให้ข้อมูลสามารถแสดงในแถบที่อยู่เพื่อเตือนว่าคำขอสิทธิ์ถูกบล็อก ซึ่งจากนั้น มันพังทลายลงเป็นตัวบ่งชี้ที่มีรูประฆังขีดฆ่า เมื่อคลิกที่ตัวบ่งชี้ คุณสามารถเปิดใช้งานหรือปฏิเสธการอนุญาตที่ร้องขอในเวลาใดก็ได้ที่สะดวก โหมดใหม่จะถูกเปิดใช้งานโดยอัตโนมัติสำหรับผู้ใช้ที่มักจะบล็อกคำขอดังกล่าวก่อนหน้านี้ เช่นเดียวกับไซต์ที่บันทึกคำขอที่ถูกปฏิเสธในเปอร์เซ็นต์สูง หากต้องการเปิดใช้งานโหมดใหม่สำหรับคำขอทั้งหมด จึงมีการเพิ่มตัวเลือกพิเศษในการตั้งค่า (chrome://flags/#quiet-notification-prompts)

    Chrome รุ่น 80

  • ต้องห้าม การแสดงหน้าต่างป๊อปอัป (เรียกใช้เมธอด window.open()) และส่ง XMLHttpRequests แบบซิงโครนัสในการปิดหน้าหรือซ่อนตัวจัดการเหตุการณ์ (ยกเลิกการโหลด ก่อนยกเลิกการโหลด ซ่อนหน้า และการเปลี่ยนแปลงการมองเห็น)
  • เสนอเบื้องต้น защита จากการโหลดเนื้อหามัลติมีเดียแบบผสม (เมื่อโหลดทรัพยากรบนหน้า HTTPS ผ่านโปรโตคอล http://) บนหน้าเว็บที่เปิดผ่าน HTTPS ลิงก์ “http://” จะถูกแทนที่ด้วย “https://” โดยอัตโนมัติในบล็อกที่เกี่ยวข้องกับการเล่นไฟล์เสียงและวิดีโอ หากไม่มีทรัพยากรเสียงหรือวิดีโอผ่าน https การดาวน์โหลดจะถูกบล็อก (คุณสามารถทำเครื่องหมายการบล็อกได้ด้วยตนเองผ่านเมนูที่เข้าถึงได้ผ่านสัญลักษณ์รูปกุญแจในแถบที่อยู่)

    รูปภาพจะยังคงโหลดต่อไปโดยไม่มีการเปลี่ยนแปลง (การแก้ไขอัตโนมัติจะถูกนำไปใช้ใน Chrome 81) แต่เพื่อแทนที่ด้วย https หรือบล็อกรูปภาพ นักพัฒนาไซต์จะได้รับคุณสมบัติ CSP อัปเกรด-คำขอที่ไม่ปลอดภัย และบล็อกเนื้อหาผสมทั้งหมด สำหรับสคริปต์และ iframe การบล็อกเนื้อหาแบบผสมได้ถูกนำมาใช้ก่อนหน้านี้แล้ว

  • แบบค่อยเป็นค่อยไป การปลด รองรับเอฟทีพี ตามค่าเริ่มต้น การสนับสนุน FTP จะยังคงใช้งานได้ แต่จะเป็นเช่นนั้น ดำเนินการ การทดลองที่การรองรับ FTP จะถูกปิดใช้งานสำหรับผู้ใช้บางส่วน (ในการกลับมา คุณจะต้องเปิดเบราว์เซอร์ด้วยตัวเลือก "-enable-ftp") ให้เราระลึกว่าในรุ่นก่อนหน้านี้ การแสดงผลเนื้อหาของทรัพยากรที่ดาวน์โหลดผ่านโปรโตคอล "ftp://" ในหน้าต่างเบราว์เซอร์ถูกปิดใช้งานแล้ว (เช่น การแสดงเอกสาร HTML และไฟล์ README ถูกหยุด) การใช้ FTP คือ ห้ามเมื่อดาวน์โหลดทรัพยากรย่อยจากเอกสาร และการสนับสนุนพร็อกซีถูกยกเลิกสำหรับ FTP อย่างไรก็ตาม ยังคงสามารถดาวน์โหลดไฟล์ผ่านลิงก์โดยตรงและแสดงเนื้อหาของไดเร็กทอรีได้
  • เพิ่ม
    ความสามารถในการใช้รูปภาพเวกเตอร์ SVG เป็นไอคอนไซต์ (favicon)

  • เพิ่มความสามารถในการเลือกปิดการใช้งานข้อมูลบางประเภทที่ถ่ายโอนระหว่างการซิงโครไนซ์ระหว่างเบราว์เซอร์ในการตั้งค่า
  • มีการเพิ่มกฎสำหรับผู้ใช้องค์กรที่ได้รับการดูแลจากส่วนกลาง บล็อกส่วนขยายภายนอกซึ่งช่วยให้คุณป้องกันการติดตั้งส่วนเสริมภายนอกบนอุปกรณ์
  • ดำเนินการแล้ว โอกาส การตรวจสอบสายคุณสมบัติทั้งหมดหรือการเรียกใน JavaScript เพียงครั้งเดียว ตัวอย่างเช่น เมื่อเข้าถึง “db.user.name.length” ก่อนหน้านี้จำเป็นต้องตรวจสอบคำจำกัดความของส่วนประกอบทั้งหมดทีละขั้นตอน เช่น ผ่าน “if (db && db.user && db.user.name)” ตอนนี้ใช้การดำเนินการ “?” คุณสามารถเข้าถึงค่า “db?.user?.name?.length” ได้โดยไม่ต้องมีการตรวจสอบเบื้องต้น และการเข้าถึงดังกล่าวจะไม่ทำให้เกิดข้อผิดพลาด ในกรณีที่เกิดปัญหา (หากองค์ประกอบบางส่วนถูกประมวลผลเป็นโมฆะหรือไม่ได้กำหนด) ผลลัพธ์จะเป็น "ไม่ได้กำหนด"
  • JavaScript แนะนำตัวดำเนินการต่อเชิงตรรกะใหม่ "??" ซึ่งส่งคืนตัวถูกดำเนินการทางขวาหากตัวถูกดำเนินการทางซ้ายเป็น NULL หรือไม่ได้กำหนด และในทางกลับกัน เช่น "const foo = bar ?? 'default string'" หาก bar เป็น null จะส่งกลับค่าของ bar มิฉะนั้น รวมถึงเมื่อ bar เป็น 0 และ ' ' ตรงข้ามกับตัวดำเนินการ "||"
  • ในโหมด Origin Trials (ฟีเจอร์ทดลองที่ต้องแยกกัน การเปิดใช้งาน) API การจัดทำดัชนีเนื้อหาที่เสนอ Origin Trial หมายถึงความสามารถในการทำงานกับ API ที่ระบุจากแอปพลิเคชันที่ดาวน์โหลดจาก localhost หรือ 127.0.0.1 หรือหลังจากการลงทะเบียนและรับโทเค็นพิเศษซึ่งใช้ได้ในระยะเวลาที่จำกัดสำหรับไซต์เฉพาะ เอพีไอ การจัดทำดัชนีเนื้อหาให้ข้อมูลเมตาเกี่ยวกับเนื้อหาที่เว็บแอปพลิเคชันเคยแคชไว้ก่อนหน้านี้ซึ่งทำงานในโหมด Progressive Web Apps (PWS) แอปพลิเคชันสามารถบันทึกข้อมูลต่างๆ บนฝั่งเบราว์เซอร์ รวมถึงรูปภาพ วิดีโอ และบทความ และเมื่อการเชื่อมต่อเครือข่ายขาดหาย ให้ใช้งานโดยใช้ Cache Storage และ IndexedDB API Content Indexing API ช่วยให้สามารถเพิ่ม ค้นหา และลบทรัพยากรดังกล่าวได้ ในเบราว์เซอร์ API นี้ใช้เพื่อแสดงรายการหน้าและข้อมูลมัลติมีเดียที่สามารถดูแบบออฟไลน์ได้แล้ว

    Chrome รุ่น 80

  • เสถียรแล้วและเผยแพร่นอก Origin Trials API แล้ว ติดต่อพิคเกอร์อนุญาตให้ผู้ใช้เลือกรายการจากสมุดที่อยู่และส่งรายละเอียดบางอย่างเกี่ยวกับรายการเหล่านั้นไปยังไซต์ คำขอระบุรายการคุณสมบัติที่ต้องการดึงข้อมูล คุณสมบัติเหล่านี้จะแสดงต่อผู้ใช้อย่างชัดเจน ซึ่งตัดสินใจว่าจะผ่านคุณสมบัติเหล่านี้หรือไม่ สามารถใช้ API ได้ เช่น ในเว็บเมลไคลเอ็นต์เพื่อเลือกผู้รับสำหรับจดหมายที่ส่ง ในเว็บแอปพลิเคชันที่มีฟังก์ชัน VoIP เพื่อเริ่มต้นการโทรไปยังหมายเลขเฉพาะ หรือในเครือข่ายโซเชียลเพื่อค้นหาเพื่อนที่ลงทะเบียนแล้ว . ในเวลาเดียวกัน ในฐานะส่วนหนึ่งของ Origin Trials ได้มีการนำเสนอคุณสมบัติ Contact Picker ใหม่บางอย่าง: นอกเหนือจากชื่อเต็ม อีเมล และหมายเลขโทรศัพท์ที่มีอยู่ก่อนหน้านี้แล้ว ความสามารถในการถ่ายโอนที่อยู่อีเมลและรูปภาพยังได้เพิ่มเข้ามาอีกด้วย
  • ใน Web Worker เสนอ วิธีใหม่ในการโหลดโมดูล ECMAScript ช่วยให้คุณหลีกเลี่ยงการใช้ฟังก์ชัน importScripts() ซึ่งจะบล็อกผู้ปฏิบัติงานขณะประมวลผลสคริปต์ที่นำเข้าและดำเนินการในบริบทส่วนกลาง วิธีการใหม่นี้เกี่ยวข้องกับการสร้างโมดูลพิเศษสำหรับ Web Workers ที่รองรับกลไกการนำเข้า JavaScript มาตรฐาน และสามารถโหลดแบบไดนามิกโดยไม่ปิดกั้นการทำงานของพนักงาน ในการโหลดโมดูล ตัวสร้างผู้ปฏิบัติงานจัดเตรียมประเภททรัพยากรใหม่ - 'โมดูล':

    ผู้ปฏิบัติงาน const = ผู้ปฏิบัติงานใหม่ ('worker.js', {
    ประเภท: 'โมดูล'
    });

  • ดำเนินการแล้ว ความสามารถในตัวของ JavaScript ในการประมวลผลสตรีมที่บีบอัดโดยไม่ต้องใช้ไลบรารีภายนอก มีการเพิ่ม API สำหรับการบีบอัดและคลายการบีบอัด CompressionStream และ DecompressionStream. รองรับการบีบอัดโดยใช้อัลกอริธึม gzip และ deflate

    การบีบอัด ConstReadableStream
    = inputReadableStream.pipeThrough (การบีบอัดสตรีมใหม่ ('gzip'));

  • เพิ่มคุณสมบัติ CSS "ตัวแบ่งบรรทัด: ทุกที่" ซึ่งอนุญาตให้แบ่งที่ระดับของอักขระการพิมพ์ใดๆ รวมถึงการแบ่งใกล้กับอักขระเครื่องหมายวรรคตอนที่กำหนดล่วงหน้าด้วยช่องว่าง ( ) และอยู่ตรงกลางคำ เพิ่มคุณสมบัติ CSS ด้วย "ล้นห่อ: ทุกที่» ช่วยให้คุณสามารถแยกลำดับอักขระที่ไม่ขาดตอนได้ทุกที่หากไม่พบตำแหน่งที่เหมาะสมสำหรับการแบ่งบรรทัดในบรรทัด
  • สำหรับบริบทของสื่อที่ประมวลผลในรูปแบบที่เข้ารหัส ได้มีการนำวิธีการนี้ไปใช้แล้ว MediaCapabilities.decodingInfo()ซึ่งให้ข้อมูลเกี่ยวกับความสามารถของเบราว์เซอร์ในการถอดรหัสเนื้อหาที่มีการป้องกัน (เช่น วิธีการนี้สามารถใช้เพื่อเลือกสถานการณ์การถอดรหัสคุณภาพสูงหรือประหยัดพลังงานตามแบนด์วิดท์และขนาดหน้าจอที่มีอยู่)
  • เพิ่มวิธีการ HTMLVideoElement.getVideoPlaybackQuality()ซึ่งคุณจะได้รับข้อมูลเกี่ยวกับประสิทธิภาพการเล่นวิดีโอเพื่อปรับบิตเรต ความละเอียด และพารามิเตอร์วิดีโออื่นๆ
  • ในเอพีไอ ตัวจัดการการชำระเงินซึ่งช่วยให้บูรณาการกับระบบการชำระเงินที่มีอยู่ได้ง่ายขึ้น เพิ่มความสามารถ การมอบหมาย การประมวลผลที่อยู่และข้อมูลการติดต่อไปยังผู้ประมวลผลภายนอกของระบบการชำระเงิน (แอปพลิเคชันระบบการชำระเงินอาจมีข้อมูลที่แม่นยำมากกว่าเบราว์เซอร์)
  • เพิ่มการสนับสนุนส่วนหัว HTTP วินาทีดึงข้อมูลปลายทางซึ่งช่วยให้คุณสามารถส่งข้อมูลเมตาเพิ่มเติมเกี่ยวกับประเภทของเนื้อหาที่เกี่ยวข้องกับคำขอ (ตัวอย่างเช่นสำหรับคำขอผ่านแท็ก img ประเภทคือ "รูปภาพ" สำหรับแบบอักษร - "แบบอักษร" สำหรับสคริปต์ - "สคริปต์" สำหรับสไตล์ - "สไตล์" ฯลฯ ) ขึ้นอยู่กับประเภทที่ระบุ เซิร์ฟเวอร์สามารถใช้มาตรการเพื่อป้องกันการโจมตีบางประเภท (เช่น ไม่น่าเป็นไปได้ที่ลิงก์ไปยังตัวจัดการสำหรับการโอนเงินจะถูกระบุผ่านแท็ก img ดังนั้นคำขอดังกล่าวจึงไม่จำเป็นต้อง จะถูกประมวลผล)
  • ในเอ็นจิ้น JavaScript V8 ดำเนินการเพิ่มประสิทธิภาพแล้ว การจัดเก็บพอยน์เตอร์บนฮีป แทนที่จะจัดเก็บค่า 64 บิตเต็ม ระบบจะจัดเก็บเฉพาะบิตล่างที่ไม่ซ้ำกันของตัวชี้เท่านั้น การเพิ่มประสิทธิภาพนี้ทำให้สามารถลดการใช้หน่วยความจำฮีปลงได้ 40% โดยเสียค่าปรับประสิทธิภาพ 3-8%
    Chrome รุ่น 80

    Chrome รุ่น 80

  • การเปลี่ยนแปลง ในเครื่องมือสำหรับนักพัฒนาเว็บ:
    • ขณะนี้เว็บคอนโซลมีความสามารถในการกำหนดนิพจน์การอนุญาตและคลาสใหม่ได้

      Chrome รุ่น 80

    • ปรับปรุงเครื่องมือดีบัก WebAssembly เพิ่มการสนับสนุน แคระ สำหรับการดีบักทีละขั้นตอน การระบุเบรกพอยต์ และการวิเคราะห์การติดตามสแต็กในซอร์สโค้ดที่ใช้เขียนแอปพลิเคชัน WebAssembly

      Chrome รุ่น 80

    • แผงที่ได้รับการปรับปรุงสำหรับการวิเคราะห์กิจกรรมเครือข่าย เพิ่มความสามารถในการดูสายการเรียกสคริปต์ที่เกี่ยวข้องกับการเริ่มต้นคำขอ

      Chrome รุ่น 80

      เพิ่มคอลัมน์เส้นทางและ URL ใหม่ที่แสดงเส้นทางที่แน่นอนและ URL แบบเต็มสำหรับทรัพยากรเครือข่ายแต่ละรายการ ตรวจสอบให้แน่ใจว่าคำค้นหาที่เลือกถูกเน้นในแผนภาพภาพรวม

      Chrome รุ่น 80

    • ในแท็บ Network Conditions มีการเพิ่มตัวเลือกเพื่อเปลี่ยนพารามิเตอร์ User-Agent

      Chrome รุ่น 80

    • มีการเสนออินเทอร์เฟซใหม่สำหรับการกำหนดค่าแผงการตรวจสอบ
      Chrome รุ่น 80

    • ในแท็บ คุ้มครอง ให้ทางเลือกในการรวบรวมข้อมูลความครอบคลุมสำหรับแต่ละฟังก์ชันหรือสำหรับแต่ละบล็อคโค้ด (สถิติที่มีรายละเอียดเพิ่มเติม แต่ต้องใช้ทรัพยากรมากขึ้น)

      Chrome รุ่น 80

  • การดำเนินการรายการ AppCache (เทคโนโลยีสำหรับจัดการการทำงานของเว็บแอปพลิเคชันในโหมดออฟไลน์) ถูก จำกัด ไดเรกทอรีปัจจุบันของไซต์ (หากดาวน์โหลดรายการจาก www.example.com/foo/bar/ ความสามารถในการแทนที่ URL จะทำงานภายใน /foo/bar/ เท่านั้น) มีการวางแผนที่จะลบการสนับสนุน AppCache ทั้งหมดใน Chrome 82 เหตุผลที่อ้างถึงคือความปรารถนาที่จะกำจัดเวกเตอร์ตัวใดตัวหนึ่งสำหรับการโจมตีด้วยสคริปต์ข้ามไซต์ ขอแนะนำให้ใช้ API แทน AppCache แคช.
  • ยกเลิก รองรับ WebVR 1.1 API เดิมซึ่งสามารถแทนที่ด้วย API ได้ อุปกรณ์ WebXRซึ่งช่วยให้คุณเข้าถึงส่วนประกอบสำหรับการสร้างความเป็นจริงเสมือนและความเป็นจริงเสริม และรวมการทำงานเข้ากับอุปกรณ์ประเภทต่างๆ ตั้งแต่หมวกกันน็อคเสมือนจริงแบบอยู่กับที่ไปจนถึงโซลูชันที่ใช้อุปกรณ์เคลื่อนที่
  • ตัวจัดการโปรโตคอลที่เชื่อมต่อผ่านเมธอด registerProtocolHandler() และ unregisterProtocolHandler() สามารถทำงานได้ในบริบทที่ปลอดภัยเท่านั้น (เมื่อเข้าถึงผ่าน HTTPS)

นอกจากนวัตกรรมและการแก้ไขข้อบกพร่องแล้ว เวอร์ชันใหม่ยังกำจัดอีกด้วย 56 ช่องโหว่. ช่องโหว่จำนวนมากถูกระบุเป็นผลจากเครื่องมือทดสอบอัตโนมัติ ที่อยู่Sanitizer, MemorySanitizer, ควบคุมความสมบูรณ์ของการไหล, LibFuzzer и แอฟ. ไม่พบปัญหาสำคัญที่ทำให้สามารถข้ามการป้องกันเบราว์เซอร์ทุกระดับและรันโค้ดบนระบบภายนอกสภาพแวดล้อมแซนด์บ็อกซ์ Google จ่ายเงินรางวัล 37 รางวัลมูลค่า 48 ดอลลาร์สหรัฐฯ (10000 รางวัล 5000 ดอลลาร์สหรัฐฯ 3000 รางวัล 2000 ดอลลาร์ 1000 รางวัล 500 รางวัล 17 ดอลลาร์สหรัฐฯ XNUMX รางวัล XNUMX ดอลลาร์ XNUMX รางวัล XNUMX ดอลลาร์สหรัฐฯ XNUMX รางวัล และ XNUMX ดอลลาร์ XNUMX รางวัล) ขนาดของรางวัล XNUMX ชิ้นยังไม่ได้กำหนด

ที่มา: opennet.ru

เพิ่มความคิดเห็น