| Index: Source/core/inspector/InspectorCSSAgent.cpp
|
| diff --git a/Source/core/inspector/InspectorCSSAgent.cpp b/Source/core/inspector/InspectorCSSAgent.cpp
|
| index 2d18ad58ca26b5b471aa29937c595664a74622c3..9e9c8f3ebe8c9db0e3515b9dcd90f35302d47ab8 100644
|
| --- a/Source/core/inspector/InspectorCSSAgent.cpp
|
| +++ b/Source/core/inspector/InspectorCSSAgent.cpp
|
| @@ -789,16 +789,24 @@ void InspectorCSSAgent::getPlatformFontsForNode(ErrorString* errorString, int no
|
| for (size_t i = 0; i < textNodes.size(); ++i) {
|
| RenderText* renderer = textNodes[i]->renderer();
|
| collectPlatformFontsForRenderer(renderer, &fontStats);
|
| - if (renderer->isTextFragment()) {
|
| - RenderTextFragment* textFragment = toRenderTextFragment(renderer);
|
| - if (textFragment->firstLetter()) {
|
| - RenderBoxModelObject* firstLetter = textFragment->firstLetter();
|
| - for (RenderObject* current = firstLetter->slowFirstChild(); current; current = current->nextSibling()) {
|
| - if (current->isText())
|
| - collectPlatformFontsForRenderer(toRenderText(current), &fontStats);
|
| - }
|
| - }
|
| - }
|
| +
|
| + if (!renderer->isTextFragment())
|
| + continue;
|
| +
|
| + // If we're the remaining text from a first-letter then our previous
|
| + // sibling has to be the first-letter renderer.
|
| + RenderObject* previous = renderer->previousSibling();
|
| + if (!previous)
|
| + continue;
|
| +
|
| + if (!previous->isPseudoElement() || !previous->node()->isFirstLetterPseudoElement())
|
| + continue;
|
| +
|
| + // The first-letter pseudoElement only has one child, which is the
|
| + // first-letter renderer.
|
| + RenderObject* firstLetterRenderer = previous->slowFirstChild();
|
| + ASSERT(firstLetterRenderer && firstLetterRenderer->isText());
|
| + collectPlatformFontsForRenderer(toRenderText(firstLetterRenderer), &fontStats);
|
| }
|
|
|
| platformFonts = TypeBuilder::Array<TypeBuilder::CSS::PlatformFontUsage>::create();
|
|
|