WebKit Bugzilla
Attachment 360654 Details for
Bug 187723
: [Cocoa] Ask platform for generic font family mappings
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-187723-20190130170929.patch (text/plain), 73.84 KB, created by
Myles C. Maxfield
on 2019-01-30 17:09:30 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Myles C. Maxfield
Created:
2019-01-30 17:09:30 PST
Size:
73.84 KB
patch
obsolete
>Subversion Revision: 240602 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index dad7450a94448006eb972a12262a27fec00c400f..0004588c3d9968bc4fcce7050f2d2b34b1036ec4 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,53 @@ >+2019-01-29 Myles C. Maxfield <mmaxfield@apple.com> >+ >+ [Cocoa] Ask platform for generic font family mappings >+ https://bugs.webkit.org/show_bug.cgi?id=187723 >+ <rdar://problem/41892438> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ WebKit API allows setting the generic font families for the USCRIPT_COMMON script. >+ When trying to style a character with a generic font family, we first look to see if >+ we have a mapping for the particular script the character is rendered with, and if we >+ don't find a match, we then check USCRIPT_COMMON. >+ >+ In the Cocoa ports, the only way families get set for non-USCRIPT_COMMON scripts (aka >+ the only scripts which won't use the API families) is in >+ SettingsBase::initializeDefaultFontFamilies(). That function only sets the families >+ for the CJK scripts. >+ >+ Because these hardcoded names in SettingsBase::initializeDefaultFontFamilies() are >+ incorrect, and because these scripts are the only ones which won't consult with the >+ API families, these scripts are the ones that can use CTFontDescriptorCreateForCSSFamily(). >+ CTFontDescriptorCreateForCSSFamily() won't return any user-installed fonts, and will >+ return better results than our hardcoded names. >+ >+ Test: fast/text/jp-sans-serif.html >+ >+ * css/CSSComputedStyleDeclaration.cpp: >+ * css/CSSFontSelector.cpp: >+ (WebCore::resolveGenericFamily): >+ * css/parser/CSSPropertyParser.cpp: >+ (WebCore::consumeFontFamily): >+ * page/cocoa/SettingsBaseCocoa.mm: >+ (WebCore::SettingsBase::initializeDefaultFontFamilies): >+ (WebCore::sansSerifTraditionalHanFontFamily): Deleted. >+ (WebCore::sansSerifSimplifiedHanFontFamily): Deleted. >+ (WebCore::osakaMonoIsInstalled): Deleted. >+ * platform/graphics/FontDescription.cpp: >+ (WebCore::FontDescription::platformResolveGenericFamily): >+ * platform/graphics/FontDescription.h: >+ * platform/graphics/cocoa/FontDescriptionCocoa.cpp: >+ (WebCore::FontDescription::platformResolveGenericFamily): >+ * platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp: >+ (WebCore::SystemFontDatabaseCoreText::clear): >+ (WebCore::SystemFontDatabaseCoreText::serifFamily): >+ (WebCore::SystemFontDatabaseCoreText::sansSerifFamily): >+ (WebCore::SystemFontDatabaseCoreText::cursiveFamily): >+ (WebCore::SystemFontDatabaseCoreText::fantasyFamily): >+ (WebCore::SystemFontDatabaseCoreText::monospaceFamily): >+ * platform/graphics/cocoa/SystemFontDatabaseCoreText.h: >+ > 2019-01-28 Antoine Quint <graouts@apple.com> > > Limit user-agent interactions based on the touch-action property on iOS >diff --git a/Source/WebCore/PAL/ChangeLog b/Source/WebCore/PAL/ChangeLog >index 83c5c2600f1e27dcae11256005fb623d245c5f3f..01c0e5414d0bd0be272f13e8e9b96758fe683b9a 100644 >--- a/Source/WebCore/PAL/ChangeLog >+++ b/Source/WebCore/PAL/ChangeLog >@@ -1,3 +1,12 @@ >+2019-01-29 Myles C. Maxfield <mmaxfield@apple.com> >+ >+ [Cocoa] Ask platform for generic font family mappings >+ https://bugs.webkit.org/show_bug.cgi?id=187723 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * pal/spi/cocoa/CoreTextSPI.h: >+ > 2019-01-27 Chris Fleizach <cfleizach@apple.com> > > AX: Introduce isolated accessibility tree >diff --git a/Source/WebCore/PAL/pal/spi/cocoa/CoreTextSPI.h b/Source/WebCore/PAL/pal/spi/cocoa/CoreTextSPI.h >index 09af37dfd2295aaa33f82b01e3bd3cd0d40c9000..d62bb25d013017f9cbef8d83376733aaa6d12c38 100644 >--- a/Source/WebCore/PAL/pal/spi/cocoa/CoreTextSPI.h >+++ b/Source/WebCore/PAL/pal/spi/cocoa/CoreTextSPI.h >@@ -79,6 +79,13 @@ extern const CFStringRef kCTFontPostScriptNameAttribute; > extern const CFStringRef kCTFontUserInstalledAttribute; > extern const CFStringRef kCTFontFallbackOptionAttribute; > >+extern const CFStringRef kCTFontCSSFamilySerif; >+extern const CFStringRef kCTFontCSSFamilySansSerif; >+extern const CFStringRef kCTFontCSSFamilyCursive; >+extern const CFStringRef kCTFontCSSFamilyFantasy; >+extern const CFStringRef kCTFontCSSFamilyMonospace; >+extern const CFStringRef kCTFontCSSFamilySystemUI; >+ > bool CTFontTransformGlyphs(CTFontRef, CGGlyph glyphs[], CGSize advances[], CFIndex count, CTFontTransformOptions); > > CGSize CTRunGetInitialAdvance(CTRunRef); >@@ -87,6 +94,7 @@ void CTRunGetBaseAdvancesAndOrigins(CTRunRef, CFRange, CGSize baseAdvances[], CG > CTTypesetterRef CTTypesetterCreateWithUniCharProviderAndOptions(CTUniCharProviderCallback, CTUniCharDisposeCallback, void* refCon, CFDictionaryRef options); > bool CTFontGetVerticalGlyphsForCharacters(CTFontRef, const UniChar characters[], CGGlyph glyphs[], CFIndex count); > void CTFontGetUnsummedAdvancesForGlyphsAndStyle(CTFontRef, CTFontOrientation, CGFontRenderingStyle, const CGGlyph[], CGSize advances[], CFIndex count); >+CTFontDescriptorRef CTFontDescriptorCreateForCSSFamily(CFStringRef cssFamily, CFStringRef language); > > CTFontDescriptorRef CTFontDescriptorCreateForUIType(CTFontUIFontType, CGFloat size, CFStringRef language); > CTFontDescriptorRef CTFontDescriptorCreateWithTextStyle(CFStringRef style, CFStringRef size, CFStringRef language); >diff --git a/Source/WebCore/css/CSSComputedStyleDeclaration.cpp b/Source/WebCore/css/CSSComputedStyleDeclaration.cpp >index 5aaae72fe550249bd0f6bd73580638f67da28a38..977eca3a41e17c7163c9f17af7c71476edceb89a 100644 >--- a/Source/WebCore/css/CSSComputedStyleDeclaration.cpp >+++ b/Source/WebCore/css/CSSComputedStyleDeclaration.cpp >@@ -1720,7 +1720,6 @@ bool ComputedStyleExtractor::useFixedFontDefaultSize() > return style->fontDescription().useFixedDefaultSize(); > } > >- > static CSSValueID identifierForFamily(const AtomicString& family) > { > if (family == cursiveFamily) >diff --git a/Source/WebCore/css/CSSFontSelector.cpp b/Source/WebCore/css/CSSFontSelector.cpp >index d55127bec949a99571c4eec9557f8e62926ccd07..4afb42eb8fe8cc0cfa728bd0a4e30c93255729ea 100644 >--- a/Source/WebCore/css/CSSFontSelector.cpp >+++ b/Source/WebCore/css/CSSFontSelector.cpp >@@ -274,8 +274,12 @@ void CSSFontSelector::fontCacheInvalidated() > dispatchInvalidationCallbacks(); > } > >-static const AtomicString& resolveGenericFamily(Document* document, const FontDescription& fontDescription, const AtomicString& familyName) >+static AtomicString resolveGenericFamily(Document* document, const FontDescription& fontDescription, const AtomicString& familyName) > { >+ auto platformResult = FontDescription::platformResolveGenericFamily(fontDescription.script(), fontDescription.locale(), familyName); >+ if (!platformResult.isNull()) >+ return platformResult; >+ > if (!document) > return familyName; > >diff --git a/Source/WebCore/css/parser/CSSPropertyParser.cpp b/Source/WebCore/css/parser/CSSPropertyParser.cpp >index 1ddaabdf370fdedaf627a69e09e0afa25cdf4d87..fdb442ca327b6cf9d3bf7d48c04be592a655b3a5 100644 >--- a/Source/WebCore/css/parser/CSSPropertyParser.cpp >+++ b/Source/WebCore/css/parser/CSSPropertyParser.cpp >@@ -1070,16 +1070,13 @@ static RefPtr<CSSValueList> consumeFontFamily(CSSParserTokenRange& range) > { > RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated(); > do { >- RefPtr<CSSValue> parsedValue = consumeGenericFamily(range); >- if (parsedValue) { >+ if (RefPtr<CSSValue> parsedValue = consumeGenericFamily(range)) > list->append(parsedValue.releaseNonNull()); >- } else { >- parsedValue = consumeFamilyName(range); >- if (parsedValue) { >+ else { >+ if (auto parsedValue = consumeFamilyName(range)) > list->append(parsedValue.releaseNonNull()); >- } else { >+ else > return nullptr; >- } > } > } while (consumeCommaIncludingWhitespace(range)); > return list; >diff --git a/Source/WebCore/page/cocoa/SettingsBaseCocoa.mm b/Source/WebCore/page/cocoa/SettingsBaseCocoa.mm >index 57f825df99559f0935738a38b36917bd8f9e28e7..89ca139b9ca6aead3928c9299bf45da40fff144b 100644 >--- a/Source/WebCore/page/cocoa/SettingsBaseCocoa.mm >+++ b/Source/WebCore/page/cocoa/SettingsBaseCocoa.mm >@@ -48,41 +48,12 @@ static inline const char* sansSerifSimplifiedHanFontFamily() > > #if PLATFORM(MAC) > >-static bool osakaMonoIsInstalled() >-{ >- int one = 1; >- RetainPtr<CFNumberRef> yes = adoptCF(CFNumberCreate(kCFAllocatorDefault, kCFNumberIntType, &one)); >- CFTypeRef keys[] = { kCTFontEnabledAttribute, kCTFontNameAttribute }; >- CFTypeRef values[] = { yes.get(), CFSTR("Osaka-Mono") }; >- RetainPtr<CFDictionaryRef> attributes = adoptCF(CFDictionaryCreate(kCFAllocatorDefault, keys, values, WTF_ARRAY_LENGTH(values), &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks)); >- RetainPtr<CTFontDescriptorRef> descriptor = adoptCF(CTFontDescriptorCreateWithAttributes(attributes.get())); >- RetainPtr<CFSetRef> mandatoryAttributes = adoptCF(CFSetCreate(kCFAllocatorDefault, keys, WTF_ARRAY_LENGTH(keys), &kCFTypeSetCallBacks)); >- return adoptCF(CTFontDescriptorCreateMatchingFontDescriptor(descriptor.get(), mandatoryAttributes.get())); >-} >- > void SettingsBase::initializeDefaultFontFamilies() > { > setStandardFontFamily("Songti TC", USCRIPT_TRADITIONAL_HAN); >- setSerifFontFamily("Songti TC", USCRIPT_TRADITIONAL_HAN); >- setFixedFontFamily(sansSerifTraditionalHanFontFamily(), USCRIPT_TRADITIONAL_HAN); >- setSansSerifFontFamily(sansSerifTraditionalHanFontFamily(), USCRIPT_TRADITIONAL_HAN); >- setCursiveFontFamily("Kaiti TC", USCRIPT_TRADITIONAL_HAN); >- > setStandardFontFamily("Songti SC", USCRIPT_SIMPLIFIED_HAN); >- setSerifFontFamily("Songti SC", USCRIPT_SIMPLIFIED_HAN); >- setFixedFontFamily(sansSerifSimplifiedHanFontFamily(), USCRIPT_SIMPLIFIED_HAN); >- setSansSerifFontFamily(sansSerifSimplifiedHanFontFamily(), USCRIPT_SIMPLIFIED_HAN); >- setCursiveFontFamily("Kaiti SC", USCRIPT_SIMPLIFIED_HAN); >- > setStandardFontFamily("Hiragino Mincho ProN", USCRIPT_KATAKANA_OR_HIRAGANA); >- setFixedFontFamily(osakaMonoIsInstalled() ? "Osaka-Mono" : "Hiragino Sans", USCRIPT_KATAKANA_OR_HIRAGANA); >- setSerifFontFamily("Hiragino Mincho ProN", USCRIPT_KATAKANA_OR_HIRAGANA); >- setSansSerifFontFamily("Hiragino Kaku Gothic ProN", USCRIPT_KATAKANA_OR_HIRAGANA); >- > setStandardFontFamily("AppleMyungjo", USCRIPT_HANGUL); >- setSerifFontFamily("AppleMyungjo", USCRIPT_HANGUL); >- setFixedFontFamily("Apple SD Gothic Neo", USCRIPT_HANGUL); >- setSansSerifFontFamily("Apple SD Gothic Neo", USCRIPT_HANGUL); > > setStandardFontFamily("Times", USCRIPT_COMMON); > setFixedFontFamily("Courier", USCRIPT_COMMON); >@@ -99,28 +70,10 @@ bool SettingsBase::platformDefaultMediaSourceEnabled() > > void SettingsBase::initializeDefaultFontFamilies() > { >- // There is no serif Chinese font in default iOS installation. > setStandardFontFamily(sansSerifTraditionalHanFontFamily(), USCRIPT_TRADITIONAL_HAN); >- setSerifFontFamily(sansSerifTraditionalHanFontFamily(), USCRIPT_TRADITIONAL_HAN); >- setFixedFontFamily(sansSerifTraditionalHanFontFamily(), USCRIPT_TRADITIONAL_HAN); >- setSansSerifFontFamily(sansSerifTraditionalHanFontFamily(), USCRIPT_TRADITIONAL_HAN); >- >- // There is no serif Chinese font in default iOS installation. > setStandardFontFamily(sansSerifSimplifiedHanFontFamily(), USCRIPT_SIMPLIFIED_HAN); >- setSerifFontFamily(sansSerifSimplifiedHanFontFamily(), USCRIPT_SIMPLIFIED_HAN); >- setFixedFontFamily(sansSerifSimplifiedHanFontFamily(), USCRIPT_SIMPLIFIED_HAN); >- setSansSerifFontFamily(sansSerifSimplifiedHanFontFamily(), USCRIPT_SIMPLIFIED_HAN); >- > setStandardFontFamily("Hiragino Mincho ProN", USCRIPT_KATAKANA_OR_HIRAGANA); >- setFixedFontFamily("Hiragino Kaku Gothic ProN", USCRIPT_KATAKANA_OR_HIRAGANA); >- setSerifFontFamily("Hiragino Mincho ProN", USCRIPT_KATAKANA_OR_HIRAGANA); >- setSansSerifFontFamily("Hiragino Kaku Gothic ProN", USCRIPT_KATAKANA_OR_HIRAGANA); >- >- // There is no serif Korean font in default iOS installation. > setStandardFontFamily("Apple SD Gothic Neo", USCRIPT_HANGUL); >- setSerifFontFamily("Apple SD Gothic Neo", USCRIPT_HANGUL); >- setFixedFontFamily("Apple SD Gothic Neo", USCRIPT_HANGUL); >- setSansSerifFontFamily("Apple SD Gothic Neo", USCRIPT_HANGUL); > > setStandardFontFamily("Times", USCRIPT_COMMON); > setFixedFontFamily("Courier", USCRIPT_COMMON); >diff --git a/Source/WebCore/platform/graphics/FontDescription.cpp b/Source/WebCore/platform/graphics/FontDescription.cpp >index df590bb2c08c5463820c7558dbf609bbd7258522..b8b46e775cd91b1c6fee68c142298450ec2d60cf 100644 >--- a/Source/WebCore/platform/graphics/FontDescription.cpp >+++ b/Source/WebCore/platform/graphics/FontDescription.cpp >@@ -71,4 +71,11 @@ void FontDescription::setLocale(const AtomicString& locale) > m_script = localeToScriptCodeForFontSelection(m_locale); > } > >+#if !PLATFORM(COCOA) >+AtomicString FontDescription::platformResolveGenericFamily(UScriptCode, const AtomicString&, const AtomicString&) >+{ >+ return nullAtom(); >+} >+#endif >+ > } // namespace WebCore >diff --git a/Source/WebCore/platform/graphics/FontDescription.h b/Source/WebCore/platform/graphics/FontDescription.h >index 99bd407f5fa6c960bf8b9b649c89662d22f3912a..cb05cf5aeb9557851b4f309be6edb4ce6328d05f 100644 >--- a/Source/WebCore/platform/graphics/FontDescription.h >+++ b/Source/WebCore/platform/graphics/FontDescription.h >@@ -133,6 +133,8 @@ public: > void setFontStyleAxis(FontStyleAxis axis) { m_fontStyleAxis = axis == FontStyleAxis::ital; } > void setShouldAllowUserInstalledFonts(AllowUserInstalledFonts shouldAllowUserInstalledFonts) { m_shouldAllowUserInstalledFonts = static_cast<unsigned>(shouldAllowUserInstalledFonts); } > >+ static AtomicString platformResolveGenericFamily(UScriptCode, const AtomicString& locale, const AtomicString& familyName); >+ > private: > // FIXME: Investigate moving these into their own object on the heap (to save memory). > FontFeatureSettings m_featureSettings; >diff --git a/Source/WebCore/platform/graphics/cocoa/FontDescriptionCocoa.cpp b/Source/WebCore/platform/graphics/cocoa/FontDescriptionCocoa.cpp >index 8a3309dbee70de03f9c5493a1f9598434a254f01..8e92f6c13d62f4225e9a840ac3a36c299b753b13 100644 >--- a/Source/WebCore/platform/graphics/cocoa/FontDescriptionCocoa.cpp >+++ b/Source/WebCore/platform/graphics/cocoa/FontDescriptionCocoa.cpp >@@ -27,6 +27,8 @@ > #include "FontDescription.h" > > #include "SystemFontDatabaseCoreText.h" >+#include <mutex> >+#include <wtf/Language.h> > > #if USE_PLATFORM_SYSTEM_FALLBACK_LIST > >@@ -138,6 +140,54 @@ FontFamilySpecification FontCascadeDescription::effectiveFamilyAt(unsigned index > return nullAtom(); > } > >+static String computeSpecializedChineseLocale() >+{ >+ const Vector<String>& preferredLanguages = userPreferredLanguages(); >+ for (auto& language : preferredLanguages) { >+ if (equalIgnoringASCIICase(language, "zh") || startsWithLettersIgnoringASCIICase(language, "zh-")) >+ return language; >+ } >+ return "zh-hans"_str; // We have no signal. Pick one option arbitrarily. >+} >+ >+static String& cachedSpecializedChineseLocale() >+{ >+ static NeverDestroyed<String> specializedChineseLocale; >+ return specializedChineseLocale.get(); >+} >+ >+static void languageChanged(void*) >+{ >+ cachedSpecializedChineseLocale() = computeSpecializedChineseLocale(); >+} >+ >+AtomicString FontDescription::platformResolveGenericFamily(UScriptCode script, const AtomicString& locale, const AtomicString& familyName) >+{ >+ if (script == USCRIPT_COMMON) >+ return nullAtom(); >+ >+ static std::once_flag onceFlag; >+ std::call_once(onceFlag, [&] { >+ addLanguageChangeObserver(const_cast<AtomicString*>(&locale), &languageChanged); // We will never remove the observer, so all we need is a non-null pointer. >+ languageChanged(nullptr); >+ }); >+ >+ auto& usedLocale = script == USCRIPT_HAN ? cachedSpecializedChineseLocale() : locale.string(); >+ >+ if (familyName == serifFamily) >+ return SystemFontDatabaseCoreText::singleton().serifFamily(usedLocale); >+ if (familyName == sansSerifFamily) >+ return SystemFontDatabaseCoreText::singleton().sansSerifFamily(usedLocale); >+ if (familyName == cursiveFamily) >+ return SystemFontDatabaseCoreText::singleton().cursiveFamily(usedLocale); >+ if (familyName == fantasyFamily) >+ return SystemFontDatabaseCoreText::singleton().fantasyFamily(usedLocale); >+ if (familyName == monospaceFamily) >+ return SystemFontDatabaseCoreText::singleton().monospaceFamily(usedLocale); >+ >+ return nullAtom(); >+} >+ > } > > #endif >diff --git a/Source/WebCore/platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp b/Source/WebCore/platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp >index b4a396d058bd5937ac6569606dd4c420f6b4851c..561b818ddc9f21829e73bfc2c4a70cb847ee367e 100644 >--- a/Source/WebCore/platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp >+++ b/Source/WebCore/platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp >@@ -80,6 +80,11 @@ Vector<RetainPtr<CTFontDescriptorRef>> SystemFontDatabaseCoreText::cascadeList(c > void SystemFontDatabaseCoreText::clear() > { > m_systemFontCache.clear(); >+ m_serifFamilies.clear(); >+ m_sansSeriferifFamilies.clear(); >+ m_cursiveFamilies.clear(); >+ m_fantasyFamilies.clear(); >+ m_monospaceFamilies.clear(); > } > > RetainPtr<CTFontRef> SystemFontDatabaseCoreText::applyWeightItalicsAndFallbackBehavior(CTFontRef font, CGFloat weight, bool italic, float size, AllowUserInstalledFonts allowUserInstalledFonts) >@@ -172,6 +177,46 @@ Vector<RetainPtr<CTFontDescriptorRef>> SystemFontDatabaseCoreText::cascadeList(c > return cascadeList(systemFontParameters(description, cssFamily, clientUse, allowUserInstalledFonts), clientUse); > } > >+String SystemFontDatabaseCoreText::serifFamily(const String& locale) >+{ >+ return m_serifFamilies.ensure(locale, [&] { >+ auto descriptor = adoptCF(CTFontDescriptorCreateForCSSFamily(kCTFontCSSFamilySerif, locale.createCFString().get())); >+ return adoptCF(static_cast<CFStringRef>(CTFontDescriptorCopyAttribute(descriptor.get(), kCTFontFamilyNameAttribute))).get(); >+ }).iterator->value; >+} >+ >+String SystemFontDatabaseCoreText::sansSerifFamily(const String& locale) >+{ >+ return m_sansSeriferifFamilies.ensure(locale, [&] { >+ auto descriptor = adoptCF(CTFontDescriptorCreateForCSSFamily(kCTFontCSSFamilySansSerif, locale.createCFString().get())); >+ return adoptCF(static_cast<CFStringRef>(CTFontDescriptorCopyAttribute(descriptor.get(), kCTFontFamilyNameAttribute))).get(); >+ }).iterator->value; >+} >+ >+String SystemFontDatabaseCoreText::cursiveFamily(const String& locale) >+{ >+ return m_cursiveFamilies.ensure(locale, [&] { >+ auto descriptor = adoptCF(CTFontDescriptorCreateForCSSFamily(kCTFontCSSFamilyCursive, locale.createCFString().get())); >+ return adoptCF(static_cast<CFStringRef>(CTFontDescriptorCopyAttribute(descriptor.get(), kCTFontFamilyNameAttribute))).get(); >+ }).iterator->value; >+} >+ >+String SystemFontDatabaseCoreText::fantasyFamily(const String& locale) >+{ >+ return m_fantasyFamilies.ensure(locale, [&] { >+ auto descriptor = adoptCF(CTFontDescriptorCreateForCSSFamily(kCTFontCSSFamilyFantasy, locale.createCFString().get())); >+ return adoptCF(static_cast<CFStringRef>(CTFontDescriptorCopyAttribute(descriptor.get(), kCTFontFamilyNameAttribute))).get(); >+ }).iterator->value; >+} >+ >+String SystemFontDatabaseCoreText::monospaceFamily(const String& locale) >+{ >+ return m_monospaceFamilies.ensure(locale, [&] { >+ auto descriptor = adoptCF(CTFontDescriptorCreateForCSSFamily(kCTFontCSSFamilyMonospace, locale.createCFString().get())); >+ return adoptCF(static_cast<CFStringRef>(CTFontDescriptorCopyAttribute(descriptor.get(), kCTFontFamilyNameAttribute))).get(); >+ }).iterator->value; >+} >+ > } > > #endif >diff --git a/Source/WebCore/platform/graphics/cocoa/SystemFontDatabaseCoreText.h b/Source/WebCore/platform/graphics/cocoa/SystemFontDatabaseCoreText.h >index 8359a4104aa50febb212fbc3209dfa873ce648d4..8c76a4f46e8609748512a81efa2b7f646169a459 100644 >--- a/Source/WebCore/platform/graphics/cocoa/SystemFontDatabaseCoreText.h >+++ b/Source/WebCore/platform/graphics/cocoa/SystemFontDatabaseCoreText.h >@@ -101,6 +101,13 @@ public: > enum class ClientUse { ForSystemUI, ForTextStyle }; > > Vector<RetainPtr<CTFontDescriptorRef>> cascadeList(const FontCascadeDescription&, const AtomicString& cssFamily, ClientUse, AllowUserInstalledFonts); >+ >+ String serifFamily(const String& locale); >+ String sansSerifFamily(const String& locale); >+ String cursiveFamily(const String& locale); >+ String fantasyFamily(const String& locale); >+ String monospaceFamily(const String& locale); >+ > void clear(); > > private: >@@ -114,6 +121,12 @@ private: > static CascadeListParameters systemFontParameters(const FontCascadeDescription&, const AtomicString& familyName, ClientUse, AllowUserInstalledFonts); > > HashMap<CascadeListParameters, Vector<RetainPtr<CTFontDescriptorRef>>, CascadeListParameters::CascadeListParametersHash, SimpleClassHashTraits<CascadeListParameters>> m_systemFontCache; >+ >+ HashMap<String, String> m_serifFamilies; >+ HashMap<String, String> m_sansSeriferifFamilies; >+ HashMap<String, String> m_cursiveFamilies; >+ HashMap<String, String> m_fantasyFamilies; >+ HashMap<String, String> m_monospaceFamilies; > }; > > } >diff --git a/Tools/DumpRenderTree/mac/DumpRenderTree.mm b/Tools/DumpRenderTree/mac/DumpRenderTree.mm >index d3f58c77d29f4ded8e9d449f88f4a3501fd12d4e..9443240c94fa57932bc6b87762e1994b8dcb8357 100644 >--- a/Tools/DumpRenderTree/mac/DumpRenderTree.mm >+++ b/Tools/DumpRenderTree/mac/DumpRenderTree.mm >@@ -403,6 +403,8 @@ static NSSet *allowedFontFamilySet() > @"Papyrus", > @"PCMyungjo", > @"PilGi", >+ @"PingFang SC", >+ @"PingFang TC", > @"Plantagenet Cherokee", > @"Raanana", > @"Sathu", >diff --git a/Tools/WebKitTestRunner/mac/TestControllerMac.mm b/Tools/WebKitTestRunner/mac/TestControllerMac.mm >index 583eed4f1968a7f58a003dff4d91b16e9691d6e5..149a0d26fcb357a9e9f80883ec78f40315cd74b8 100644 >--- a/Tools/WebKitTestRunner/mac/TestControllerMac.mm >+++ b/Tools/WebKitTestRunner/mac/TestControllerMac.mm >@@ -248,6 +248,8 @@ static NSSet *allowedFontFamilySet() > @"Papyrus", > @"PCMyungjo", > @"PilGi", >+ @"PingFang SC", >+ @"PingFang TC", > @"Plantagenet Cherokee", > @"Raanana", > @"Sathu", >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 4dc94e86f7a6b197487fef703807dfcee2eac20d..86838069d2f73b5dc172efbe8cfa7f9cf546ffa2 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,14 @@ >+2019-01-29 Myles C. Maxfield <mmaxfield@apple.com> >+ >+ [Cocoa] Ask platform for generic font family mappings >+ https://bugs.webkit.org/show_bug.cgi?id=187723 >+ <rdar://problem/41892438> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * fast/text/jp-sans-serif-expected-mismatch.html: Added. >+ * fast/text/jp-sans-serif.html: Added. >+ > 2019-01-28 Antoine Quint <graouts@apple.com> > > Limit user-agent interactions based on the touch-action property on iOS >diff --git a/LayoutTests/fast/text/international/font-fallback-to-common-script-expected.html b/LayoutTests/fast/text/international/font-fallback-to-common-script-expected.html >deleted file mode 100644 >index 02e21c4b2a506d7f629f81441a726ca2179a4d5d..0000000000000000000000000000000000000000 >--- a/LayoutTests/fast/text/international/font-fallback-to-common-script-expected.html >+++ /dev/null >@@ -1,8 +0,0 @@ >-<html> >-<body> >-<div style="font-size: 20px"> >-<div style="font-family: 'Ahem'">this is ahem font</div> >-<div style="font-family: 'Ahem'">this is ahem font</div> >-</div> >-</body> >-</html> >diff --git a/LayoutTests/fast/text/international/font-fallback-to-common-script.html b/LayoutTests/fast/text/international/font-fallback-to-common-script.html >deleted file mode 100644 >index e78a435c4e8f852bed4829b62e226a4fccb4e981..0000000000000000000000000000000000000000 >--- a/LayoutTests/fast/text/international/font-fallback-to-common-script.html >+++ /dev/null >@@ -1,26 +0,0 @@ >-<!DOCTYPE html> >-<html> >-<head> >-<script> >-if (window.internals) { >- window.internals.settings.setStandardFontFamily("Times", "Hans"); >- window.internals.settings.setStandardFontFamily("", "Hans"); >- window.internals.settings.setStandardFontFamily("Ahem", "Zyyy"); >- >- window.internals.settings.setSansSerifFontFamily("Ahem", "Zyyy"); >- >- window.internals.setUserPreferredLanguages("en", "zh-cn"); >-} >-</script> >-</head> >-<body> >-<!-- Test for font fallback to the common script when the per-script font setting is missing or the empty string. >-Bug 81329 <https://bugs.webkit.org/show_bug.cgi?id=81329> --> >-<div style="font-size: 20px"> >-<div lang="zh-CN">this is ahem font</div> >- >-<!-- Test fallback to common script when no setting is set. This assumes there is no setting for "Zxxx" (script code for unwritten languages). --> >-<div lang="und-Zxxx" style="font-family: sans-serif;">this is ahem font</div> >-</div> >-</body> >-</html> >diff --git a/LayoutTests/fast/text/international/lang-sensitive-fonts-expected.html b/LayoutTests/fast/text/international/lang-sensitive-fonts-expected.html >index 0060d2388ac637d6ba88a5ea4b3a24baed911483..7742f2fa81a1881fdb095ad21c43d0c0b3c70594 100644 >--- a/LayoutTests/fast/text/international/lang-sensitive-fonts-expected.html >+++ b/LayoutTests/fast/text/international/lang-sensitive-fonts-expected.html >@@ -4,7 +4,6 @@ > <div style="font-family: 'Ahem'">this is ahem font</div> > <div style="font-family: 'Ahem'">this is ahem font</div> > <div style="font-family: 'Ahem'">this is ahem font</div> >-<div style="font-family: 'Ahem'">this is ahem font</div> > <div>this is not ahem font</div> > </div> > </body> >diff --git a/LayoutTests/fast/text/international/lang-sensitive-fonts-xml-expected.html b/LayoutTests/fast/text/international/lang-sensitive-fonts-xml-expected.html >index 66159b48f896c921cca0e6ea9650032a712344dd..38ae2790fc667c043c3c0c039b078daf8ee0cdf6 100644 >--- a/LayoutTests/fast/text/international/lang-sensitive-fonts-xml-expected.html >+++ b/LayoutTests/fast/text/international/lang-sensitive-fonts-xml-expected.html >@@ -5,7 +5,6 @@ > <div>this is ahem font</div> > <div>this is ahem font</div> > <div>this is ahem font</div> >-<div>this is ahem font</div> > </div> > </body> > </html> >diff --git a/LayoutTests/fast/text/international/lang-sensitive-fonts-xml.xhtml b/LayoutTests/fast/text/international/lang-sensitive-fonts-xml.xhtml >index 17c070805f0ab294671e1e3326f5bc125469e616..e7a874e4a93a6ec07045d571ae83678bceac2f30 100644 >--- a/LayoutTests/fast/text/international/lang-sensitive-fonts-xml.xhtml >+++ b/LayoutTests/fast/text/international/lang-sensitive-fonts-xml.xhtml >@@ -21,14 +21,10 @@ font. > <div style="font-family: 'Ahem'">this is ahem font</div> > <div lang="zh-CN">this is ahem font</div> > <div id="target1" lang="ar">this is ahem font</div> >-<div id="target2" lang="ar" style="font-family: sans-serif">this is ahem font</div> > <div xml:lang="zh-CN">this is ahem font</div> > </div> > <script> > document.getElementById("target1").lang = "zh-CN"; >- >-document.getElementById("target2").lang = "zh-CN"; >-document.getElementById("target2").style.fontFamily = "fantasy"; > </script> > </body> > </html> >diff --git a/LayoutTests/fast/text/international/lang-sensitive-fonts.html b/LayoutTests/fast/text/international/lang-sensitive-fonts.html >index c7edd1c29b416be7cef4714b20939629e68b6583..92e832ee743a2e482163f0eaed3526a4ae0f2ddc 100644 >--- a/LayoutTests/fast/text/international/lang-sensitive-fonts.html >+++ b/LayoutTests/fast/text/international/lang-sensitive-fonts.html >@@ -20,14 +20,10 @@ font, except for the final div as xml:lang should be ignored in HTML. > <div style="font-family: 'Ahem'">this is ahem font</div> > <div lang="zh-CN">this is ahem font</div> > <div id="target1" lang="ar">this is ahem font</div> >-<div id="target2" lang="ar" style="font-family: sans-serif">this is ahem font</div> > <div xml:lang="zh-CN">this is not ahem font</div> > </div> > <script> > document.getElementById("target1").lang = "zh-CN"; >- >-document.getElementById("target2").lang = "zh-CN"; >-document.getElementById("target2").style.fontFamily = "fantasy"; > </script> > </body> > </html> >diff --git a/LayoutTests/fast/text/international/locale-sensitive-fonts-expected.html b/LayoutTests/fast/text/international/locale-sensitive-fonts-expected.html >index 64f91893b862248676e765f1e92bf72ad8fcbb7e..0810b6b1571df4760c7065a672a98330a232b4e3 100644 >--- a/LayoutTests/fast/text/international/locale-sensitive-fonts-expected.html >+++ b/LayoutTests/fast/text/international/locale-sensitive-fonts-expected.html >@@ -6,7 +6,6 @@ > <div style="font-size: 20px"> > <div style="font-family: 'Ahem'">this is ahem font</div> > <div style="font-family: 'Ahem'">this is ahem font</div> >-<div style="font-family: 'Ahem'">this is ahem font</div> > </div> > </body> > </html> >diff --git a/LayoutTests/fast/text/international/locale-sensitive-fonts.html b/LayoutTests/fast/text/international/locale-sensitive-fonts.html >index 4b40de485a74fc682843988d401d2c079b882237..66016a89e4687f4fd731ba26ab3c7e1d4fd13f0c 100644 >--- a/LayoutTests/fast/text/international/locale-sensitive-fonts.html >+++ b/LayoutTests/fast/text/international/locale-sensitive-fonts.html >@@ -16,7 +16,6 @@ fonts for Simplified Han are to Ahem font. So all divs should match. --> > <div style="font-size: 20px"> > <div style="font-family: 'Ahem'">this is ahem font</div> > <div style="-webkit-locale: 'zh_CN'">this is ahem font</div> >-<div style="-webkit-locale: 'zh_CN'; font-family: fantasy">this is ahem font</div> > </div> > </body> > </html> >diff --git a/LayoutTests/fast/text/jp-sans-serif-expected-mismatch.html b/LayoutTests/fast/text/jp-sans-serif-expected-mismatch.html >new file mode 100644 >index 0000000000000000000000000000000000000000..e6a8a44cce9635f726def042d02966b046f10a2e >--- /dev/null >+++ b/LayoutTests/fast/text/jp-sans-serif-expected-mismatch.html >@@ -0,0 +1,9 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+</head> >+<body> >+<div lang="jp" style="font: 48px serif;">ãããããªã·</div> >+</body> >+</html> >diff --git a/LayoutTests/fast/text/jp-sans-serif.html b/LayoutTests/fast/text/jp-sans-serif.html >new file mode 100644 >index 0000000000000000000000000000000000000000..14eb9a044b66fb8c7547bd8aeb2692ed6c26bd13 >--- /dev/null >+++ b/LayoutTests/fast/text/jp-sans-serif.html >@@ -0,0 +1,9 @@ >+<!DOCTYPE html> >+<html> >+<head> >+<meta charset="utf-8"> >+</head> >+<body> >+<div lang="jp" style="font: 48px sans-serif;">ãããããªã·</div> >+</body> >+</html> >diff --git a/LayoutTests/platform/mac/fast/css-generated-content/014-expected.txt b/LayoutTests/platform/mac/fast/css-generated-content/014-expected.txt >index bda1422ef3bdcc5720b785446efab252424424b5..04558660b73613af10f283000959b154af35a1fa 100644 >--- a/LayoutTests/platform/mac/fast/css-generated-content/014-expected.txt >+++ b/LayoutTests/platform/mac/fast/css-generated-content/014-expected.txt >@@ -1,8 +1,8 @@ >-layer at (0,0) size 785x887 >+layer at (0,0) size 785x893 > RenderView at (0,0) size 785x600 >-layer at (0,0) size 785x887 >- RenderBlock {HTML} at (0,0) size 785x887 >- RenderBody {BODY} at (8,21) size 769x841 >+layer at (0,0) size 785x893 >+ RenderBlock {HTML} at (0,0) size 785x893 >+ RenderBody {BODY} at (8,21) size 769x847 > RenderBlock {H1} at (0,0) size 769x74 > RenderText {#text} at (0,0) size 747x74 > text run at (0,0) width 747: "Problem: Safari improperly handles generated content" >@@ -15,44 +15,44 @@ layer at (0,0) size 785x887 > RenderBlock {P} at (0,147) size 769x37 > RenderText {#text} at (0,0) size 124x18 > text run at (0,0) width 124: "Assume we have a " >- RenderInline {CODE} at (0,0) size 24x15 >- RenderText {#text} at (123,2) size 24x15 >- text run at (123,2) width 24: "div" >- RenderText {#text} at (146,0) size 150x18 >- text run at (146,0) width 150: " with two class names: " >- RenderInline {CODE} at (0,0) size 25x15 >- RenderText {#text} at (295,2) size 25x15 >- text run at (295,2) width 25: "box" >- RenderText {#text} at (319,0) size 32x18 >- text run at (319,0) width 32: " and " >- RenderInline {CODE} at (0,0) size 24x15 >- RenderText {#text} at (350,2) size 24x15 >- text run at (350,2) width 24: "one" >- RenderText {#text} at (373,0) size 85x18 >- text run at (373,0) width 85: ". Within that " >- RenderInline {CODE} at (0,0) size 24x15 >- RenderText {#text} at (457,2) size 24x15 >- text run at (457,2) width 24: "div" >- RenderText {#text} at (480,0) size 77x18 >- text run at (480,0) width 77: ", we have a " >- RenderInline {CODE} at (0,0) size 9x15 >- RenderText {#text} at (556,2) size 9x15 >- text run at (556,2) width 9: "p" >- RenderText {#text} at (564,0) size 748x36 >- text run at (564,0) width 184: " (paragraph) tag, after which" >+ RenderInline {CODE} at (0,0) size 27x16 >+ RenderText {#text} at (123,1) size 27x16 >+ text run at (123,1) width 27: "div" >+ RenderText {#text} at (149,0) size 150x18 >+ text run at (149,0) width 150: " with two class names: " >+ RenderInline {CODE} at (0,0) size 28x16 >+ RenderText {#text} at (298,1) size 28x16 >+ text run at (298,1) width 28: "box" >+ RenderText {#text} at (325,0) size 32x18 >+ text run at (325,0) width 32: " and " >+ RenderInline {CODE} at (0,0) size 27x16 >+ RenderText {#text} at (356,1) size 27x16 >+ text run at (356,1) width 27: "one" >+ RenderText {#text} at (382,0) size 85x18 >+ text run at (382,0) width 85: ". Within that " >+ RenderInline {CODE} at (0,0) size 27x16 >+ RenderText {#text} at (466,1) size 27x16 >+ text run at (466,1) width 27: "div" >+ RenderText {#text} at (492,0) size 77x18 >+ text run at (492,0) width 77: ", we have a " >+ RenderInline {CODE} at (0,0) size 10x16 >+ RenderText {#text} at (568,1) size 10x16 >+ text run at (568,1) width 10: "p" >+ RenderText {#text} at (577,0) size 761x36 >+ text run at (577,0) width 184: " (paragraph) tag, after which" > text run at (0,18) width 509: "we'd like to insert generated content. One way to do so would be the following:" >- RenderBlock {PRE} at (20,199) size 749x16 [color=#FF0000] >- RenderInline {CODE} at (0,0) size 445x15 >- RenderText {#text} at (0,0) size 445x15 >- text run at (0,0) width 445: "div.box.one p:after{ content:'generated content here!'; }" >- RenderBlock {P} at (0,230) size 769x19 >+ RenderBlock {PRE} at (20,199) size 749x18 [color=#FF0000] >+ RenderInline {CODE} at (0,0) size 502x16 >+ RenderText {#text} at (0,0) size 502x16 >+ text run at (0,0) width 502: "div.box.one p:after{ content:'generated content here!'; }" >+ RenderBlock {P} at (0,232) size 769x19 > RenderText {#text} at (0,0) size 741x18 > text run at (0,0) width 741: "But that doesn't work in Safari. However, if you drop one of the class names, as shown below, it works as expected:" >- RenderBlock {PRE} at (20,264) size 749x16 [color=#008000] >- RenderInline {CODE} at (0,0) size 414x15 >- RenderText {#text} at (0,0) size 414x15 >- text run at (0,0) width 414: "div.box p:after{ content:'generated content here!'; }" >- RenderBlock {P} at (0,295) size 769x37 >+ RenderBlock {PRE} at (20,266) size 749x18 [color=#008000] >+ RenderInline {CODE} at (0,0) size 467x16 >+ RenderText {#text} at (0,0) size 467x16 >+ text run at (0,0) width 467: "div.box p:after{ content:'generated content here!'; }" >+ RenderBlock {P} at (0,299) size 769x37 > RenderText {#text} at (0,0) size 294x18 > text run at (0,0) width 294: "Note also that the bug only applies to content " > RenderInline {EM} at (0,0) size 41x18 >@@ -66,15 +66,15 @@ layer at (0,0) size 785x887 > text run at (0,18) width 85: "element itself" > RenderText {#text} at (84,18) size 77x18 > text run at (84,18) width 77: " works fine:" >- RenderBlock {PRE} at (20,347) size 749x16 [color=#008000] >- RenderInline {CODE} at (0,0) size 430x15 >- RenderText {#text} at (0,0) size 430x15 >- text run at (0,0) width 430: "div.box.one:after{ content:'generated content here!'; }" >- RenderBlock {HR} at (0,375) size 769x3 [border: (1px inset #000000)] >- RenderBlock {H2} at (0,397) size 769x29 >+ RenderBlock {PRE} at (20,351) size 749x18 [color=#008000] >+ RenderInline {CODE} at (0,0) size 485x16 >+ RenderText {#text} at (0,0) size 485x16 >+ text run at (0,0) width 485: "div.box.one:after{ content:'generated content here!'; }" >+ RenderBlock {HR} at (0,381) size 769x3 [border: (1px inset #000000)] >+ RenderBlock {H2} at (0,403) size 769x29 > RenderText {#text} at (0,0) size 477x28 > text run at (0,0) width 477: "Example (view source to see CSS and HTML):" >- RenderBlock {P} at (0,445) size 769x19 >+ RenderBlock {P} at (0,451) size 769x19 > RenderText {#text} at (0,0) size 340x18 > text run at (0,0) width 340: "Both boxes below should contain generated content (" > RenderInline {SPAN} at (0,0) size 53x18 [color=#008000] >@@ -82,7 +82,7 @@ layer at (0,0) size 785x887 > text run at (339,0) width 53: "in green" > RenderText {#text} at (391,0) size 11x18 > text run at (391,0) width 11: "):" >- RenderBlock {DIV} at (0,488) size 769x164 [border: (1px solid #000000)] >+ RenderBlock {DIV} at (0,494) size 769x164 [border: (1px solid #000000)] > RenderBlock {H3} at (26,44) size 717x23 > RenderText {#text} at (0,0) size 46x22 > text run at (0,0) width 46: "Box 1" >@@ -93,7 +93,7 @@ layer at (0,0) size 785x887 > RenderBlock (generated) at (0,18) size 717x18 [color=#008000] > RenderText at (0,0) size 114x18 > text run at (0,0) width 114: "generated content" >- RenderBlock {DIV} at (0,676) size 769x165 [border: (1px solid #000000)] >+ RenderBlock {DIV} at (0,682) size 769x165 [border: (1px solid #000000)] > RenderBlock {H3} at (26,44) size 717x23 > RenderText {#text} at (0,0) size 46x22 > text run at (0,0) width 46: "Box 2" >diff --git a/LayoutTests/platform/mac/fast/css/line-height-font-order-expected.txt b/LayoutTests/platform/mac/fast/css/line-height-font-order-expected.txt >index cad7b8c091e280b5c463d1bbcac2117a053ace4a..e60541972a97175a212fa9100116f41efb6e1853 100644 >--- a/LayoutTests/platform/mac/fast/css/line-height-font-order-expected.txt >+++ b/LayoutTests/platform/mac/fast/css/line-height-font-order-expected.txt >@@ -1,8 +1,8 @@ > layer at (0,0) size 800x600 > RenderView at (0,0) size 800x600 >-layer at (0,0) size 800x196 >- RenderBlock {HTML} at (0,0) size 800x196 >- RenderBody {BODY} at (8,15) size 784x166 >+layer at (0,0) size 800x195 >+ RenderBlock {HTML} at (0,0) size 800x195 >+ RenderBody {BODY} at (8,15) size 784x165 > RenderBlock {P} at (0,0) size 784x75 > RenderText {#text} at (0,29) size 95x17 > text run at (0,29) width 95: "This tests bug " >@@ -11,11 +11,11 @@ layer at (0,0) size 800x196 > text run at (94,29) width 651: "Bug 13174: line-height in font shorthand does not override a previously stated line-height property" > RenderText {#text} at (744,29) size 6x17 > text run at (744,29) width 6: "." >- RenderBlock {P} at (0,90) size 784x76 >+ RenderBlock {P} at (0,90) size 784x75 > RenderText {#text} at (0,29) size 130x17 > text run at (0,29) width 130: "This text should be " >- RenderInline {CODE} at (0,0) size 190x17 >- RenderText {#text} at (129,30) size 190x17 >- text run at (129,30) width 190: "font:15px/5em Georgia" >+ RenderInline {CODE} at (0,0) size 190x19 >+ RenderText {#text} at (129,28) size 190x19 >+ text run at (129,28) width 190: "font:15px/5em Georgia" > RenderText {#text} at (318,29) size 5x17 > text run at (318,29) width 5: "." >diff --git a/LayoutTests/platform/mac/fast/overflow/007-expected.txt b/LayoutTests/platform/mac/fast/overflow/007-expected.txt >index c76725c4dcd2451e5806ae89253ad967d7f724b6..d10a21facfa20e2353dcbd8fbf7d42e66576317f 100644 >--- a/LayoutTests/platform/mac/fast/overflow/007-expected.txt >+++ b/LayoutTests/platform/mac/fast/overflow/007-expected.txt >@@ -8,26 +8,26 @@ layer at (143,32) size 514x146 clip at (144,33) size 497x144 scrollHeight 313 > RenderBlock {P} at (17,17) size 465x72 > RenderText {#text} at (0,0) size 225x18 > text run at (0,0) width 225: "This page is to test the behavior of " >- RenderInline {CODE} at (0,0) size 134x15 >- RenderText {#text} at (224,2) size 134x15 >- text run at (224,2) width 134: "position:absolute" >+ RenderInline {CODE} at (0,0) size 134x16 >+ RenderText {#text} at (224,1) size 134x16 >+ text run at (224,1) width 134: "position:absolute" > RenderText {#text} at (357,0) size 452x36 > text run at (357,0) width 95: " content which" > text run at (0,18) width 294: "is a child of an overflowed parent object with " >- RenderInline {CODE} at (0,0) size 103x15 >- RenderText {#text} at (293,20) size 103x15 >- text run at (293,20) width 103: "overflow:auto" >+ RenderInline {CODE} at (0,0) size 103x16 >+ RenderText {#text} at (293,19) size 103x16 >+ text run at (293,19) width 103: "overflow:auto" > RenderText {#text} at (395,18) size 432x36 > text run at (395,18) width 37: ", both" > text run at (0,36) width 176: "when the parent element is " >- RenderInline {CODE} at (0,0) size 118x15 >- RenderText {#text} at (175,38) size 118x15 >- text run at (175,38) width 118: "position:static" >+ RenderInline {CODE} at (0,0) size 118x16 >+ RenderText {#text} at (175,37) size 118x16 >+ text run at (175,37) width 118: "position:static" > RenderText {#text} at (292,36) size 95x18 > text run at (292,36) width 95: " (top case) and" >- RenderInline {CODE} at (0,0) size 133x15 >- RenderText {#text} at (0,56) size 133x15 >- text run at (0,56) width 133: "position:relative" >+ RenderInline {CODE} at (0,0) size 133x16 >+ RenderText {#text} at (0,55) size 133x16 >+ text run at (0,55) width 133: "position:relative" > RenderText {#text} at (132,54) size 97x18 > text run at (132,54) width 97: " (bottom case)." > RenderBlock {P} at (17,105) size 465x180 [color=#999999] >@@ -57,9 +57,9 @@ layer at (143,210) size 514x146 clip at (144,211) size 497x144 scrollHeight 365 > RenderBlock {P} at (17,69) size 465x72 > RenderText {#text} at (0,0) size 410x18 > text run at (0,0) width 410: "Safari v1.2.2 also (really odd) causes the entire second div to be" >- RenderInline {CODE} at (0,0) size 86x15 >- RenderText {#text} at (0,20) size 86x15 >- text run at (0,20) width 86: "opacity:0.5" >+ RenderInline {CODE} at (0,0) size 86x16 >+ RenderText {#text} at (0,19) size 86x16 >+ text run at (0,19) width 86: "opacity:0.5" > RenderText {#text} at (85,18) size 450x54 > text run at (85,18) width 358: ", despite the fact that this property is only applied to the" > text run at (0,36) width 450: "child item. This problem fixes itself if you resize the window and then" >diff --git a/LayoutTests/platform/mac/fast/text/hyphenate-avoid-orphaned-word-expected.txt b/LayoutTests/platform/mac/fast/text/hyphenate-avoid-orphaned-word-expected.txt >index 2131efb3f61ba352bb750c73796cbd8a5bdc389c..97d328d9783377497f128e6a69d765ae16f15955 100644 >--- a/LayoutTests/platform/mac/fast/text/hyphenate-avoid-orphaned-word-expected.txt >+++ b/LayoutTests/platform/mac/fast/text/hyphenate-avoid-orphaned-word-expected.txt >@@ -7,9 +7,9 @@ layer at (0,0) size 800x600 > RenderBlock {P} at (0,16) size 344x18 > RenderText {#text} at (0,0) size 208x18 > text run at (0,0) width 208: "The initial value (should be like " >- RenderInline {TT} at (0,0) size 33x15 >- RenderText {#text} at (207,2) size 33x15 >- text run at (207,2) width 33: "auto" >+ RenderInline {TT} at (0,0) size 33x16 >+ RenderText {#text} at (207,1) size 33x16 >+ text run at (207,1) width 33: "auto" > RenderText {#text} at (239,0) size 6x18 > text run at (239,0) width 6: ")" > RenderBlock {DIV} at (0,50) size 344x190 [border: (3px solid #000000)] >@@ -29,9 +29,9 @@ layer at (0,0) size 800x600 > RenderBlock {P} at (0,16) size 344x18 > RenderText {#text} at (0,0) size 83x18 > text run at (0,0) width 83: "The default (" >- RenderInline {TT} at (0,0) size 196x15 >- RenderText {#text} at (82,2) size 196x15 >- text run at (82,2) width 196: "hyphenate-character: auto" >+ RenderInline {TT} at (0,0) size 196x16 >+ RenderText {#text} at (82,1) size 196x16 >+ text run at (82,1) width 196: "hyphenate-character: auto" > RenderText {#text} at (277,0) size 6x18 > text run at (277,0) width 6: ")" > RenderBlock {DIV} at (0,50) size 344x190 [border: (3px solid #000000)] >@@ -51,9 +51,9 @@ layer at (0,0) size 800x600 > RenderBlock {P} at (0,16) size 344x18 > RenderText {#text} at (0,0) size 49x18 > text run at (0,0) width 49: "Bullet (" >- RenderInline {TT} at (0,0) size 219x15 >- RenderText {#text} at (48,2) size 219x15 >- text run at (48,2) width 219: "hyphenate-character: \"\\2022\"" >+ RenderInline {TT} at (0,0) size 219x16 >+ RenderText {#text} at (48,1) size 219x16 >+ text run at (48,1) width 219: "hyphenate-character: \"\\2022\"" > RenderText {#text} at (266,0) size 7x18 > text run at (266,0) width 7: ")" > RenderBlock {DIV} at (0,50) size 344x190 [border: (3px solid #000000)] >@@ -73,9 +73,9 @@ layer at (0,0) size 800x600 > RenderBlock {P} at (0,16) size 356x18 > RenderText {#text} at (0,0) size 140x18 > text run at (0,0) width 140: "Middle dot and tilde (" >- RenderInline {TT} at (0,0) size 212x15 >- RenderText {#text} at (139,2) size 212x15 >- text run at (139,2) width 212: "hyphenate-character: \"\\B7~\"" >+ RenderInline {TT} at (0,0) size 212x16 >+ RenderText {#text} at (139,1) size 212x16 >+ text run at (139,1) width 212: "hyphenate-character: \"\\B7~\"" > RenderText {#text} at (350,0) size 6x18 > text run at (350,0) width 6: ")" > RenderBlock {DIV} at (0,50) size 344x190 [border: (3px solid #000000)] >diff --git a/LayoutTests/platform/mac/fast/text/hyphenate-character-expected.txt b/LayoutTests/platform/mac/fast/text/hyphenate-character-expected.txt >index edb29f462314eaa4e4e61403b5fdae00dcb86f9d..09a871f97c830f20129e4a7e40801819931da770 100644 >--- a/LayoutTests/platform/mac/fast/text/hyphenate-character-expected.txt >+++ b/LayoutTests/platform/mac/fast/text/hyphenate-character-expected.txt >@@ -7,9 +7,9 @@ layer at (0,0) size 800x600 > RenderBlock {P} at (0,16) size 344x18 > RenderText {#text} at (0,0) size 208x18 > text run at (0,0) width 208: "The initial value (should be like " >- RenderInline {TT} at (0,0) size 33x15 >- RenderText {#text} at (207,2) size 33x15 >- text run at (207,2) width 33: "auto" >+ RenderInline {TT} at (0,0) size 33x16 >+ RenderText {#text} at (207,1) size 33x16 >+ text run at (207,1) width 33: "auto" > RenderText {#text} at (239,0) size 6x18 > text run at (239,0) width 6: ")" > RenderBlock {DIV} at (0,50) size 344x234 [border: (3px solid #000000)] >@@ -33,9 +33,9 @@ layer at (0,0) size 800x600 > RenderBlock {P} at (0,16) size 344x18 > RenderText {#text} at (0,0) size 83x18 > text run at (0,0) width 83: "The default (" >- RenderInline {TT} at (0,0) size 196x15 >- RenderText {#text} at (82,2) size 196x15 >- text run at (82,2) width 196: "hyphenate-character: auto" >+ RenderInline {TT} at (0,0) size 196x16 >+ RenderText {#text} at (82,1) size 196x16 >+ text run at (82,1) width 196: "hyphenate-character: auto" > RenderText {#text} at (277,0) size 6x18 > text run at (277,0) width 6: ")" > RenderBlock {DIV} at (0,50) size 344x234 [border: (3px solid #000000)] >@@ -59,9 +59,9 @@ layer at (0,0) size 800x600 > RenderBlock {P} at (0,16) size 344x18 > RenderText {#text} at (0,0) size 49x18 > text run at (0,0) width 49: "Bullet (" >- RenderInline {TT} at (0,0) size 219x15 >- RenderText {#text} at (48,2) size 219x15 >- text run at (48,2) width 219: "hyphenate-character: \"\\2022\"" >+ RenderInline {TT} at (0,0) size 219x16 >+ RenderText {#text} at (48,1) size 219x16 >+ text run at (48,1) width 219: "hyphenate-character: \"\\2022\"" > RenderText {#text} at (266,0) size 7x18 > text run at (266,0) width 7: ")" > RenderBlock {DIV} at (0,50) size 344x234 [border: (3px solid #000000)] >@@ -85,9 +85,9 @@ layer at (0,0) size 800x600 > RenderBlock {P} at (0,16) size 356x18 > RenderText {#text} at (0,0) size 140x18 > text run at (0,0) width 140: "Middle dot and tilde (" >- RenderInline {TT} at (0,0) size 212x15 >- RenderText {#text} at (139,2) size 212x15 >- text run at (139,2) width 212: "hyphenate-character: \"\\B7~\"" >+ RenderInline {TT} at (0,0) size 212x16 >+ RenderText {#text} at (139,1) size 212x16 >+ text run at (139,1) width 212: "hyphenate-character: \"\\B7~\"" > RenderText {#text} at (350,0) size 6x18 > text run at (350,0) width 6: ")" > RenderBlock {DIV} at (0,50) size 344x234 [border: (3px solid #000000)] >diff --git a/LayoutTests/platform/mac/fast/text/hyphens-expected.txt b/LayoutTests/platform/mac/fast/text/hyphens-expected.txt >index 1c762c9b857cb40e6a5bd99004d01179552bf9b5..3095d257986dfef200c2ada488541161e94c41af 100644 >--- a/LayoutTests/platform/mac/fast/text/hyphens-expected.txt >+++ b/LayoutTests/platform/mac/fast/text/hyphens-expected.txt >@@ -5,9 +5,9 @@ layer at (0,0) size 800x600 > RenderBody {BODY} at (8,8) size 784x584 > RenderBlock (floating) {DIV} at (4,0) size 344x284 > RenderBlock {P} at (0,16) size 344x18 >- RenderInline {TT} at (0,0) size 118x15 >- RenderText {#text} at (0,2) size 118x15 >- text run at (0,2) width 118: "hyphens: manual" >+ RenderInline {TT} at (0,0) size 118x16 >+ RenderText {#text} at (0,1) size 118x16 >+ text run at (0,1) width 118: "hyphens: manual" > RenderText {#text} at (117,0) size 139x18 > text run at (117,0) width 139: " without soft hyphens" > RenderBlock {DIV} at (0,50) size 344x234 [border: (3px solid #000000)] >@@ -28,9 +28,9 @@ layer at (0,0) size 800x600 > text run at (7,205) width 271: "itself round and look up in her face\x{2026}" > RenderBlock (floating) {DIV} at (356,0) size 344x284 > RenderBlock {P} at (0,16) size 344x18 >- RenderInline {TT} at (0,0) size 102x15 >- RenderText {#text} at (0,2) size 102x15 >- text run at (0,2) width 102: "hyphens: none" >+ RenderInline {TT} at (0,0) size 102x16 >+ RenderText {#text} at (0,1) size 102x16 >+ text run at (0,1) width 102: "hyphens: none" > RenderText {#text} at (101,0) size 119x18 > text run at (101,0) width 119: " with soft hyphens" > RenderBlock {DIV} at (0,50) size 344x234 [border: (3px solid #000000)] >@@ -51,9 +51,9 @@ layer at (0,0) size 800x600 > text run at (7,205) width 271: "itself round and look up in her face\x{2026}" > RenderBlock (floating) {DIV} at (4,284) size 344x284 > RenderBlock {P} at (0,16) size 344x18 >- RenderInline {TT} at (0,0) size 118x15 >- RenderText {#text} at (0,2) size 118x15 >- text run at (0,2) width 118: "hyphens: manual" >+ RenderInline {TT} at (0,0) size 118x16 >+ RenderText {#text} at (0,1) size 118x16 >+ text run at (0,1) width 118: "hyphens: manual" > RenderText {#text} at (117,0) size 118x18 > text run at (117,0) width 118: " with soft hyphens" > RenderBlock {DIV} at (0,50) size 344x234 [border: (3px solid #000000)] >@@ -75,9 +75,9 @@ layer at (0,0) size 800x600 > text run at (7,205) width 230: "round and look up in her face\x{2026}" > RenderBlock (floating) {DIV} at (356,284) size 344x284 > RenderBlock {P} at (0,16) size 344x18 >- RenderInline {TT} at (0,0) size 102x15 >- RenderText {#text} at (0,2) size 102x15 >- text run at (0,2) width 102: "hyphens: auto" >+ RenderInline {TT} at (0,0) size 102x16 >+ RenderText {#text} at (0,1) size 102x16 >+ text run at (0,1) width 102: "hyphens: auto" > RenderText {#text} at (101,0) size 139x18 > text run at (101,0) width 139: " without soft hyphens" > RenderBlock {DIV} at (0,50) size 344x234 [border: (3px solid #000000)] >diff --git a/LayoutTests/platform/mac/svg/custom/object-sizing-expected.txt b/LayoutTests/platform/mac/svg/custom/object-sizing-expected.txt >index 38270f646b25c90843e6d7d058ae93ca0c91d866..6ab4e67afaf4e287944c738b07b0d4bb15112590 100644 >--- a/LayoutTests/platform/mac/svg/custom/object-sizing-expected.txt >+++ b/LayoutTests/platform/mac/svg/custom/object-sizing-expected.txt >@@ -22,18 +22,18 @@ layer at (0,0) size 800x392 > RenderListMarker at (-17,0) size 7x18: bullet > RenderText {#text} at (0,0) size 29x18 > text run at (0,0) width 29: "The " >- RenderInline {code} at (0,0) size 25x15 >- RenderText {#text} at (28,2) size 25x15 >- text run at (28,2) width 25: "div" >+ RenderInline {code} at (0,0) size 25x16 >+ RenderText {#text} at (28,1) size 25x16 >+ text run at (28,1) width 25: "div" > RenderText {#text} at (52,0) size 248x18 > text run at (52,0) width 248: " containing the object appears in green" > RenderListItem {li} at (40,18) size 744x18 > RenderListMarker at (-17,0) size 7x18: bullet > RenderText {#text} at (0,0) size 29x18 > text run at (0,0) width 29: "The " >- RenderInline {code} at (0,0) size 48x15 >- RenderText {#text} at (28,2) size 48x15 >- text run at (28,2) width 48: "object" >+ RenderInline {code} at (0,0) size 48x16 >+ RenderText {#text} at (28,1) size 48x16 >+ text run at (28,1) width 48: "object" > RenderText {#text} at (75,0) size 278x18 > text run at (75,0) width 278: " appears in orange. Its height is set at 13em" > RenderListItem {li} at (40,36) size 744x18 >diff --git a/LayoutTests/platform/mac/tables/mozilla/bugs/bug10269-2-expected.txt b/LayoutTests/platform/mac/tables/mozilla/bugs/bug10269-2-expected.txt >index adcce9394e9f4735ba6cf0ba486bcf2439182e1e..c8e058e3f6223c3cbfa90165247569c01fae9c74 100644 >--- a/LayoutTests/platform/mac/tables/mozilla/bugs/bug10269-2-expected.txt >+++ b/LayoutTests/platform/mac/tables/mozilla/bugs/bug10269-2-expected.txt >@@ -9,9 +9,9 @@ layer at (0,0) size 785x6848 > RenderBlock {P} at (0,58) size 769x19 > RenderText {#text} at (0,0) size 575x18 > text run at (0,0) width 575: "The following tables should be laid out in the traditional manner because their widths are " >- RenderInline {CODE} at (0,0) size 32x15 >- RenderText {#text} at (574,2) size 32x15 >- text run at (574,2) width 32: "auto" >+ RenderInline {CODE} at (0,0) size 32x16 >+ RenderText {#text} at (574,1) size 32x16 >+ text run at (574,1) width 32: "auto" > RenderText {#text} at (605,0) size 6x18 > text run at (605,0) width 6: ":" > RenderTable {TABLE} at (0,92) size 111x51 >diff --git a/LayoutTests/platform/mac/tables/mozilla/bugs/bug10296-1-expected.txt b/LayoutTests/platform/mac/tables/mozilla/bugs/bug10296-1-expected.txt >index d75ff05c5cc5922eed6bcf651f71762d7d8c9106..5b29eff975585ad2d9e8c02ac3237f6ac71ab357 100644 >--- a/LayoutTests/platform/mac/tables/mozilla/bugs/bug10296-1-expected.txt >+++ b/LayoutTests/platform/mac/tables/mozilla/bugs/bug10296-1-expected.txt >@@ -9,19 +9,19 @@ layer at (0,0) size 785x5950 > RenderBlock {P} at (0,58) size 769x55 > RenderText {#text} at (0,0) size 275x18 > text run at (0,0) width 275: "The following three tables have heights of " >- RenderInline {CODE} at (0,0) size 32x15 >- RenderText {#text} at (274,2) size 32x15 >- text run at (274,2) width 32: "auto" >+ RenderInline {CODE} at (0,0) size 32x16 >+ RenderText {#text} at (274,1) size 32x16 >+ text run at (274,1) width 32: "auto" > RenderText {#text} at (305,0) size 9x18 > text run at (305,0) width 9: ", " >- RenderInline {CODE} at (0,0) size 32x15 >- RenderText {#text} at (313,2) size 32x15 >- text run at (313,2) width 32: "30px" >+ RenderInline {CODE} at (0,0) size 32x16 >+ RenderText {#text} at (313,1) size 32x16 >+ text run at (313,1) width 32: "30px" > RenderText {#text} at (344,0) size 36x18 > text run at (344,0) width 36: ", and " >- RenderInline {CODE} at (0,0) size 40x15 >- RenderText {#text} at (379,2) size 40x15 >- text run at (379,2) width 40: "500px" >+ RenderInline {CODE} at (0,0) size 40x16 >+ RenderText {#text} at (379,1) size 40x16 >+ text run at (379,1) width 40: "500px" > RenderText {#text} at (418,0) size 764x54 > text run at (418,0) width 9: ". " > text run at (426,0) width 338: "The first one should have the height of the sum of its" >@@ -347,14 +347,14 @@ layer at (0,0) size 785x5950 > RenderBlock {P} at (0,1756) size 769x55 > RenderText {#text} at (0,0) size 154x18 > text run at (0,0) width 154: "The following tests test " >- RenderInline {CODE} at (0,0) size 48x15 >- RenderText {#text} at (153,2) size 48x15 >- text run at (153,2) width 48: "height" >+ RenderInline {CODE} at (0,0) size 48x16 >+ RenderText {#text} at (153,1) size 48x16 >+ text run at (153,1) width 48: "height" > RenderText {#text} at (200,0) size 170x18 > text run at (200,0) width 170: " on table rows. A value of " >- RenderInline {CODE} at (0,0) size 32x15 >- RenderText {#text} at (369,2) size 32x15 >- text run at (369,2) width 32: "auto" >+ RenderInline {CODE} at (0,0) size 32x16 >+ RenderText {#text} at (369,1) size 32x16 >+ text run at (369,1) width 32: "auto" > RenderText {#text} at (400,0) size 761x54 > text run at (400,0) width 325: " requires the minimum height needed by the cells. " > text run at (724,0) width 25: "In a" >@@ -378,9 +378,9 @@ layer at (0,0) size 785x5950 > RenderBlock {P} at (0,1886) size 769x37 > RenderText {#text} at (0,0) size 218x18 > text run at (0,0) width 218: "However, vertical-align values of " >- RenderInline {CODE} at (0,0) size 63x15 >- RenderText {#text} at (217,2) size 63x15 >- text run at (217,2) width 63: "baseline" >+ RenderInline {CODE} at (0,0) size 63x16 >+ RenderText {#text} at (217,1) size 63x16 >+ text run at (217,1) width 63: "baseline" > RenderText {#text} at (279,0) size 759x36 > text run at (279,0) width 480: " (the default, but could be overridden in a UA stylesheet) can make it taller" > text run at (0,18) width 60: "than that:" >diff --git a/LayoutTests/platform/mac/tables/mozilla/bugs/bug139524-2-expected.txt b/LayoutTests/platform/mac/tables/mozilla/bugs/bug139524-2-expected.txt >index 11c8e4698a34d9085948b7f68b4e557c28fa2947..d95c906c5b692e529fee2b1e40442a2b820dad8c 100644 >--- a/LayoutTests/platform/mac/tables/mozilla/bugs/bug139524-2-expected.txt >+++ b/LayoutTests/platform/mac/tables/mozilla/bugs/bug139524-2-expected.txt >@@ -1,8 +1,8 @@ > layer at (0,0) size 800x600 > RenderView at (0,0) size 800x600 >-layer at (0,0) size 800x357 >- RenderBlock {HTML} at (0,0) size 800x358 >- RenderBody {BODY} at (8,18) size 784x332 >+layer at (0,0) size 800x365 >+ RenderBlock {HTML} at (0,0) size 800x366 >+ RenderBody {BODY} at (8,18) size 784x340 > RenderBlock {H3} at (0,0) size 784x22 > RenderText {#text} at (0,0) size 520x22 > text run at (0,0) width 520: "SPAN attribute of COL element being ignored in Mozilla 1.0 rc1" >@@ -13,22 +13,22 @@ layer at (0,0) size 800x357 > RenderBlock {P} at (0,92) size 784x19 > RenderText {#text} at (0,0) size 354x18 > text run at (0,0) width 354: "The following TABLE has a COLGROUP structure of:" >- RenderBlock {PRE} at (15,126) size 769x61 [color=#000066] >- RenderText {#text} at (0,0) size 211x60 >+ RenderBlock {PRE} at (15,126) size 769x69 [color=#000066] >+ RenderText {#text} at (0,0) size 211x67 > text run at (0,0) width 79: "<colgroup>" >- text run at (0,15) width 211: " <col width=\"100\" span=\"2\">" >- text run at (0,30) width 141: " <col width=\"200\">" >- text run at (0,45) width 86: "</colgroup>" >- RenderBlock {P} at (0,202) size 784x19 >+ text run at (0,17) width 211: " <col width=\"100\" span=\"2\">" >+ text run at (0,34) width 141: " <col width=\"200\">" >+ text run at (0,51) width 86: "</colgroup>" >+ RenderBlock {P} at (0,210) size 784x19 > RenderText {#text} at (0,0) size 563x18 > text run at (0,0) width 563: "So the first two colums should both be 100px wide, and the third should be 200px wide." >- RenderBlock {P} at (0,236) size 784x19 >+ RenderBlock {P} at (0,244) size 784x19 > RenderText {#text} at (0,0) size 580x18 > text run at (0,0) width 580: "However, the first column is 100px, the second is 200px, and the third is the default width." >- RenderBlock {P} at (0,270) size 784x19 >+ RenderBlock {P} at (0,278) size 784x19 > RenderText {#text} at (0,0) size 384x18 > text run at (0,0) width 384: "So it would appear that the SPAN attribute is being ignored." >- RenderTable {TABLE} at (0,304) size 408x27 >+ RenderTable {TABLE} at (0,312) size 408x27 > RenderTableCol {COLGROUP} at (0,0) size 0x0 > RenderTableCol {COL} at (0,0) size 0x0 > RenderTableCol {COL} at (0,0) size 0x0 >diff --git a/LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt b/LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt >index 515eba8998ec8968815f906603f1c5de5f3f490a..8a37260bd7170153edc3eef70b5b9a3195005f99 100644 >--- a/LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt >+++ b/LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt >@@ -1,10 +1,10 @@ >-layer at (0,0) size 785x1443 >+layer at (0,0) size 785x1445 > RenderView at (0,0) size 785x600 >-layer at (8,8) size 769x1435 >- RenderBlock {HTML} at (8,8) size 769x1435 [bgcolor=#008000] [border: (16px solid #00FF00)] >- RenderTable at (16,16) size 737x1403 >- RenderTableSection (anonymous) at (0,0) size 737x1403 >- RenderTableRow (anonymous) at (0,0) size 737x1403 >+layer at (8,8) size 769x1437 >+ RenderBlock {HTML} at (8,8) size 769x1437 [bgcolor=#008000] [border: (16px solid #00FF00)] >+ RenderTable at (16,16) size 737x1405 >+ RenderTableSection (anonymous) at (0,0) size 737x1405 >+ RenderTableRow (anonymous) at (0,0) size 737x1405 > RenderTableCell {HEAD} at (0,0) size 242x472 [color=#FFFFFF] [bgcolor=#FF0000] [border: (5px solid #FFFFFF)] [r=0 c=0 rs=1 cs=1] > RenderBlock {META} at (21,37) size 200x2 [border: (1px dotted #FFFFFF)] > RenderBlock {META} at (21,55) size 200x2 [border: (1px dotted #FFFFFF)] >@@ -38,26 +38,26 @@ layer at (8,8) size 769x1435 > text run at (1,217) width 12: "} " > text run at (12,217) width 151: "BODY { color: yellow;" > text run at (1,235) width 124: "background: teal; }" >- RenderTableCell {BODY} at (242,41) size 495x1362 [color=#FFFF00] [bgcolor=#008080] [border: (5px solid #FFFF00)] [r=0 c=1 rs=1 cs=1] >+ RenderTableCell {BODY} at (242,41) size 495x1364 [color=#FFFF00] [bgcolor=#008080] [border: (5px solid #FFFF00)] [r=0 c=1 rs=1 cs=1] > RenderBlock {H1} at (21,53) size 453x76 [border: (1px dotted #FFFF00)] > RenderText {#text} at (1,1) size 152x37 > text run at (1,1) width 152: "Rendering " >- RenderInline {CODE} at (0,0) size 63x30 >- RenderText {#text} at (153,6) size 63x30 >- text run at (153,6) width 63: "BODY" >- RenderText {#text} at (215,1) size 69x37 >- text run at (215,1) width 69: " and " >- RenderInline {CODE} at (0,0) size 63x30 >- RenderText {#text} at (283,6) size 63x30 >- text run at (283,6) width 63: "HEAD" >- RenderText {#text} at (345,1) size 381x74 >- text run at (345,1) width 37: " as" >+ RenderInline {CODE} at (0,0) size 67x33 >+ RenderText {#text} at (153,4) size 67x33 >+ text run at (153,4) width 67: "BODY" >+ RenderText {#text} at (219,1) size 69x37 >+ text run at (219,1) width 69: " and " >+ RenderInline {CODE} at (0,0) size 67x33 >+ RenderText {#text} at (287,4) size 67x33 >+ text run at (287,4) width 67: "HEAD" >+ RenderText {#text} at (353,1) size 389x74 >+ text run at (353,1) width 37: " as" > text run at (1,38) width 156: "children of " >- RenderInline {CODE} at (0,0) size 64x30 >- RenderText {#text} at (156,43) size 64x30 >- text run at (156,43) width 64: "HTML" >- RenderText {#text} at (219,38) size 43x37 >- text run at (219,38) width 43: " - 2" >+ RenderInline {CODE} at (0,0) size 68x33 >+ RenderText {#text} at (156,41) size 68x33 >+ text run at (156,41) width 68: "HTML" >+ RenderText {#text} at (223,38) size 43x37 >+ text run at (223,38) width 43: " - 2" > RenderBlock {P} at (21,161) size 453x38 [border: (1px dotted #FFFF00)] > RenderText {#text} at (1,1) size 393x18 > text run at (1,1) width 393: "If you have any comments to make regarding this test, e-mail" >@@ -75,9 +75,9 @@ layer at (8,8) size 769x1435 > text run at (0,0) width 392: "Browsers that are subjected to this test should support the the" > text run at (0,18) width 388: "background, padding, margin, border and color properties of" > text run at (0,36) width 160: "CSS, and in addition the " >- RenderInline {CODE} at (0,0) size 63x15 >- RenderText {#text} at (160,38) size 63x15 >- text run at (160,38) width 63: "overflow" >+ RenderInline {CODE} at (0,0) size 63x16 >+ RenderText {#text} at (160,37) size 63x16 >+ text run at (160,37) width 63: "overflow" > RenderText {#text} at (222,36) size 400x36 > text run at (222,36) width 178: " property and fixed position" > text run at (0,54) width 109: "stuff from CSS2." >@@ -96,44 +96,44 @@ layer at (8,8) size 769x1435 > text run at (1,55) width 388: "separated by a blank line, followed by a dotted bordered box" > text run at (1,73) width 403: "containing the document title, and another dotted bordered box" > text run at (1,91) width 286: "containing the stylesheet, also shown below:" >- RenderBlock {PRE} at (21,575) size 453x17 [border: (1px dotted #FFFF00)] >- RenderText {#text} at (1,1) size 40x15 >+ RenderBlock {PRE} at (21,575) size 453x19 [border: (1px dotted #FFFF00)] >+ RenderText {#text} at (1,1) size 40x16 > text run at (1,1) width 40: " ..." >- RenderBlock {P} at (21,608) size 453x38 [border: (1px dotted #FFFF00)] >+ RenderBlock {P} at (21,610) size 453x38 [border: (1px dotted #FFFF00)] > RenderText {#text} at (1,1) size 419x36 > text run at (1,1) width 419: "The dotted borders and lines and the text in the left cell should be" > text run at (1,19) width 40: "white." >- RenderBlock {P} at (21,662) size 453x38 [border: (1px dotted #FFFF00)] >+ RenderBlock {P} at (21,664) size 453x38 [border: (1px dotted #FFFF00)] > RenderText {#text} at (1,1) size 447x36 > text run at (1,1) width 447: "The right cell should be teal, with yellow text. This paragraph you are" > text run at (1,19) width 255: "reading now should be in this right cell." >- RenderBlock {P} at (21,716) size 453x38 [border: (1px dotted #FFFF00)] >+ RenderBlock {P} at (21,718) size 453x38 [border: (1px dotted #FFFF00)] > RenderText {#text} at (1,1) size 413x36 > text run at (1,1) width 413: "The width of the two cells is left up to the user agent to decide, I" > text run at (1,19) width 37: "think." >- RenderBlock {P} at (21,770) size 453x74 [border: (1px dotted #FFFF00)] >+ RenderBlock {P} at (21,772) size 453x74 [border: (1px dotted #FFFF00)] > RenderText {#text} at (1,1) size 443x72 > text run at (1,1) width 443: "The right cell should look similar to the left cell in formatting -- each" > text run at (1,19) width 442: "box of text should have a yellow dotted border, and there should be a" > text run at (1,37) width 420: "blank line between each such box. No box should be nested -- the" > text run at (1,55) width 356: "dotted boxes should always be distinct from each other." >- RenderBlock {P} at (21,860) size 453x38 [border: (1px dotted #FFFF00)] >+ RenderBlock {P} at (21,862) size 453x38 [border: (1px dotted #FFFF00)] > RenderText {#text} at (1,1) size 417x36 > text run at (1,1) width 417: "The cells should be the same height, and they should have grown" > text run at (1,19) width 229: "vertically to accommodate this text." >- RenderBlock {P} at (21,914) size 453x56 [border: (1px dotted #FFFF00)] >+ RenderBlock {P} at (21,916) size 453x56 [border: (1px dotted #FFFF00)] > RenderText {#text} at (1,1) size 437x54 > text run at (1,1) width 436: "Around the whole setup should be two borders, dark green and light" > text run at (1,19) width 437: "green. The cells should be separated from each other and from these" > text run at (1,37) width 230: "outer borders by 1em of dark green." >- RenderBlock {P} at (21,986) size 453x38 [border: (1px dotted #FFFF00)] >+ RenderBlock {P} at (21,988) size 453x38 [border: (1px dotted #FFFF00)] > RenderText {#text} at (1,1) size 446x36 > text run at (1,1) width 446: "There should also be some alternate stylesheets set up to allow you to" > text run at (1,19) width 388: "display the <META> content. This may help with diagnosis." >- RenderBlock {H2} at (21,1048) size 453x30 [border: (1px dotted #FFFF00)] >+ RenderBlock {H2} at (21,1050) size 453x30 [border: (1px dotted #FFFF00)] > RenderText {#text} at (1,1) size 156x28 > text run at (1,1) width 156: "Submit Results" >- RenderBlock {FORM} at (21,1102) size 453x97 [border: (1px dotted #FFFF00)] >+ RenderBlock {FORM} at (21,1104) size 453x97 [border: (1px dotted #FFFF00)] > RenderBlock {P} at (1,17) size 451x63 > RenderText {#text} at (0,0) size 263x18 > text run at (0,0) width 263: "How does your browser fare on this test?" >@@ -153,14 +153,14 @@ layer at (8,8) size 769x1435 > RenderText at (0,0) size 37x13 > text run at (0,0) width 37: "Submit" > RenderText {#text} at (0,0) size 0x0 >- RenderBlock {HR} at (21,1215) size 453x2 [border: (1px dotted #FFFF00)] >- RenderBlock {P} at (21,1233) size 453x20 [border: (1px dotted #FFFF00)] >+ RenderBlock {HR} at (21,1217) size 453x2 [border: (1px dotted #FFFF00)] >+ RenderBlock {P} at (21,1235) size 453x20 [border: (1px dotted #FFFF00)] > RenderInline {A} at (0,0) size 162x18 [color=#0000EE] > RenderText {#text} at (1,1) size 162x18 > text run at (1,1) width 162: "Up to the Evil Tests Page" > RenderText {#text} at (162,1) size 5x18 > text run at (162,1) width 5: "." >- RenderBlock {P} at (21,1269) size 453x20 [border: (1px dotted #FFFF00)] >+ RenderBlock {P} at (21,1271) size 453x20 [border: (1px dotted #FFFF00)] > RenderText {#text} at (1,1) size 177x18 > text run at (1,1) width 177: "This page is maintained by " > RenderInline {A} at (0,0) size 79x18 [color=#0000EE] >@@ -173,8 +173,8 @@ layer at (8,8) size 769x1435 > text run at (264,1) width 125: "py8ieh@bath.ac.uk" > RenderText {#text} at (388,1) size 10x18 > text run at (388,1) width 10: ")." >- RenderBlock {P} at (21,1305) size 453x20 [border: (1px dotted #FFFF00)] >+ RenderBlock {P} at (21,1307) size 453x20 [border: (1px dotted #FFFF00)] > RenderText {#text} at (1,1) size 172x18 > text run at (1,1) width 172: "Last updated in June 1999." >-layer at (365,1229) size 140x13 backgroundClip at (365,1229) size 139x13 clip at (365,1229) size 139x13 >+layer at (365,1231) size 140x13 backgroundClip at (365,1231) size 139x13 clip at (365,1231) size 139x13 > RenderBlock {DIV} at (3,3) size 140x13
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 187723
:
345137
|
345200
|
345277
|
345301
|
346259
|
346260
|
346264
|
360532
|
360536
|
360538
|
360539
|
360540
|
360610
|
360624
|
360628
|
360631
|
360633
|
360654
|
360664
|
360665
|
360671
|
360679
|
360887
|
360901
|
360905
|
360909
|
360911
|
360917
|
360924
|
360932
|
360935
|
360968
|
360982
|
360985
|
360987
|
361078
|
361580
|
361737
|
361738