WebKit Bugzilla
Attachment 345945 Details for
Bug 154533
: number-toLocaleString.js test fails on ARM Linux buildbots
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-154533-20180727141520.patch (text/plain), 19.54 KB, created by
Andy VanWagoner
on 2018-07-27 13:15:21 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Andy VanWagoner
Created:
2018-07-27 13:15:21 PDT
Size:
19.54 KB
patch
obsolete
>Subversion Revision: 234314 >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 7ee24bd49ac60e87725816c069ed44622e2cc0ee..c2584c5384c9f4699def1e37ea8aed8a3ffc7c6f 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,25 @@ >+2018-07-27 Andy VanWagoner <andy@vanwagoner.family> >+ >+ number-toLocaleString.js test fails on ARM Linux buildbots >+ https://bugs.webkit.org/show_bug.cgi?id=154533 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Removed assumed default locale in Intl tests. The default is tested to >+ verify that it is a string, and a canonicalized language tag. All other >+ test cases explicitly use a locale when they expect a localized value. >+ >+ * js/intl-collator-expected.txt: >+ * js/intl-datetimeformat-expected.txt: >+ * js/intl-default-locale-expected.txt: >+ * js/intl-default-locale.html: >+ * js/intl-numberformat-expected.txt: >+ * js/intl-pluralrules-expected.txt: >+ * js/script-tests/intl-collator.js: >+ * js/script-tests/intl-datetimeformat.js: >+ * js/script-tests/intl-numberformat.js: >+ * js/script-tests/intl-pluralrules.js: >+ > 2018-07-27 Basuke Suzuki <Basuke.Suzuki@sony.com> > > [Curl] Set correct source info to ResourceResponse. >diff --git a/LayoutTests/js/intl-collator-expected.txt b/LayoutTests/js/intl-collator-expected.txt >index c483dad120a7d3f18a4ebbaaefec586a42c60d15..40f45fbab7d501b28f2b8b4cc53f20d52ba9453f 100644 >--- a/LayoutTests/js/intl-collator-expected.txt >+++ b/LayoutTests/js/intl-collator-expected.txt >@@ -16,10 +16,9 @@ PASS Intl.Collator('en', 42) is an instance of Intl.Collator > PASS Intl.Collator('en', null) threw exception TypeError: null is not an object (evaluating 'Intl.Collator('en', null)'). > PASS class DerivedCollator extends Intl.Collator {};(new DerivedCollator) instanceof DerivedCollator is true > PASS class DerivedCollator extends Intl.Collator {};(new DerivedCollator) instanceof Intl.Collator is true >-PASS class DerivedCollator extends Intl.Collator {};new DerivedCollator().compare('a', 'b') === -1 is true >+PASS class DerivedCollator extends Intl.Collator {};new DerivedCollator('en').compare('a', 'b') === -1 is true > PASS class DerivedCollator extends Intl.Collator {};Object.getPrototypeOf(new DerivedCollator) === DerivedCollator.prototype is true > PASS class DerivedCollator extends Intl.Collator {};Object.getPrototypeOf(Object.getPrototypeOf(new DerivedCollator)) === Intl.Collator.prototype is true >-PASS testCollator(Intl.Collator(), [{locale: 'en-US'}]) is true > PASS testCollator(Intl.Collator('en'), [{locale: 'en'}]) is true > PASS testCollator(Intl.Collator('eN-uS'), [{locale: 'en-US'}]) is true > PASS testCollator(Intl.Collator(['en', 'de']), [{locale: 'en'}]) is true >diff --git a/LayoutTests/js/intl-datetimeformat-expected.txt b/LayoutTests/js/intl-datetimeformat-expected.txt >index ddbd00ad4de028e5460777f506d7a1d0bda50cf3..0ccebb01944028320ba54edf03694a12088e553f 100644 >--- a/LayoutTests/js/intl-datetimeformat-expected.txt >+++ b/LayoutTests/js/intl-datetimeformat-expected.txt >@@ -9,7 +9,7 @@ PASS Intl.DateTimeFormat.call({}) is an instance of Intl.DateTimeFormat > PASS new Intl.DateTimeFormat() is an instance of Intl.DateTimeFormat > PASS class DerivedDateTimeFormat extends Intl.DateTimeFormat {};(new DerivedDateTimeFormat) instanceof DerivedDateTimeFormat is true > PASS class DerivedDateTimeFormat extends Intl.DateTimeFormat {};(new DerivedDateTimeFormat) instanceof Intl.DateTimeFormat is true >-PASS class DerivedDateTimeFormat extends Intl.DateTimeFormat {};new DerivedDateTimeFormat().format(0).length > 0 is true >+PASS class DerivedDateTimeFormat extends Intl.DateTimeFormat {};new DerivedDateTimeFormat('en').format(0).length > 0 is true > PASS class DerivedDateTimeFormat extends Intl.DateTimeFormat {};Object.getPrototypeOf(new DerivedDateTimeFormat) === DerivedDateTimeFormat.prototype is true > PASS class DerivedDateTimeFormat extends Intl.DateTimeFormat {};Object.getPrototypeOf(Object.getPrototypeOf(new DerivedDateTimeFormat)) === Intl.DateTimeFormat.prototype is true > PASS Intl.DateTimeFormat.length is 0 >@@ -92,7 +92,6 @@ PASS Intl.DateTimeFormat.prototype.resolvedOptions() threw exception TypeError: > PASS Intl.DateTimeFormat.prototype.resolvedOptions.call(5) threw exception TypeError: Intl.DateTimeFormat.prototype.resolvedOptions called on value that's not an object initialized as a DateTimeFormat. > PASS Intl.DateTimeFormat('$') threw exception RangeError: invalid language tag: $. > PASS Intl.DateTimeFormat('en', null) threw exception TypeError: null is not an object (evaluating 'Intl.DateTimeFormat('en', null)'). >-PASS Intl.DateTimeFormat().resolvedOptions().locale is 'en-US' > PASS Intl.DateTimeFormat('en').resolvedOptions().weekday is undefined > PASS Intl.DateTimeFormat('en').resolvedOptions().era is undefined > PASS Intl.DateTimeFormat('en').resolvedOptions().month is 'numeric' >diff --git a/LayoutTests/js/intl-default-locale-expected.txt b/LayoutTests/js/intl-default-locale-expected.txt >index 233f26ee88224bc6b4983dbfcec3b2ef53ed528e..719581baaaae9459b1dee4fbabda766582780ac9 100644 >--- a/LayoutTests/js/intl-default-locale-expected.txt >+++ b/LayoutTests/js/intl-default-locale-expected.txt >@@ -1,3 +1,14 @@ >+This test checks the default locale behavior of Intl constructors. >+ >+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". >+ >+ >+PASS typeof new Intl.DateTimeFormat().resolvedOptions().locale is 'string' >+PASS typeof new Intl.NumberFormat().resolvedOptions().locale is 'string' >+PASS typeof new Intl.Collator().resolvedOptions().locale is 'string' >+PASS Intl.getCanonicalLocales(new Intl.DateTimeFormat().resolvedOptions().locale)[0] is new Intl.DateTimeFormat().resolvedOptions().locale >+PASS Intl.getCanonicalLocales(new Intl.NumberFormat().resolvedOptions().locale)[0] is new Intl.NumberFormat().resolvedOptions().locale >+PASS Intl.getCanonicalLocales(new Intl.Collator().resolvedOptions().locale)[0] is new Intl.NumberFormat().resolvedOptions().locale > PASS new Intl.DateTimeFormat().resolvedOptions().locale is 'tlh' > PASS new Intl.NumberFormat().resolvedOptions().locale is 'tlh' > PASS new Intl.Collator().resolvedOptions().locale is 'tlh' >diff --git a/LayoutTests/js/intl-default-locale.html b/LayoutTests/js/intl-default-locale.html >index b105958c497137408b213a8e34e65df1ac0ed32a..8fcd8d895ed0635c372f680646e1b58fc8c9a667 100644 >--- a/LayoutTests/js/intl-default-locale.html >+++ b/LayoutTests/js/intl-default-locale.html >@@ -6,15 +6,27 @@ > </head> > <body> > <script> >+description("This test checks the default locale behavior of Intl constructors."); >+ >+// Actual default should always be a string >+shouldBe("typeof new Intl.DateTimeFormat().resolvedOptions().locale", "'string'"); >+shouldBe("typeof new Intl.NumberFormat().resolvedOptions().locale", "'string'"); >+shouldBe("typeof new Intl.Collator().resolvedOptions().locale", "'string'"); >+ >+// Actual default should always be canonicalized >+shouldBe("Intl.getCanonicalLocales(new Intl.DateTimeFormat().resolvedOptions().locale)[0]", "new Intl.DateTimeFormat().resolvedOptions().locale"); >+shouldBe("Intl.getCanonicalLocales(new Intl.NumberFormat().resolvedOptions().locale)[0]", "new Intl.NumberFormat().resolvedOptions().locale"); >+shouldBe("Intl.getCanonicalLocales(new Intl.Collator().resolvedOptions().locale)[0]", "new Intl.NumberFormat().resolvedOptions().locale"); >+ > if (window.internals) { > // Any language name with less than two characters is considered invalid, so we use "a" here. > // "i-klingon" is grandfathered, and is canonicalized "tlh". > // It should not be part of any available locale sets, so we know it came from here. > window.internals.setUserPreferredLanguages([ "a", "*", "en_US.utf8", "i-klingon", "en-US" ]); >+ shouldBe("new Intl.DateTimeFormat().resolvedOptions().locale", "'tlh'"); >+ shouldBe("new Intl.NumberFormat().resolvedOptions().locale", "'tlh'"); >+ shouldBe("new Intl.Collator().resolvedOptions().locale", "'tlh'"); > } >-shouldBe("new Intl.DateTimeFormat().resolvedOptions().locale", "'tlh'"); >-shouldBe("new Intl.NumberFormat().resolvedOptions().locale", "'tlh'"); >-shouldBe("new Intl.Collator().resolvedOptions().locale", "'tlh'"); > </script> > <script src="../resources/js-test-post.js"></script> > </body> >diff --git a/LayoutTests/js/intl-numberformat-expected.txt b/LayoutTests/js/intl-numberformat-expected.txt >index 32e080aad27d0bd9ee151fdb307041d28e0d8b4c..a6163969727f8e9d40a05bbc92e79d8b66f16973 100644 >--- a/LayoutTests/js/intl-numberformat-expected.txt >+++ b/LayoutTests/js/intl-numberformat-expected.txt >@@ -9,10 +9,9 @@ PASS Intl.NumberFormat.call({}) is an instance of Intl.NumberFormat > PASS new Intl.NumberFormat() is an instance of Intl.NumberFormat > PASS class DerivedNumberFormat extends Intl.NumberFormat {};(new DerivedNumberFormat) instanceof DerivedNumberFormat is true > PASS class DerivedNumberFormat extends Intl.NumberFormat {};(new DerivedNumberFormat) instanceof Intl.NumberFormat is true >-PASS class DerivedNumberFormat extends Intl.NumberFormat {};new DerivedNumberFormat().format(1) === '1' is true >+PASS class DerivedNumberFormat extends Intl.NumberFormat {};new DerivedNumberFormat('en').format(1) === '1' is true > PASS class DerivedNumberFormat extends Intl.NumberFormat {};Object.getPrototypeOf(new DerivedNumberFormat) === DerivedNumberFormat.prototype is true > PASS class DerivedNumberFormat extends Intl.NumberFormat {};Object.getPrototypeOf(Object.getPrototypeOf(new DerivedNumberFormat)) === Intl.NumberFormat.prototype is true >-PASS testNumberFormat(Intl.NumberFormat(), [{locale: 'en-US'}]) is true > PASS testNumberFormat(Intl.NumberFormat('en'), [{locale: 'en'}]) is true > PASS testNumberFormat(Intl.NumberFormat('eN-uS'), [{locale: 'en-US'}]) is true > PASS testNumberFormat(Intl.NumberFormat(['en', 'de']), [{locale: 'en'}]) is true >diff --git a/LayoutTests/js/intl-pluralrules-expected.txt b/LayoutTests/js/intl-pluralrules-expected.txt >index dd8f9c7ff55328cfa692e7a5dba10ed32ce3d6de..d683fb3cedc1a8bfbd25a7dcb6d30841c8dbf8b2 100644 >--- a/LayoutTests/js/intl-pluralrules-expected.txt >+++ b/LayoutTests/js/intl-pluralrules-expected.txt >@@ -11,7 +11,7 @@ PASS new Intl.PluralRules('en', null) threw exception TypeError: null is not an > PASS new Intl.PluralRules() is an instance of Intl.PluralRules > PASS class DerivedPluralRules extends Intl.PluralRules {};(new DerivedPluralRules) instanceof DerivedPluralRules is true > PASS class DerivedPluralRules extends Intl.PluralRules {};(new DerivedPluralRules) instanceof Intl.PluralRules is true >-PASS class DerivedPluralRules extends Intl.PluralRules {};new DerivedPluralRules().select(1) === 'one' is true >+PASS class DerivedPluralRules extends Intl.PluralRules {};new DerivedPluralRules('en').select(1) === 'one' is true > PASS class DerivedPluralRules extends Intl.PluralRules {};Object.getPrototypeOf(new DerivedPluralRules) === DerivedPluralRules.prototype is true > PASS class DerivedPluralRules extends Intl.PluralRules {};Object.getPrototypeOf(Object.getPrototypeOf(new DerivedPluralRules)) === Intl.PluralRules.prototype is true > PASS Intl.PluralRules.length is 0 >@@ -112,7 +112,6 @@ PASS Intl.PluralRules.prototype.resolvedOptions.call(5) threw exception TypeErro > PASS Intl.PluralRules.prototype.resolvedOptions.call({}) threw exception TypeError: Intl.PluralRules.prototype.resolvedOptions called on value that's not an object initialized as a PluralRules. > PASS defaultPluralRules.resolvedOptions() is an instance of Object > PASS defaultPluralRules.resolvedOptions() === defaultPluralRules.resolvedOptions() is false >-PASS defaultPluralRules.resolvedOptions().locale is 'en-US' > PASS defaultPluralRules.resolvedOptions().type is 'cardinal' > PASS defaultPluralRules.resolvedOptions().minimumIntegerDigits is 1 > PASS defaultPluralRules.resolvedOptions().minimumFractionDigits is 0 >diff --git a/LayoutTests/js/script-tests/intl-collator.js b/LayoutTests/js/script-tests/intl-collator.js >index cb3ccf36a6ccff5744fc4468e6f9a5caa7cd40a0..2151102f0afafbfe9eee85b576561a5bbacdfd86 100644 >--- a/LayoutTests/js/script-tests/intl-collator.js >+++ b/LayoutTests/js/script-tests/intl-collator.js >@@ -22,7 +22,7 @@ shouldThrow("Intl.Collator('en', null)", "'TypeError: null is not an object (eva > var classPrefix = "class DerivedCollator extends Intl.Collator {};"; > shouldBeTrue(classPrefix + "(new DerivedCollator) instanceof DerivedCollator"); > shouldBeTrue(classPrefix + "(new DerivedCollator) instanceof Intl.Collator"); >-shouldBeTrue(classPrefix + "new DerivedCollator().compare('a', 'b') === -1"); >+shouldBeTrue(classPrefix + "new DerivedCollator('en').compare('a', 'b') === -1"); > shouldBeTrue(classPrefix + "Object.getPrototypeOf(new DerivedCollator) === DerivedCollator.prototype"); > shouldBeTrue(classPrefix + "Object.getPrototypeOf(Object.getPrototypeOf(new DerivedCollator)) === Intl.Collator.prototype"); > >@@ -45,7 +45,6 @@ var testCollator = function(collator, possibleOptionDifferences) { > } > > // Locale is processed correctly. >-shouldBeTrue("testCollator(Intl.Collator(), [{locale: 'en-US'}])"); > shouldBeTrue("testCollator(Intl.Collator('en'), [{locale: 'en'}])"); > shouldBeTrue("testCollator(Intl.Collator('eN-uS'), [{locale: 'en-US'}])"); > shouldBeTrue("testCollator(Intl.Collator(['en', 'de']), [{locale: 'en'}])"); >@@ -234,7 +233,7 @@ shouldBeTrue("Object.getOwnPropertyDescriptor(Intl.Collator.prototype, Symbol.to > // 10.3.3 Intl.Collator.prototype.compare > > // This named accessor property returns a function that compares two strings according to the sort order of this Collator object. >-var defaultCollator = Intl.Collator(); >+var defaultCollator = Intl.Collator("en"); > shouldBeType("defaultCollator.compare", "Function"); > > // The value of the [[Get]] attribute is a function >diff --git a/LayoutTests/js/script-tests/intl-datetimeformat.js b/LayoutTests/js/script-tests/intl-datetimeformat.js >index a356c6253b8d53c650ce1fffc0a1424552a7847f..2040dccb108a2169a628edf5da43bc5fc754bd0f 100644 >--- a/LayoutTests/js/script-tests/intl-datetimeformat.js >+++ b/LayoutTests/js/script-tests/intl-datetimeformat.js >@@ -15,7 +15,7 @@ shouldBeType("new Intl.DateTimeFormat()", "Intl.DateTimeFormat"); > var classPrefix = "class DerivedDateTimeFormat extends Intl.DateTimeFormat {};"; > shouldBeTrue(classPrefix + "(new DerivedDateTimeFormat) instanceof DerivedDateTimeFormat"); > shouldBeTrue(classPrefix + "(new DerivedDateTimeFormat) instanceof Intl.DateTimeFormat"); >-shouldBeTrue(classPrefix + "new DerivedDateTimeFormat().format(0).length > 0"); >+shouldBeTrue(classPrefix + "new DerivedDateTimeFormat('en').format(0).length > 0"); > shouldBeTrue(classPrefix + "Object.getPrototypeOf(new DerivedDateTimeFormat) === DerivedDateTimeFormat.prototype"); > shouldBeTrue(classPrefix + "Object.getPrototypeOf(Object.getPrototypeOf(new DerivedDateTimeFormat)) === Intl.DateTimeFormat.prototype"); > >@@ -120,7 +120,7 @@ shouldBeTrue("Object.getOwnPropertyDescriptor(Intl.DateTimeFormat.prototype, Sym > // 12.4.3 Intl.DateTimeFormat.prototype.format > > // This named accessor property returns a function that formats a date according to the effective locale and the formatting options of this DateTimeFormat object. >-var defaultDTFormat = Intl.DateTimeFormat(); >+var defaultDTFormat = Intl.DateTimeFormat("en"); > shouldBeType("defaultDTFormat.format", "Function"); > > // The value of the [[Get]] attribute is a function >@@ -186,9 +186,6 @@ shouldThrow("Intl.DateTimeFormat.prototype.resolvedOptions.call(5)", "'TypeError > shouldThrow("Intl.DateTimeFormat('$')", "'RangeError: invalid language tag: $'"); > shouldThrow("Intl.DateTimeFormat('en', null)", '"TypeError: null is not an object (evaluating \'Intl.DateTimeFormat(\'en\', null)\')"'); > >-// Defaults to en-US locale in test runner >-shouldBe("Intl.DateTimeFormat().resolvedOptions().locale", "'en-US'"); >- > // Defaults to month, day, year. > shouldBe("Intl.DateTimeFormat('en').resolvedOptions().weekday", "undefined"); > shouldBe("Intl.DateTimeFormat('en').resolvedOptions().era", "undefined"); >diff --git a/LayoutTests/js/script-tests/intl-numberformat.js b/LayoutTests/js/script-tests/intl-numberformat.js >index bd81452356d08f12710e85d0a19c8b224ca6473c..52890e8b33af74864b668878404c4b9a507ac839 100644 >--- a/LayoutTests/js/script-tests/intl-numberformat.js >+++ b/LayoutTests/js/script-tests/intl-numberformat.js >@@ -15,7 +15,7 @@ shouldBeType("new Intl.NumberFormat()", "Intl.NumberFormat"); > var classPrefix = "class DerivedNumberFormat extends Intl.NumberFormat {};"; > shouldBeTrue(classPrefix + "(new DerivedNumberFormat) instanceof DerivedNumberFormat"); > shouldBeTrue(classPrefix + "(new DerivedNumberFormat) instanceof Intl.NumberFormat"); >-shouldBeTrue(classPrefix + "new DerivedNumberFormat().format(1) === '1'"); >+shouldBeTrue(classPrefix + "new DerivedNumberFormat('en').format(1) === '1'"); > shouldBeTrue(classPrefix + "Object.getPrototypeOf(new DerivedNumberFormat) === DerivedNumberFormat.prototype"); > shouldBeTrue(classPrefix + "Object.getPrototypeOf(Object.getPrototypeOf(new DerivedNumberFormat)) === Intl.NumberFormat.prototype"); > >@@ -42,7 +42,6 @@ function testNumberFormat(numberFormat, possibleDifferences) { > } > > // Locale is processed correctly. >-shouldBeTrue("testNumberFormat(Intl.NumberFormat(), [{locale: 'en-US'}])"); > shouldBeTrue("testNumberFormat(Intl.NumberFormat('en'), [{locale: 'en'}])"); > shouldBeTrue("testNumberFormat(Intl.NumberFormat('eN-uS'), [{locale: 'en-US'}])"); > shouldBeTrue("testNumberFormat(Intl.NumberFormat(['en', 'de']), [{locale: 'en'}])"); >@@ -269,7 +268,7 @@ shouldBeTrue("Object.getOwnPropertyDescriptor(Intl.NumberFormat.prototype, Symbo > // 11.4.3 Intl.NumberFormat.prototype.format > > // This named accessor property returns a function that formats a number according to the effective locale and the formatting options of this NumberFormat object. >-var defaultNFormat = Intl.NumberFormat(); >+var defaultNFormat = Intl.NumberFormat("en"); > shouldBeType("defaultNFormat.format", "Function"); > > // The value of the [[Get]] attribute is a function >diff --git a/LayoutTests/js/script-tests/intl-pluralrules.js b/LayoutTests/js/script-tests/intl-pluralrules.js >index 3b924842aa8fa909acc33c8b29febaab6b8142c2..c2e8ca9157697ab602220130cc22cc87f5b67cb1 100644 >--- a/LayoutTests/js/script-tests/intl-pluralrules.js >+++ b/LayoutTests/js/script-tests/intl-pluralrules.js >@@ -25,7 +25,7 @@ shouldBeType("new Intl.PluralRules()", "Intl.PluralRules"); > var classPrefix = "class DerivedPluralRules extends Intl.PluralRules {};"; > shouldBeTrue(classPrefix + "(new DerivedPluralRules) instanceof DerivedPluralRules"); > shouldBeTrue(classPrefix + "(new DerivedPluralRules) instanceof Intl.PluralRules"); >-shouldBeTrue(classPrefix + "new DerivedPluralRules().select(1) === 'one'"); >+shouldBeTrue(classPrefix + "new DerivedPluralRules('en').select(1) === 'one'"); > shouldBeTrue(classPrefix + "Object.getPrototypeOf(new DerivedPluralRules) === DerivedPluralRules.prototype"); > shouldBeTrue(classPrefix + "Object.getPrototypeOf(Object.getPrototypeOf(new DerivedPluralRules)) === Intl.PluralRules.prototype"); > >@@ -139,7 +139,7 @@ shouldBeTrue("new Intl.PluralRules().select === new Intl.PluralRules().select"); > // assume a length of 1 since it expects a value. > shouldBe("Intl.PluralRules.prototype.select.length", "1"); > >-var defaultPluralRules = new Intl.PluralRules(); >+var defaultPluralRules = new Intl.PluralRules("en"); > > // Let pr be the this value. > // If Type(pr) is not Object, throw a TypeError exception. >@@ -197,9 +197,6 @@ shouldBeFalse("defaultPluralRules.resolvedOptions() === defaultPluralRules.resol > // For each row of Table 8, except the header row, ... > // Return options. > >-// Defaults to en-US locale in test runner >-shouldBe("defaultPluralRules.resolvedOptions().locale", "'en-US'"); >- > // Defaults to cardinal. > shouldBe("defaultPluralRules.resolvedOptions().type", "'cardinal'"); > shouldBe("defaultPluralRules.resolvedOptions().minimumIntegerDigits", "1");
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 154533
: 345945 |
345985