Backed out 5 changesets (bug 1421938) for causing a bustage in /builds/worker/workspace/build/src/intl/locale/cldr-quotes.inc:21:448 CLOSED TREE

Backed out changeset 3958f2af0e34 (bug 1421938)
Backed out changeset 89a0866d1aa0 (bug 1421938)
Backed out changeset f150702af11f (bug 1421938)
Backed out changeset b8ebd4d241e0 (bug 1421938)
Backed out changeset 1d38eb5eff6e (bug 1421938)
This commit is contained in:
shindli 2019-07-08 23:09:34 +03:00
Родитель 3836f557ea
Коммит 2c12986a7f
83 изменённых файлов: 38 добавлений и 1263 удалений

Просмотреть файл

@ -9020,7 +9020,6 @@ exports.CSS_PROPERTIES = {
],
"supports": [],
"values": [
"auto",
"inherit",
"initial",
"none",

Просмотреть файл

@ -1,78 +0,0 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode:nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "Quotes.h"
#include "MozLocale.h"
#include "mozilla/ClearOnShutdown.h"
#include "mozilla/StaticPtr.h"
#include "nsDataHashtable.h"
#include "nsPrintfCString.h"
using namespace mozilla;
using namespace mozilla::intl;
namespace {
struct LangQuotesRec {
const char* mLangs;
Quotes mQuotes;
};
#include "cldr-quotes.inc"
static StaticAutoPtr<nsDataHashtable<nsCStringHashKey, Quotes>> sQuotesForLang;
} // anonymous namespace
namespace mozilla {
namespace intl {
const Quotes* QuotesForLang(const nsAtom* aLang) {
MOZ_ASSERT(NS_IsMainThread());
// On first use, initialize the hashtable from our CLDR-derived data array.
if (!sQuotesForLang) {
sQuotesForLang = new nsDataHashtable<nsCStringHashKey, Quotes>(32);
ClearOnShutdown(&sQuotesForLang);
for (const auto& i : sLangQuotes) {
const char* s = i.mLangs;
size_t len;
while ((len = strlen(s))) {
sQuotesForLang->Put(nsDependentCString(s, len), i.mQuotes);
s += len + 1;
}
}
}
nsAtomCString langStr(aLang);
const Quotes* entry = sQuotesForLang->GetValue(langStr);
if (entry) {
// Found an exact match for the requested lang.
return entry;
}
// Try parsing lang as a Locale (which will also canonicalize case of the
// subtags), then see if we can match it with region or script subtags,
// if present, or just the primary language tag.
Locale loc(langStr);
if (loc.IsWellFormed()) {
if (!loc.GetRegion().IsEmpty() &&
(entry = sQuotesForLang->GetValue(nsPrintfCString(
"%s-%s", loc.GetLanguage().get(), loc.GetRegion().get())))) {
return entry;
}
if (!loc.GetScript().IsEmpty() &&
(entry = sQuotesForLang->GetValue(nsPrintfCString(
"%s-%s", loc.GetLanguage().get(), loc.GetScript().get())))) {
return entry;
}
if ((entry = sQuotesForLang->GetValue(loc.GetLanguage()))) {
return entry;
}
}
return nullptr;
}
} // namespace intl
} // namespace mozilla

Просмотреть файл

@ -1,35 +0,0 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode:nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef mozilla_intl_Quotes_h__
#define mozilla_intl_Quotes_h__
#include "nsAtom.h"
namespace mozilla {
namespace intl {
// Currently, all the quotation characters provided by CLDR are single BMP
// codepoints, so they fit into char16_t fields. If there are ever multi-
// character strings or non-BMP codepoints in a future version, we'll need
// to extend this to a larger/more flexible structure, but for now it's
// deliberately kept simple and lightweight.
struct Quotes {
// Entries in order [open, close, alternativeOpen, alternativeClose]
char16_t mChars[4];
};
/**
* Return a pointer to the Quotes record for the given locale (lang attribute),
* or nullptr if none available.
* The returned value points to a hashtable entry, but will remain valid until
* shutdown begins, as the table is not modified after initialization.
*/
const Quotes* QuotesForLang(const nsAtom* aLang);
} // namespace intl
} // namespace mozilla
#endif // mozilla_intl_Quotes_h__

Просмотреть файл

@ -1,45 +0,0 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/*
* Derived from the Unicode Common Locale Data Repository by cldr-quotes.pl.
*
* For terms of use, see http://www.unicode.org/copyright.html.
*/
/*
* Created on Fri Jul 5 20:02:29 2019 from CLDR data file cldr-common-35.1.zip.
*
* * * * * This file contains MACHINE-GENERATED DATA, do not edit! * * * * *
*
* (generated by intl/locale/cldr-quotes.pl)
*/
static const LangQuotesRec sLangQuotes[] = {
// clang-format off
{ "af\0ak\0as\0asa\0az\0bem\0bez\0bn\0brx\0ccp\0ceb\0cgg\0chr\0cy\0da\0dav\0dje\0dz\0ebu\0ee\0en\0fil\0fo\0ga\0gd\0gl\0gu\0guz\0ha\0id\0ig\0jmc\0jv\0kam\0kde\0kea\0khq\0ki\0kln\0km\0kn\0kok\0ksb\0ku\0lg\0ln\0lo\0lrc\0lu\0luo\0lv\0mas\0mer\0mfe\0mgo\0mi\0ml\0mn\0mr\0ms\0mt\0my\0naq\0nd\0ne\0nus\0nyn\0or\0ps\0rof\0rwk\0saq\0sbp\0sd\0seh\0ses\0si\0so\0sw\0te\0teo\0th\0to\0tr\0tt\0twq\0tzm\0uz-Cyrl\0vai\0vun\0wo\0xog\0yo\0yue-Hans\0zh\0zu\0", { 0x201c, 0x201d, 0x2018, 0x2019 } },
{ "agq\0ff\0", { 0x201e, 0x201d, 0x201a, 0x2019 } },
{ "am\0az-Cyrl\0fa\0fr-CH\0gsw\0jgo\0kkj\0mzn\0", { 0xab, 0xbb, 0x2039, 0x203a } },
{ "ar\0ur\0", { 0x201d, 0x201c, 0x2019, 0x2018 } },
{ "ast\0bm\0ca\0dyo\0el\0es\0ewo\0it\0kab\0kk\0mg\0mua\0nnh\0pt-PT\0sg\0sq\0", { 0xab, 0xbb, 0x201c, 0x201d } },
{ "bas\0be\0ky\0ru\0sah\0uk\0", { 0xab, 0xbb, 0x201e, 0x201c } },
{ "bg\0lt\0", { 0x201e, 0x201c, 0x201e, 0x201c } },
{ "br\0", { 0x201c, 0x201d, 0xab, 0xbb } },
{ "bs-Cyrl\0cs\0de\0dsb\0et\0hr\0hsb\0is\0lb\0luy\0mk\0sk\0sl\0", { 0x201e, 0x201c, 0x201a, 0x2018 } },
{ "bs\0", { 0x201e, 0x201d, 0x2018, 0x2019 } },
{ "dua\0ksf\0nb\0nn\0rw\0", { 0xab, 0xbb, 0x2018, 0x2019 } },
{ "es-419\0eu\0tk\0", { 0x201c, 0x201d, 0x201c, 0x201d } },
{ "fi\0he\0lag\0rn\0sn\0sv\0", { 0x201d, 0x201d, 0x2019, 0x2019 } },
{ "fr-CA\0", { 0xab, 0xbb, 0x201d, 0x201c } },
{ "fr\0hy\0tg\0yav\0", { 0xab, 0xbb, 0xab, 0xbb } },
{ "hu\0", { 0x201e, 0x201d, 0xbb, 0xab } },
{ "ia\0nl\0ti-ER\0xh\0", { 0x2018, 0x2019, 0x201c, 0x201d } },
{ "ja\0yue\0zh-Hant\0", { 0x300c, 0x300d, 0x300e, 0x300f } },
{ "ka\0", { 0x201e, 0x201c, 0xab, 0xbb } },
{ "nmg\0pl\0ro\0", { 0x201e, 0x201d, 0xab, 0xbb } },
{ "shi\0zgh\0", { 0xab, 0xbb, 0x201e, 0x201d } },
{ "sr\0", { 0x201e, 0x201c, 0x2018, 0x2018 } },
{ "uz\0", { 0x201c, 0x201d, 0x2019, 0x2018 } },
// clang-format on
};

Просмотреть файл

@ -1,104 +0,0 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# Tool to generate the cldr-quotes.inc file, to be #include'd in Quotes.cpp
# to provide locale-appropriate opening and closing quote marks.
# To regenerate cldr-quotes.inc for a new CLDR release, download the data file
# "cldr-common-##.zip" from http://unicode.org/Public/cldr/latest into the
# current directory, update the $filename variable below accordingly, run
#
# perl cldr-quotes.pl > cldr-quotes.inc
#
# then use `hg diff` to check that the result looks sane.
use warnings;
use strict;
use Encode;
use IO::Uncompress::Unzip;
my $filename = 'cldr-common-35.1.zip';
my (%langQuotes, %quoteLangs);
my $zip = IO::Uncompress::Unzip->new($filename) ||
die "unzip failed: $IO::Uncompress::Unzip::UnzipError\n";
my $status = 1;
while ($status > 0) {
my $name = $zip->getHeaderInfo()->{Name};
if ($name =~ m@common/main/([A-Za-z0-9_]+)\.xml@) {
my $lang = $1;
$lang =~ s/_/-/;
while (<$zip>) {
$langQuotes{$lang}[0] = $1 if (m!<quotationStart>(.+)<!);
$langQuotes{$lang}[1] = $1 if (m!<quotationEnd>(.+)<!);
$langQuotes{$lang}[2] = $1 if (m!<alternateQuotationStart>(.+)<!);
$langQuotes{$lang}[3] = $1 if (m!<alternateQuotationEnd>(.+)<!);
}
}
$status = $zip->nextStream();
}
$zip->close;
foreach my $lang (sort keys %langQuotes) {
# We don't actually want to emit anything for the root locale
next if $lang eq "root";
# Inherit any missing entries from the locale's parent
my $parent = $lang;
while ($parent =~ m/\-/) {
# Strip off a trailing subtag to find a parent locale code
$parent =~ s/\-[^-]+$//;
# Fill in any values available from the parent
for (my $i = 0; $i < 4; $i++) {
$langQuotes{$lang}[$i] = $langQuotes{$parent}[$i] unless $langQuotes{$lang}[$i];
}
}
# Anything still missing is copied from the root locale
for (my $i = 0; $i < 4; $i++) {
$langQuotes{$lang}[$i] = $langQuotes{"root"}[$i] unless $langQuotes{$lang}[$i];
}
# If the locale ends up the same as its parent, skip
next if ($parent ne $lang) && (exists $langQuotes{$parent}) &&
(join(",", @{$langQuotes{$lang}}) eq join(",", @{$langQuotes{$parent}}));
# Create a string with the C source form for the array of 4 quote characters
my $quoteChars = join(", ", map { sprintf("0x%x", ord Encode::decode("UTF-8", $_)) } @{$langQuotes{$lang}});
# Record this locale in the list of those which use this particular set of quotes
$quoteLangs{$quoteChars} = [] unless exists $quoteLangs{$quoteChars};
push $quoteLangs{$quoteChars}, $lang;
}
# Output each unique list of quotes, with the string of associated locales
my $timestamp = gmtime();
print <<__EOT__;
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/*
* Derived from the Unicode Common Locale Data Repository by cldr-quotes.pl.
*
* For terms of use, see http://www.unicode.org/copyright.html.
*/
/*
* Created on $timestamp from CLDR data file $filename.
*
* * * * * This file contains MACHINE-GENERATED DATA, do not edit! * * * * *
*
* (generated by intl/locale/cldr-quotes.pl)
*/
__EOT__
print "static const LangQuotesRec sLangQuotes[] = {\n";
print " // clang-format off\n";
print sort map { sprintf(" { \"%s\\0\", { %s } },\n", join("\\0", sort @{$quoteLangs{$_}}), $_) } (keys %quoteLangs);
print " // clang-format on\n";
print "};\n";

Просмотреть файл

@ -36,7 +36,6 @@ EXPORTS.mozilla.intl += [
'LocaleService.h',
'MozLocale.h',
'OSPreferences.h',
'Quotes.h',
]
UNIFIED_SOURCES += [
@ -48,7 +47,6 @@ UNIFIED_SOURCES += [
'nsLanguageAtomService.cpp',
'nsUConvPropertySearch.cpp',
'OSPreferences.cpp',
'Quotes.cpp',
]
EXTRA_JS_MODULES += [

Просмотреть файл

@ -11,7 +11,6 @@
#include "nsIContent.h"
#include "mozilla/ErrorResult.h"
#include "mozilla/dom/Text.h"
#include "mozilla/intl/Quotes.h"
using namespace mozilla;
@ -42,30 +41,8 @@ nsString nsQuoteNode::Text() {
int32_t depth = Depth();
MOZ_ASSERT(depth >= -1);
if (depth < 0) {
return result;
}
const auto& quotesProp = mPseudoFrame->StyleList()->mQuotes;
if (quotesProp.IsAuto()) {
// Look up CLDR-derived quotation marks for current language;
// if none available, use built-in default.
const intl::Quotes* quotes =
intl::QuotesForLang(mPseudoFrame->StyleFont()->mLanguage);
if (!quotes) {
static const intl::Quotes sDefaultQuotes = {0x201c, 0x201d, 0x2018,
0x2019};
quotes = &sDefaultQuotes;
}
size_t index = (depth == 0 ? 0 : 2); // select first or second pair
index += (mType == StyleContentType::OpenQuote ? 0 : 1); // open or close
result.Append(quotes->mChars[index]);
return result;
}
MOZ_ASSERT(quotesProp.IsQuoteList());
const Span<const StyleQuotePair> quotes = quotesProp.AsQuoteList().AsSpan();
Span<const StyleQuotePair> quotes =
mPseudoFrame->StyleList()->mQuotes._0.AsSpan();
// Reuse the last pair when the depth is greater than the number of
// pairs of quotes. (Also make 'quotes: none' and close-quote from

Просмотреть файл

@ -156,7 +156,7 @@ function do_test() {
var prop = "quotes"
var values = InspectorUtils.getCSSValuesForProperty(prop);
var expected = [ "inherit", "initial", "unset", "revert", "auto", "none" ];
var expected = [ "inherit", "initial", "unset", "none", "revert" ];
ok(testValues(values, expected), "property quotes's values.");
// Regression test for bug 1255384.

Просмотреть файл

@ -542,7 +542,7 @@ nsChangeHint nsStyleOutline::CalcDifference(
//
nsStyleList::nsStyleList(const Document& aDocument)
: mListStylePosition(NS_STYLE_LIST_STYLE_POSITION_OUTSIDE),
mQuotes(StyleQuotes::Auto()),
mQuotes{StyleArcSlice<StyleQuotePair>(Servo_Quotes_GetInitialValue())},
mMozListReversed(StyleMozListReversed::False) {
MOZ_COUNT_CTOR(nsStyleList);
MOZ_ASSERT(NS_IsMainThread());

Просмотреть файл

@ -7116,15 +7116,12 @@ var gCSSProperties = {
domProp: "quotes",
inherited: true,
type: CSS_TYPE_LONGHAND,
initial_values: ["auto"],
other_values: [
"none",
"'\"' '\"'",
"'' ''",
initial_values: [
'"\u201C" "\u201D" "\u2018" "\u2019"',
'"\\201C" "\\201D" "\\2018" "\\2019"',
],
invalid_values: ["'\"'", '"" "" ""'],
other_values: ["none", "'\"' '\"'"],
invalid_values: [],
},
right: {
domProp: "right",

Просмотреть файл

@ -7,12 +7,28 @@
#[cfg(feature = "gecko")]
pub use crate::values::specified::list::ListStyleType;
pub use crate::values::specified::list::MozListReversed;
pub use crate::values::specified::list::Quotes;
pub use crate::values::specified::list::{QuotePair, Quotes};
lazy_static! {
static ref INITIAL_QUOTES: crate::ArcSlice<QuotePair> = crate::ArcSlice::from_iter_leaked(
vec![
QuotePair {
opening: "\u{201c}".to_owned().into(),
closing: "\u{201d}".to_owned().into(),
},
QuotePair {
opening: "\u{2018}".to_owned().into(),
closing: "\u{2019}".to_owned().into(),
},
]
.into_iter()
);
}
impl Quotes {
/// Initial value for `quotes`.
#[inline]
pub fn get_initial_value() -> Quotes {
Quotes::Auto
Quotes(INITIAL_QUOTES.clone())
}
}

Просмотреть файл

@ -64,7 +64,7 @@ pub use self::length::{NonNegativeLengthPercentage, NonNegativeLengthPercentageO
#[cfg(feature = "gecko")]
pub use self::list::ListStyleType;
pub use self::list::MozListReversed;
pub use self::list::Quotes;
pub use self::list::{QuotePair, Quotes};
pub use self::motion::{OffsetPath, OffsetRotate};
pub use self::outline::OutlineStyle;
pub use self::percentage::{NonNegativePercentage, Percentage};

Просмотреть файл

@ -104,7 +104,7 @@ pub struct QuotePair {
pub closing: crate::OwnedStr,
}
/// List of quote pairs for the specified/computed value of `quotes` property.
/// Specified and computed `quotes` property.
#[derive(
Clone,
Debug,
@ -117,53 +117,23 @@ pub struct QuotePair {
ToResolvedValue,
ToShmem,
)]
#[repr(transparent)]
pub struct QuoteList(
#[repr(C)]
pub struct Quotes(
#[css(iterable, if_empty = "none")]
#[ignore_malloc_size_of = "Arc"]
pub crate::ArcSlice<QuotePair>,
);
/// Specified and computed `quotes` property: `auto`, `none`, or a list
/// of characters.
///
/// cbindgen:derive-tagged-enum-copy-constructor=true
#[derive(
Clone,
Debug,
MallocSizeOf,
PartialEq,
SpecifiedValueInfo,
ToComputedValue,
ToCss,
ToResolvedValue,
ToShmem,
)]
#[repr(C)]
pub enum Quotes {
/// list of quote pairs
QuoteList(QuoteList),
/// auto (use lang-dependent quote marks)
Auto,
}
impl Parse for Quotes {
fn parse<'i, 't>(
_: &ParserContext,
input: &mut Parser<'i, 't>,
) -> Result<Quotes, ParseError<'i>> {
if input
.try(|input| input.expect_ident_matching("auto"))
.is_ok()
{
return Ok(Quotes::Auto);
}
if input
.try(|input| input.expect_ident_matching("none"))
.is_ok()
{
return Ok(Quotes::QuoteList(QuoteList::default()))
return Ok(Self::default());
}
let mut quotes = Vec::new();
@ -180,7 +150,7 @@ impl Parse for Quotes {
}
if !quotes.is_empty() {
Ok(Quotes::QuoteList(QuoteList(crate::ArcSlice::from_iter(quotes.into_iter()))))
Ok(Quotes(crate::ArcSlice::from_iter(quotes.into_iter())))
} else {
Err(input.new_custom_error(StyleParseErrorKind::UnspecifiedError))
}

Просмотреть файл

@ -65,7 +65,7 @@ pub use self::length::{NonNegativeLengthPercentage, NonNegativeLengthPercentageO
#[cfg(feature = "gecko")]
pub use self::list::ListStyleType;
pub use self::list::MozListReversed;
pub use self::list::Quotes;
pub use self::list::{QuotePair, Quotes};
pub use self::motion::{OffsetPath, OffsetRotate};
pub use self::outline::OutlineStyle;
pub use self::percentage::Percentage;

Просмотреть файл

@ -320,15 +320,6 @@ renaming_overrides_prefixing = true
inline bool IsNone() const;
"""
"Quotes" = """
private:
// Private default constructor without initialization so that the helper
// constructor functions still work as expected. They take care of
// initializing the fields properly.
StyleQuotes() {}
public:
"""
# TODO(emilio): Add hooks to cbindgen to be able to generate MOZ_MUST_USE_TYPE
# or MOZ_MUST_USE on the functions.
"Owned" = """

Просмотреть файл

@ -6606,6 +6606,11 @@ pub unsafe extern "C" fn Servo_IsCssPropertyRecordedInUseCounter(
use_counters.non_custom_properties.recorded(non_custom_id)
}
#[no_mangle]
pub extern "C" fn Servo_Quotes_GetInitialValue() -> style_traits::arc_slice::ForgottenArcSlicePtr<specified::list::QuotePair> {
computed::Quotes::get_initial_value().0.forget()
}
#[no_mangle]
pub unsafe extern "C" fn Servo_SharedMemoryBuilder_Create(
buffer: *mut u8,

Просмотреть файл

@ -1,15 +0,0 @@
<!doctype html>
<html>
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Browser uses default quote marks when no lang is specified">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-001-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the <q>outer <q>quote marks</q> are double,
and the two sets of <q>inner</q> ones</q> are single.

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="en-US">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="The quotes property controls quote marks inserted by the q element">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-002-ref.html">
<style>
body { font: 32px serif; }
.test { quotes: "<" ">" ; }
</style>
<body>
Test passes if the word <q>quotes</q> is enclosed in curly quotes,
and <q class=test>angle brackets</q> in angle brackets.

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="en-US">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="The quotes property can specify different marks for nested quotes">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-003-ref.html">
<style>
body { font: 32px serif; }
.test { quotes: "<" ">" "[" "]"; }
</style>
<body>
<p class=test>Test passes if the <q>outer <q>quote marks</q> are angle brackets,
and the two sets of <q>inner</q> ones</q> are square brackets.

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="am">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Amharic quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-004-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q>አንድ <q>ሁለት</q> ሦስት</q>
<p>&#xab;አንድ &#x2039;ሁለት&#x203a; ሦስት&#xbb;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="ar">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Arabic quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-005-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p dir=rtl><q>واحد <q>اثنينل</q> ثلاثة</q>
<p dir=rtl>&#x201d;واحد &#x2019;اثنينل&#x2018; ثلاثة&#x201c;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="bn">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Bengali quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-006-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q>এক <q>দুই</q> তিন</q>
<p>&#x201c;এক &#x2018;দুই&#x2019; তিন&#x201d;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="chr">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Cherokee quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-007-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q>Ꮒꭶꮣ <q>ꭰꮒᏼꮻ</q> ꭴꮎꮥꮕꭲ</q>
<p>&#x201c;Ꮒꭶꮣ &#x2018;ꭰꮒᏼꮻ&#x2019; ꭴꮎꮥꮕꭲ&#x201d;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="el">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Greek quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-008-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q>ένα <q>δύο</q> τρία</q>
<p>&#xab;ένα &#x201c;δύο&#x201d; τρία&#xbb;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="fa">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Farsi quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-009-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q>یک <q>دو</q> سه</q>
<p>&#xab;یک &#x2039;دو&#x203a; سه&#xbb;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="fr">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="French quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-010-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q>un <q>deux</q> trois</q>
<p>&#xab;un &#xab;deux&#xbb; trois&#xbb;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="fr-CH">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Swiss-French quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-011-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q>un <q>deux</q> trois</q>
<p>&#xab;un &#x2039;deux&#x203a; trois&#xbb;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="gu">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Gujarati quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-012-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q>એક <q>બે</q> રણ</q>
<p>&#x201c;એક &#x2018;બે&#x2019; રણ&#x201d;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="he">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Hebrew quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-013-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p dir=rtl><q>אחת <q>שתיים</q> שלוש</q>
<p dir=rtl>&#x201d;אחת &#x2019;שתיים&#x2019; שלוש&#x201d;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="hi">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Hindi quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-014-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q>एक <q>दो</q> तीन</q>
<p>&#x201c;एक &#x2018;दो&#x2019; तीन&#x201d;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="hu">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Hungarian quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-015-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q>egy <q>kettő</q> három</q>
<p>&#x201e;egy &#xbb;kettő&#xab; három&#x201d;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="ja">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Japanese quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-016-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q><q></q></q>
<p>&#x300c;&#x300e;&#x300f;&#x300d;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="km">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Khmer quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-017-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q>មួយ <q>ពីរ</q> បី</q>
<p>&#x201c;មួយ &#x2018;ពីរ&#x2019; បី&#x201d;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="ko">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Korean quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-018-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q>하나 <q></q></q>
<p>&#x201c;하나 &#x2018;&#x2019;&#x201d;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="lo">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Lao quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-019-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q>ຫນຶ່ງ <q>ສອງ</q> ສາມ</q>
<p>&#x201c;ຫນຶ່ງ &#x2018;ສອງ&#x2019; ສາມ&#x201d;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="my">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Burmese quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-020-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q>တစ် <q>နှစ်</q> သုံး</q>
<p>&#x201c;တစ် &#x2018;နှစ်&#x2019; သုံး&#x201d;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="nl">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Dutch quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-021-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q>een <q>twee</q> drie</q>
<p>&#x2018;een &#x201c;twee&#x201d; drie&#x2019;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="pa">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Punjabi quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-022-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q>ਇੱਕ <q>ਦੋ</q> ਤਿੰਨ</q>
<p>&#x201c;ਇੱਕ &#x2018;ਦੋ&#x2019; ਤਿੰਨ&#x201d;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="ta">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Tamil quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-023-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q>ஒன்று <q>இரண்டு</q> மூன்று</q>
<p>&#x201c;ஒன்று &#x2018;இரண்டு&#x2019; மூன்று&#x201d;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="th">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Thai quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-024-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q>หนึ่ง<q>สอง</q>สาม</q>
<p>&#x201c;หนึ่ง&#x2018;สอง&#x2019;สาม&#x201d;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="zh-Hans">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Simplified Chinese quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-025-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q><q></q></q>
<p>&#x201c;&#x2018;&#x2019;&#x201d;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="zh-Hant">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Traditional Chinese quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-026-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q><q></q></q>
<p>&#x300c;&#x300e;&#x300f;&#x300d;

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="zh">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Chinese quotation marks follow CLDR">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#quotes">
<link rel=match href="reference/quotes-027-ref.html">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p><q><q></q></q>
<p>&#x201c;&#x2018;&#x2019;&#x201d;

Просмотреть файл

@ -1,15 +0,0 @@
<!doctype html>
<html lang="en">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Nested quotes use successive pairs, then repeat final pair">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel=match href="reference/quotes-028-ref.html">
<style>
body { font: 32px serif; quotes: "“" "”" "" "" "«" "»" "" ""; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>One <q>two <q>three <q>four <q>five <q>six</q></q></q></q></q>
<p>One “two three «four five six»

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="en">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="Nested quotes continue at the correct level when the quotes property is updated">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel=match href="reference/quotes-029-ref.html">
<style>
body { font: 32px serif; quotes: none; }
.q { quotes: "“" "”" "" "" "«" "»" "" ""; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>One <q>two <q>three <q class=q>four <q>five <q>six</q></q></q></q></q>
<p>One two three «four five six»

Просмотреть файл

@ -1,15 +0,0 @@
<!doctype html>
<html lang="en">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="quotes:auto with mixed languages uses appropriate CLDR quotes for each language">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel=match href="reference/quotes-030-ref.html">
<style>
body { font: 32px serif; quotes: auto; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>One <q>two <q lang="ja">three <q lang="fr">four</q></q></q>
<p>One “two <span lang="ja">『three <span lang="fr">«four»</span></span>

Просмотреть файл

@ -1,15 +0,0 @@
<!doctype html>
<html lang="en">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="language change does not override explicit quotes:<pair-list>">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel=match href="reference/quotes-031-ref.html">
<style>
body { font: 32px serif; quotes: "" ""; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>One <q>two <q lang="ja">three <q lang="fr">four</q></q></q>
<p>One two <span lang="ja">three <span lang="fr">four</span></span>

Просмотреть файл

@ -1,15 +0,0 @@
<!doctype html>
<html lang="en">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="lang attribute does not override explicit quotes:none setting">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel=match href="reference/quotes-032-ref.html">
<style>
body { font: 32px serif; quotes: none; }
</style>
<body>
<p>Test passes if both lines match, with no quote marks:
<p>One <q>two <q lang="ja">three <q lang="fr">four</q></q></q>
<p>One two <span lang="ja">three <span lang="fr">four</span></span>

Просмотреть файл

@ -1,16 +0,0 @@
<!doctype html>
<html lang="en">
<meta charset=utf-8>
<title>CSS Generated Content test: quotes</title>
<meta name="assert" content="quotes:auto resets default behavior after quotes:none">
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-content-3/#quotes">
<link rel=match href="reference/quotes-033-ref.html">
<style>
body { font: 32px serif; quotes: none; }
.inner { quotes: auto; }
</style>
<body>
<p>Test passes if quote marks in both lines match:
<p>One <q>two</q> <span class="inner"><q>three <q>four</q></q></span> <q>five</q>
<p>One two “three four” five

Просмотреть файл

@ -1,11 +0,0 @@
<!doctype html>
<html>
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the &#x201c;outer &#x2018;quote marks&#x2019; are double,
and the two sets of &#x2018;inner&#x2019; ones&#x201d; are single.

Просмотреть файл

@ -1,11 +0,0 @@
<!doctype html>
<html lang="en-US">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
Test passes if the word &#x201c;quotes&#x201d; is enclosed in curly quotes,
and &lt;angle brackets&gt; in angle brackets.

Просмотреть файл

@ -1,11 +0,0 @@
<!doctype html>
<html lang="en-US">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p class=test>Test passes if the &lt;outer [quote marks] are angle brackets,
and the two sets of [inner] ones&gt; are square brackets.

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="am">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#xab;አንድ &#x2039;ሁለት&#x203a; ሦስት&#xbb;
<p>&#xab;አንድ &#x2039;ሁለት&#x203a; ሦስት&#xbb;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="ar">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p dir=rtl>&#x201d;واحد &#x2019;اثنينل&#x2018; ثلاثة&#x201c;
<p dir=rtl>&#x201d;واحد &#x2019;اثنينل&#x2018; ثلاثة&#x201c;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="bn">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#x201c;এক &#x2018;দুই&#x2019; তিন&#x201d;
<p>&#x201c;এক &#x2018;দুই&#x2019; তিন&#x201d;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="chr">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#x201c;Ꮒꭶꮣ &#x2018;ꭰꮒᏼꮻ&#x2019; ꭴꮎꮥꮕꭲ&#x201d;
<p>&#x201c;Ꮒꭶꮣ &#x2018;ꭰꮒᏼꮻ&#x2019; ꭴꮎꮥꮕꭲ&#x201d;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="el">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#xab;ένα &#x201c;δύο&#x201d; τρία&#xbb;
<p>&#xab;ένα &#x201c;δύο&#x201d; τρία&#xbb;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="fa">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#xab;یک &#x2039;دو&#x203a; سه&#xbb;
<p>&#xab;یک &#x2039;دو&#x203a; سه&#xbb;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="fr">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#xab;un &#xab;deux&#xbb; trois&#xbb;
<p>&#xab;un &#xab;deux&#xbb; trois&#xbb;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="fr-CH">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#xab;un &#x2039;deux&#x203a; trois&#xbb;
<p>&#xab;un &#x2039;deux&#x203a; trois&#xbb;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="gu">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#x201c;એક &#x2018;બે&#x2019; રણ&#x201d;
<p>&#x201c;એક &#x2018;બે&#x2019; રણ&#x201d;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="he">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p dir=rtl>&#x201d;אחת &#x2019;שתיים&#x2019; שלוש&#x201d;
<p dir=rtl>&#x201d;אחת &#x2019;שתיים&#x2019; שלוש&#x201d;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="hi">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#x201c;एक &#x2018;दो&#x2019; तीन&#x201d;
<p>&#x201c;एक &#x2018;दो&#x2019; तीन&#x201d;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="hu">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#x201e;egy &#xbb;kettő&#xab; három&#x201d;
<p>&#x201e;egy &#xbb;kettő&#xab; három&#x201d;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="ja">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#x300c;&#x300e;&#x300f;&#x300d;
<p>&#x300c;&#x300e;&#x300f;&#x300d;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="km">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#x201c;មួយ &#x2018;ពីរ&#x2019; បី&#x201d;
<p>&#x201c;មួយ &#x2018;ពីរ&#x2019; បី&#x201d;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="ko">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#x201c;하나 &#x2018;&#x2019;&#x201d;
<p>&#x201c;하나 &#x2018;&#x2019;&#x201d;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="lo">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#x201c;ຫນຶ່ງ &#x2018;ສອງ&#x2019; ສາມ&#x201d;
<p>&#x201c;ຫນຶ່ງ &#x2018;ສອງ&#x2019; ສາມ&#x201d;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="my">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#x201c;တစ် &#x2018;နှစ်&#x2019; သုံး&#x201d;
<p>&#x201c;တစ် &#x2018;နှစ်&#x2019; သုံး&#x201d;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="nl">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#x2018;een &#x201c;twee&#x201d; drie&#x2019;
<p>&#x2018;een &#x201c;twee&#x201d; drie&#x2019;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="pa">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#x201c;ਇੱਕ &#x2018;ਦੋ&#x2019; ਤਿੰਨ&#x201d;
<p>&#x201c;ਇੱਕ &#x2018;ਦੋ&#x2019; ਤਿੰਨ&#x201d;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="ta">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#x201c;ஒன்று &#x2018;இரண்டு&#x2019; மூன்று&#x201d;
<p>&#x201c;ஒன்று &#x2018;இரண்டு&#x2019; மூன்று&#x201d;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="th">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#x201c;หนึ่ง&#x2018;สอง&#x2019;สาม&#x201d;
<p>&#x201c;หนึ่ง&#x2018;สอง&#x2019;สาม&#x201d;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="zh-Hans">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#x201c;&#x2018;&#x2019;&#x201d;
<p>&#x201c;&#x2018;&#x2019;&#x201d;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="zh-Hant">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#x300c;&#x300e;&#x300f;&#x300d;
<p>&#x300c;&#x300e;&#x300f;&#x300d;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="zh">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>&#x201c;&#x2018;&#x2019;&#x201d;
<p>&#x201c;&#x2018;&#x2019;&#x201d;

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="en">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>One “two three «four five six»
<p>One “two three «four five six»

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="en">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>One two three «four five six»
<p>One two three «four five six»

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="en">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>One “two <span lang="ja">『three <span lang="fr">«four»</span></span>
<p>One “two <span lang="ja">『three <span lang="fr">«four»</span></span>

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="en">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if the quote marks in both lines match:
<p>One two <span lang="ja">three <span lang="fr">four</span></span>
<p>One two <span lang="ja">three <span lang="fr">four</span></span>

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="en">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if both lines match, with no quote marks:
<p>One two <span lang="ja">three <span lang="fr">four</span></span>
<p>One two <span lang="ja">three <span lang="fr">four</span></span>

Просмотреть файл

@ -1,12 +0,0 @@
<!doctype html>
<html lang="en">
<meta charset=utf-8>
<title>CSS Generated Content reference: quotes</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<style>
body { font: 32px serif; }
</style>
<body>
<p>Test passes if quote marks in both lines match:
<p>One two “three four” five
<p>One two “three four” five

Просмотреть файл

@ -276,7 +276,7 @@ class nsAtomString : public nsString {
class nsAtomCString : public nsCString {
public:
explicit nsAtomCString(const nsAtom* aAtom) { aAtom->ToUTF8String(*this); }
explicit nsAtomCString(nsAtom* aAtom) { aAtom->ToUTF8String(*this); }
};
class nsDependentAtomString : public nsDependentString {