mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 13:21:05 +00:00
Bug 1713973 p4: Test brokered complex breaker against Uniscribe in content. r=jfkthame
Depends on D129143 Differential Revision: https://phabricator.services.mozilla.com/D129144
This commit is contained in:
parent
75ff7d4c1e
commit
93b7d525df
184
intl/lwbrk/crashtests/UDHR_Thai_test_page_long_sequences.html
Normal file
184
intl/lwbrk/crashtests/UDHR_Thai_test_page_long_sequences.html
Normal file
@ -0,0 +1,184 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>UDHR - Thai - test page for bug 1713973</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
</head>
|
||||
<body dir="ltr">
|
||||
<h3 style="text-align:center">Universal Declaration of Human Rights - Thai</h3>
|
||||
<p>© 1996 – 2009 The Office of the High Commissioner for Human Rights</p>
|
||||
<p>This HTML version prepared by the <i>UDHR in Unicode</i> project, <a href="https://www.unicode.org/udhr">http://www.unicode.org/udhr</a>.</p>
|
||||
<hr>
|
||||
<p style="color:red; background:yellow">NOTE: Spaces within Thai content were removed for testing purposes.</p>
|
||||
<div xml:lang="th" dir="ltr" lang="th">
|
||||
<h3>ปฏิญญาสากลว่าด้วยสิทธิมนุษยชน</h3>
|
||||
<p>ได้รับการรับรองและประกาศโดยข้อมติสมัชชาสหประชาชาติที่ 217 เอ (III) วันที่ 10 ธันวาคม พ.ศ. 2491</p>
|
||||
<h4>อารัมภบท</h4>
|
||||
<p>โดยที่การยอมรับศักดิ์ศรีแต่กำเนิดและสิทธิที่เท่าเทียมกันและที่ไม่อาจ
|
||||
เพิกถอนได้ของสมาชิกทั้งมวลแห่งครอบครัวมนุษยชาติเป็นพื้นฐานแห่งอิสรภาพ
|
||||
ความยุติธรรมและสันติภาพในโลก</p>
|
||||
<p>โดยที่การไม่นำพาและการหมิ่นในคุณค่าของสิทธิมนุษยชนยังผลให้มีการกระทำ
|
||||
อันป่าเถื่อนซึ่งเป็นการขัดอย่างร้ายแรงต่อมโนธรรมของมนุษยชาติและการมาถึง
|
||||
ของโลกที่ได้มีการประกาศให้ความมีอิสรภาพในการพูดและความเชื่อและอิสรภาพจาก
|
||||
ความหวาดกลัวและความต้องการของมนุษย์เป็นความปรารถนาสูงสุดของประชาชนทั่วไป</p>
|
||||
<p>โดยที่เป็นการจำเป็นที่สิทธิมนุษยชนควรได้รับความคุ้มครองโดยหลัก
|
||||
นิติธรรมถ้าจะไม่บังคับให้คนต้องหันเข้าหาการลุกขึ้นต่อต้านทรราชและการกด
|
||||
ขี่เป็นวิถีทางสุดท้าย</p>
|
||||
<p>โดยที่เป็นการจำเป็นที่จะส่งเสริมพัฒนาการแห่งความสัมพันธ์ฉันมิตรระหว่างชาติต่างๆ</p>
|
||||
<p>โดยที่ประชาชนแห่งสหประชาชาติได้ยืนยันอีกครั้งไว้ในกฎบัตรถึงศรัทธาใน
|
||||
สิทธิมนุษยชนขั้นพื้นฐานในศักดิ์ศรีและค่าของมนุษย์และในสิทธิที่เท่าเทียม
|
||||
กันของบรรดาชายและหญิงและได้มุ่งมั่นที่จะส่งเสริมความก้าวหน้าทางสังคมและ
|
||||
มาตรฐานแห่งชีวิตที่ดีขึ้นในอิสรภาพอันกว้างขวางยิ่งขึ้น</p>
|
||||
<p>โดยที่รัฐสมาชิกต่างปฏิญาณที่จะบรรลุถึงซึ่งการส่งเสริมการเคารพและการ
|
||||
ยึดถือสิทธิมนุษยชนและอิสรภาพขั้นพื้นฐานโดยสากลโดยความร่วมมือกับสหประชา
|
||||
ชาติ</p>
|
||||
<p>โดยที่ความเข้าใจร่วมกันในสิทธิและอิสรภาพเหล่านี้เป็นสิ่งสำคัญที่สุดเพื่อให้ปฏิญาณนี้สำเร็จผลเต็มบริบูรณ์</p>
|
||||
<p>ฉะนั้นบัดนี้สมัชชาจึงประกาศปฏิญญาสากลว่าด้วยสิทธิมนุษยชนนี้ให้เป็น
|
||||
มาตรฐานร่วมกันแห่งความสำเร็จสำหรับประชาชนทั้งมวลและประชาชาติทั้งหลาย
|
||||
เพื่อจุดมุ่งหมายที่ว่าปัจเจกบุคคลทุกคนและทุกส่วนของสังคมโดยการคำนึงถึง
|
||||
ปฏิญญานี้เป็นเนืองนิตย์จะมุ่งมั่นส่งเสริมการเคารพสิทธิและอิสรภาพเหล่านี้
|
||||
ด้วยการสอนและการศึกษาและให้มีการยอมรับและยึดถือโดยสากลอย่างมีประสิทธิผล
|
||||
ด้วยมาตรการแห่งชาติและระหว่างประเทศอันก้าวหน้าตามลำดับทั้งในบรรดาประชาชน
|
||||
ของรัฐสมาชิกด้วยกันเองและในบรรดาประชาชนของดินแดนที่อยู่ใต้เขตอำนาจแห่ง
|
||||
รัฐนั้น</p>
|
||||
<h4>ข้อ1</h4>
|
||||
<p>มนุษย์ทั้งปวงเกิดมามีอิสระและเสมอภาคกันในศักดิ์ศรีและสิทธิต่างในตนมีเหตุผลและมโนธรรมและควรปฏิบัติต่อกันด้วยจิตวิญญาณแห่งภราดรภาพ</p>
|
||||
<h4>ข้อ2</h4>
|
||||
<p>ทุกคนย่อมมีสิทธิและอิสรภาพทั้งปวงตามที่กำหนดไว้ในปฏิญญานี้โดยปราศจาก
|
||||
การแบ่งแยกไม่ว่าชนิดใดอาทิเชื้อชาติผิวเพศภาษาศาสนาความคิดเห็นทางการเมือง
|
||||
หรือทางอื่นพื้นเพทางชาติหรือสังคมทรัพย์สินการเกิดหรือสถานะอื่นนอกเหนือ
|
||||
จากนี้จะไม่มีการแบ่งแยกใดบนพื้นฐานของสถานะทางการเมืองทางกฎหมายหรือทางการ
|
||||
ระหว่างประเทศของประเทศหรือดินแดนที่บุคคลสังกัดไม่ว่าดินแดนนี้จะเป็น
|
||||
เอกราชอยู่ในความพิทักษ์มิได้ปกครองตนเองหรืออยู่ภายใต้การจำกัดอธิปไตยอื่น
|
||||
ใด</p>
|
||||
<h4>ข้อ3</h4>
|
||||
<p>ทุกคนมีสิทธิในการมีชีวิตเสรีภาพและความมั่นคงแห่งบุคคล</p>
|
||||
<h4>ข้อ4</h4>
|
||||
<p>บุคคลใดจะตกอยู่ในความเป็นทาสหรือสภาวะจำยอมไม่ได้ทั้งนี้ห้ามความเป็นทาสและการค้าทาสทุกรูปแบบ</p>
|
||||
<h4>ข้อ5</h4>
|
||||
<p>บุคคลใดจะถูกกระทำการทรมานหรือการปฏิบัติหรือการลงโทษที่โหดร้ายไร้มนุษยธรรมหรือย่ำยีศักดิ์ศรีไม่ได้</p>
|
||||
<h4>ข้อ6</h4>
|
||||
<p>ทุกคนมีสิทธิที่จะได้รับการยอมรับทุกแห่งหนว่าเป็นบุคคลตามกฎหมาย</p>
|
||||
<h4>ข้อ7</h4>
|
||||
<p>ทุกคนเสมอภาคกันตามกฎหมายและมีสิทธิที่จะได้รับความคุ้มครองของกฎหมาย
|
||||
เท่าเทียมกันโดยปราศจากการเลือกปฏิบัติใดทุกคนมีสิทธิที่จะได้รับความคุ้ม
|
||||
ครองเท่าเทียมกันจากการเลือกปฏิบัติใดอันเป็นการล่วงละเมิดปฏิญญานี้และจาก
|
||||
การยุยงให้มีการเลือกปฏิบัติดังกล่าว</p>
|
||||
<h4>ข้อ8</h4>
|
||||
<p>ทุกคนมีสิทธิที่จะได้รับการเยียวยาอันมีประสิทธิผลจากศาลที่มีอำนาจแห่ง
|
||||
รัฐต่อการกระทำอันล่วงละเมิดสิทธิขั้นพื้นฐานซึ่งตนได้รับตามรัฐธรรมนูญหรือ
|
||||
กฎหมาย</p>
|
||||
<h4>ข้อ9</h4>
|
||||
<p>บุคคลใดจะถูกจับกุมกักขังหรือเนรเทศตามอำเภอใจไม่ได้</p>
|
||||
<h4>ข้อ10</h4>
|
||||
<p>ทุกคนย่อมมีสิทธิในความเสมอภาคอย่างเต็มที่ในการได้รับการพิจารณาคดีที่
|
||||
เป็นธรรมและเปิดเผยจากศาลที่อิสระและไม่ลำเอียงในการพิจารณากำหนดสิทธิและ
|
||||
หน้าที่ของตนและข้อกล่าวหาอาญาใดต่อตน</p>
|
||||
<h4>ข้อ11</h4>
|
||||
<p>1.ทุกคนที่ถูกกล่าวหาว่ากระทำผิดทางอาญามีสิทธิที่จะได้รับการสันนิษฐาน
|
||||
ไว้ก่อนว่าบริสุทธิ์จนกว่าจะพิสูจน์ได้ว่ามีความผิดตามกฎหมายในการพิจารณา
|
||||
คดีที่เปิดเผยซึ่งตนได้รับหลักประกันที่จำเป็นทั้งปวงสำหรับการต่อสู้คดี</p>
|
||||
<p>2.บุคคลใดจะถูกตัดสินว่ามีความผิดทางอาญาใดอันเนื่องจากการกระทำหรือ
|
||||
ละเว้นใดอันมิได้ถือว่าเป็นความผิดทางอาญาตามกฎหมายแห่งชาติหรือกฎหมาย
|
||||
ระหว่างประเทศในขณะที่ได้กระทำการนั้นไม่ได้และจะกำหนดโทษที่หนักกว่าที่
|
||||
บังคับใช้ในขณะที่ได้กระทำความผิดทางอาญานั้นไม่ได้</p>
|
||||
<h4>ข้อ12</h4>
|
||||
<p>บุคคลใดจะถูกแทรกแซงตามอำเภอใจในความเป็นส่วนตัวครอบครัวที่อยู่อาศัย
|
||||
หรือการสื่อสารหรือจะถูกลบหลู่เกียรติยศและชื่อเสียงไม่ได้ทุกคนมีสิทธิที่
|
||||
จะได้รับความคุ้มครองของกฎหมายต่อการแทรกแซงสิทธิหรือการลบหลู่ดังกล่าวนั้น</p>
|
||||
<h4>ข13</h4>
|
||||
<p>1.ทุกคนมีสิทธิในอิสรภาพแห่งการเคลื่อนย้ายและการอยู่อาศัยภายในพรมแดนของแต่ละรัฐ</p>
|
||||
<p>2.ทุกคนมีสิทธิที่จะออกนอกประเทศใดรวมทั้งประเทศของตนเองและสิทธิที่จะกลับสู่ประเทศตน</p>
|
||||
<h4>ข้อ14</h4>
|
||||
<p>1.ทุกคนมีสิทธิที่จะแสวงหาและที่จะได้ที่ลี้ภัยในประเทศอื่นจากการประหัตประหาร</p>
|
||||
<p>2.สิทธินี้จะยกขึ้นกล่าวอ้างกับกรณีที่การดำเนินคดีที่เกิดขึ้นโดยแท้จาก
|
||||
ความผิดที่มิใช่ทางการเมืองหรือจากการกระทำอันขัดต่อวัตถุประสงค์และหลักการ
|
||||
ของสหประชาชาติไม่ได้</p>
|
||||
<h4>ข้อ15</h4>
|
||||
<p>1.ทุกคนมีสิทธิในสัญชาติหนึ่ง</p>
|
||||
<p>2.บุคคลใดจะถูกเพิกถอนสัญชาติของตนตามอำเภอใจหรือถูกปฏิเสธสิทธิที่จะเปลี่ยนสัญชาติของตนไม่ได้</p>
|
||||
<h4>ข้อ16</h4>
|
||||
<p>1.บรรดาชายและหญิงที่มีอายุครบบริบูรณ์แล้วมีสิทธิที่จะสมรสและก่อร่าง
|
||||
สร้างครอบครัวโดยปราศจากการจำกัดใดอันเนื่องจากเชื้อชาติสัญชาติหรือศาสนา
|
||||
ต่างย่อมมีสิทธิเท่าเทียมกันในการสมรสระหว่างการสมรสและในการขาดจากการสมรส</p>
|
||||
<p>2.การสมรสจะกระทำโดยความยินยอมอย่างอิสระและเต็มที่ของผู้ที่จะเป็นคู่สมรสเท่านั้น</p>
|
||||
<p>3.ครอบครัวเป็นหน่วยธรรมชาติและพื้นฐานของสังคมและย่อมมีสิทธิที่จะได้รับความคุ้มครองจากสังคมและรัฐ</p>
|
||||
<h4>ข้อ17</h4>
|
||||
<p>1.ทุกคนมีสิทธิที่จะเป็นเจ้าของทรัพย์สินโดยตนเองและโดยร่วมกับผู้อื่น</p>
|
||||
<p>2.บุคคลใดจะถูกเอาทรัพย์สินไปจากตนตามอำเภอใจไม่ได้</p>
|
||||
<h4>ข้อ18</h4>
|
||||
<p>ทุกคนมีสิทธิในอิสรภาพแห่งความคิดมโนธรรมและศาสนาทั้งนี้สิทธินี้รวมถึง
|
||||
อิสรภาพในการเปลี่ยนศาสนาหรือความเชื่อและอิสรภาพในการแสดงออกทางศาสนาหรือ
|
||||
ความเชื่อถือของตนในการสอนการปฏิบัติการสักการะบูชาและการประกอบพิธีกรรมไม่
|
||||
ว่าจะโดยลำพังหรือในชุมชนร่วมกับผู้อื่นและในที่สาธารณะหรือส่วนบุคคล</p>
|
||||
<h4>ข้อ19</h4>
|
||||
<p>ทุกคนมีสิทธิในอิสรภาพแห่งความเห็นและการแสดงออกทั้งนี้สิทธินี้รวมถึง
|
||||
อิสรภาพที่จะถือเอาความเห็นโดยปราศจากการแทรกแซงและที่จะแสวงหารับและส่ง
|
||||
ข้อมูลข่าวสารและข้อคิดผ่านสื่อใดและโดยไม่คำนึงถึงพรมแดน</p>
|
||||
<h4>ข้อ20</h4>
|
||||
<p>1.ทุกคนมีสิทธิในอิสรภาพแห่งการชุมนุมและการสมาคมโดยสันติ</p>
|
||||
<p>2.บุคคลใดไม่อาจถูกบังคับให้สังกัดสมาคมหนึ่งได้</p>
|
||||
<h4>ข้อ21</h4>
|
||||
<p>1.ทุกคนมีสิทธิที่จะมีส่วนร่วมในการปกครองประเทศตนโดยตรงหรือผ่านผู้แทนซึ่งได้รับเลือกตั้งโดยอิสระ</p>
|
||||
<p>2.ทุกคนมีสิทธิที่จะเข้าถึงบริการสาธารณะในประเทศตนโดยเสมอภาค</p>
|
||||
<p>3.เจตจำนงของประชาชนจะต้องเป็นพื้นฐานแห่งอำนาจการปกครองทั้งนี้เจตจำนง
|
||||
นี้จะต้องแสดงออกทางการเลือกตั้งตามกำหนดเวลาและอย่างแท้จริงซึ่งต้องเป็น
|
||||
การออกเสียงอย่างทั่วถึงและเสมอภาคและต้องเป็นการลงคะแนนลับหรือวิธีการลง
|
||||
คะแนนโดยอิสระในทำนองเดียวกัน</p>
|
||||
<h4>ข้อ22</h4>
|
||||
<p>ทุกคนในฐานะสมาชิกของสังคมมีสิทธิในหลักประกันทางสังคมและย่อมมีสิทธิใน
|
||||
การบรรลุสิทธิทางเศรษฐกิจสังคมและวัฒนธรรมอันจำเป็นยิ่งสำหรับศักดิ์ศรีของ
|
||||
ตนและการพัฒนาบุคลิกภาพของตนอย่างอิสระผ่านความพยายามของรัฐและความร่วมมือ
|
||||
ระหว่างประเทศและตามการจัดการและทรัพยากรของแต่ละรัฐ</p>
|
||||
<h4>ข้อ23</h4>
|
||||
<p>1.ทุกคนมีสิทธิในการทำงานในการเลือกงานโดยอิสระในเงื่อนไขที่ยุติธรรมและเอื้ออำนวยต่อการทำงานและในการคุ้มครองต่อการว่างงาน</p>
|
||||
<p>2.ทุกคนมีสิทธิที่จะได้รับค่าจ้างที่เท่าเทียมกันสำหรับงานที่เท่าเทียมกันโดยปราศจากการเลือกปฏิบัติใด</p>
|
||||
<p>3.ทุกคนที่ทำงานมีสิทธิที่จะได้รับค่าตอบแทนที่ยุติธรรมและเอื้ออำนวยต่อ
|
||||
การประกันความเป็นอยู่อันควรค่าแก่ศักดิ์ศรีของมนุษย์สำหรับตนเองและครอบ
|
||||
ครัวและหากจำเป็นก็จะได้รับการคุ้มครองทางสังคมในรูปแบบอื่นเพิ่มเติมด้วย</p>
|
||||
<p>4.ทุกคนมีสิทธิที่จะจัดตั้งและที่จะเข้าร่วมสหภาพแรงงานเพื่อความคุ้มครองผลประโยชน์ของตน</p>
|
||||
<h4>ข้อ24</h4>
|
||||
<p>ทุกคนมีสิทธิในการพักผ่อนและการผ่อนคลายยามว่างรวมทั้งจำกัดเวลาทำงานตามสมควรและวันหยุดเป็นครั้งคราวโดยได้รับค่าจ้าง</p>
|
||||
<h4>ข้อ25</h4>
|
||||
<p>1.ทุกคนมีสิทธิในมาตรฐานการครองชีพอันเพียงพอสำหรับสุขภาพและความอยู่ดี
|
||||
ของตนและของครอบครัวรวมทั้งอาหารเครื่องนุ่งห่มที่อยู่อาศัยและการดูแลรักษา
|
||||
ทางการแพทย์และบริการสังคมที่จำเป็นและมีสิทธิในหลักประกันยามว่างงานเจ็บ
|
||||
ป่วยพิการหม้ายวัยชราหรือปราศจากการดำรงชีพอื่นในสภาวะแวดล้อมนอกเหนือการ
|
||||
ควบคุมของตน</p>
|
||||
<p>2.มารดาและเด็กย่อมมีสิทธิที่จะรับการดูแลรักษาและการช่วยเหลือเป็นพิเศษ
|
||||
เด็กทั้งปวงไม่ว่าจะเกิดในหรือนอกสมรสจะต้องได้รับการคุ้มครองทางสังคมเช่น
|
||||
เดียวกัน</p>
|
||||
<h4>ข้อ26</h4>
|
||||
<p>1.ทุกคนมีสิทธิในการศึกษาการศึกษาจะต้องให้เปล่าอย่างน้อยในขั้นประถม
|
||||
ศึกษาและขั้นพื้นฐานการศึกษาระดับประถมจะต้องเป็นภาคบังคับการศึกษาด้าน
|
||||
วิชาการและวิชาชีพจะต้องเปิดเป็นการทั่วไปและการศึกษาระดับสูงขึ้นไปจะต้อง
|
||||
เข้าถึงได้อย่างเสมอภาคสำหรับทุกคนบนพื้นฐานของคุณสมบัติความเหมาะสม</p>
|
||||
<p>2.การศึกษาจะต้องมุ่งไปสู่การพัฒนาบุคลิกภาพของมนุษย์อย่างเต็มที่และการ
|
||||
เสริมสร้างความเคารพต่อสิทธิมนุษยชนและอิสรภาพขั้นพื้นฐานการศึกษาจะต้องส่ง
|
||||
เสริมความเข้าใจขันติธรรมและมิตรภาพระหว่างประชาชาติกลุ่มเชื้อชาติหรือ
|
||||
ศาสนาทั้งมวลและจะต้องส่งเสริมกิจกรรมของสหประชาชาติเพื่อการธำรงไว้ซึ่ง
|
||||
สันติภาพ</p>
|
||||
<p>3.ผู้ปกครองมีสิทธิเบื้องแรกที่จะเลือกประเภทการศึกษาที่จะให้แก่บุตรของตน</p>
|
||||
<h4>ข้อ27</h4>
|
||||
<p>1.ทุกคนมีสิทธิที่จะเข้าร่วมโดยอิสระในชีวิตทางวัฒนธรรมของชุมชนที่จะ
|
||||
เพลิดเพลินกับศิลปะและมีส่วนในความรุดหน้าและคุณประโยชน์ทางวิทยาศาสตร์</p>
|
||||
<p>2.ทุกคนมีสิทธิที่จะได้รับการคุ้มครองผลประโยชน์ทางจิตใจและทางวัตถุอัน
|
||||
เป็นผลจากประดิษฐกรรมใดทางวิทยาศาสตร์วรรณกรรมและศิลปกรรมซึ่งตนเป็นผู้
|
||||
สร้าง</p>
|
||||
<h4>ข้อ28</h4>
|
||||
<p>ทุกคนย่อมมีสิทธิในระเบียบทางสังคมและระหว่างประเทศซึ่งจะเป็นกรอบให้บรรลุสิทธิและอิสรภาพที่กำหนดไว้ในปฏิญญานี้อย่างเต็มที่</p>
|
||||
<h4>ข้อ29</h4>
|
||||
<p>1.ทุกคนมีหน้าที่ต่อชุมชนซึ่งการพัฒนาบุคลิกภาพของตนโดยอิสระและเต็มที่จะกระทำได้ก็แต่ในชุมชนเท่านั้น</p>
|
||||
<p>2.ในการใช้สิทธิและอิสรภาพของตนทุกคนจะต้องอยู่ภายใต้ข้อจำกัดเพียงเท่า
|
||||
ที่มีกำหนดไว้ตามกฎหมายเท่านั้นเพื่อวัตถุประสงค์ของการได้มาซึ่งการยอมรับ
|
||||
และการเคารพสิทธิและอิสรภาพอันควรของผู้อื่นและเพื่อให้สอดรับกับความต้อง
|
||||
การอันสมควรทางด้านศีลธรรมความสงบเรียบร้อยของประชาชนและสวัสดิการทั่วไปใน
|
||||
สังคมประชาธิปไตย</p>
|
||||
<p>3.สิทธิและอิสรภาพเหล่านี้ไม่อาจใช้ขัดต่อวัตถุประสงค์และหลักการของสหประชาชาติไม่ว่าในกรณีใด</p>
|
||||
<h4>ข้อ30</h4>
|
||||
<p>ไม่มีบทใดในปฏิญญานี้ที่อาจตีความได้ว่าเป็นการให้สิทธิใดแก่รัฐกลุ่มคน
|
||||
หรือบุคคลใดในการดำเนินกิจกรรมใดหรือกระทำการใดอันมุ่งต่อการทำลายสิทธิและ
|
||||
อิสรภาพใดที่กำหนดไว้ณที่นี้</p>
|
||||
</div><hr>
|
||||
</body>
|
||||
</html>
|
@ -1 +1,2 @@
|
||||
load 416721.html
|
||||
skip-if(!winWidget) pref(intl.compare_against_brokered_complex_line_breaks,true) pref(security.sandbox.content.win32k-disable,false) load UDHR_Thai_test_page_long_sequences.html
|
||||
|
@ -17,6 +17,10 @@
|
||||
#include "nsTArray.h"
|
||||
#include "nsXULAppAPI.h"
|
||||
|
||||
#if defined(ENABLE_TESTS)
|
||||
# include "mozilla/StaticPrefs_intl.h"
|
||||
#endif
|
||||
|
||||
using namespace mozilla;
|
||||
|
||||
static bool UseBrokeredLineBreaking() {
|
||||
@ -88,4 +92,48 @@ void NS_GetComplexLineBreaks(const char16_t* aText, uint32_t aLength,
|
||||
aBreakBefore[j + startOffset] = sla[j].fSoftBreak;
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(ENABLE_TESTS)
|
||||
// When tests are enabled and pref is set, we compare the line breaks returned
|
||||
// from the Uniscribe breaker in the content process, with the ones returned
|
||||
// from the brokered call to the parent. If they differ we crash so we can
|
||||
// test using a crashtest.
|
||||
if (!StaticPrefs::intl_compare_against_brokered_complex_line_breaks() ||
|
||||
!XRE_IsContentProcess()) {
|
||||
return;
|
||||
}
|
||||
|
||||
nsTArray<uint8_t> brokeredBreaks(aLength);
|
||||
brokeredBreaks.AppendElements(aLength);
|
||||
if (!SandboxTarget::Instance()->GetComplexLineBreaks(
|
||||
text, aLength, brokeredBreaks.Elements())) {
|
||||
MOZ_CRASH("Brokered GetComplexLineBreaks failed.");
|
||||
}
|
||||
|
||||
bool mismatch = false;
|
||||
for (int i = 0; i < aLength; ++i) {
|
||||
if (aBreakBefore[i] != brokeredBreaks[i]) {
|
||||
mismatch = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (mismatch) {
|
||||
// The logging here doesn't handle surrogates, but we only have tests using
|
||||
// Thai currently, which is BMP-only.
|
||||
printf_stderr("uniscribe: ");
|
||||
for (int i = 0; i < aLength; ++i) {
|
||||
if (aBreakBefore[i]) printf_stderr("#");
|
||||
printf_stderr("%s", NS_ConvertUTF16toUTF8(aText + i, 1).get());
|
||||
}
|
||||
printf_stderr("\n");
|
||||
printf_stderr("brokered : ");
|
||||
for (int i = 0; i < aLength; ++i) {
|
||||
if (brokeredBreaks[i]) printf_stderr("#");
|
||||
printf_stderr("%s", NS_ConvertUTF16toUTF8(aText + i, 1).get());
|
||||
}
|
||||
printf_stderr("\n");
|
||||
MOZ_CRASH("Brokered breaks did not match.");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -5903,6 +5903,16 @@
|
||||
type: bool
|
||||
value: @IS_NOT_EARLY_BETA_OR_EARLIER@
|
||||
mirror: always
|
||||
|
||||
#if defined(ENABLE_TESTS)
|
||||
# If true, NS_GetComplexLineBreaks compares the line breaks produced in the
|
||||
# content process using the Uniscribe line breaker, with those from a
|
||||
# brokered call to the parent.
|
||||
- name: intl.compare_against_brokered_complex_line_breaks
|
||||
type: bool
|
||||
value: false
|
||||
mirror: always
|
||||
#endif
|
||||
#endif
|
||||
|
||||
# If you use legacy Chinese IME which puts an ideographic space to composition
|
||||
|
@ -11,6 +11,11 @@
|
||||
|
||||
namespace sandbox {
|
||||
|
||||
#if defined(ENABLE_TESTS)
|
||||
// Set a low max brokered length for testing to exercise the chunking code.
|
||||
static const std::ptrdiff_t kMaxBrokeredLen = 50;
|
||||
|
||||
#else
|
||||
// Parameters are stored aligned to sizeof(int64_t).
|
||||
// So to calculate the maximum length we can use when brokering to the parent,
|
||||
// we take the max params buffer size, take off 8 for the aligned length and 6
|
||||
@ -19,6 +24,7 @@ namespace sandbox {
|
||||
// are wchar_t and the break before elements are uint8_t.
|
||||
static const std::ptrdiff_t kMaxBrokeredLen =
|
||||
(ActualCallParams<3, kIPCChannelSize>::MaxParamsSize() - 8 - 6 - 7) / 3;
|
||||
#endif
|
||||
|
||||
} // namespace sandbox
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user