OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010, Google Inc. All rights reserved. | 2 * Copyright (C) 2010, Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 #include "core/inspector/InspectorState.h" | 62 #include "core/inspector/InspectorState.h" |
63 #include "core/inspector/InstrumentingAgents.h" | 63 #include "core/inspector/InstrumentingAgents.h" |
64 #include "core/layout/LayoutObject.h" | 64 #include "core/layout/LayoutObject.h" |
65 #include "core/layout/LayoutObjectInlines.h" | 65 #include "core/layout/LayoutObjectInlines.h" |
66 #include "core/layout/LayoutText.h" | 66 #include "core/layout/LayoutText.h" |
67 #include "core/layout/LayoutTextFragment.h" | 67 #include "core/layout/LayoutTextFragment.h" |
68 #include "core/layout/line/InlineTextBox.h" | 68 #include "core/layout/line/InlineTextBox.h" |
69 #include "core/loader/DocumentLoader.h" | 69 #include "core/loader/DocumentLoader.h" |
70 #include "core/page/Page.h" | 70 #include "core/page/Page.h" |
71 #include "platform/fonts/Font.h" | 71 #include "platform/fonts/Font.h" |
| 72 #include "platform/fonts/FontCache.h" |
72 #include "platform/fonts/GlyphBuffer.h" | 73 #include "platform/fonts/GlyphBuffer.h" |
73 #include "platform/fonts/shaping/SimpleShaper.h" | 74 #include "platform/fonts/shaping/SimpleShaper.h" |
74 #include "platform/text/TextRun.h" | 75 #include "platform/text/TextRun.h" |
75 #include "wtf/CurrentTime.h" | 76 #include "wtf/CurrentTime.h" |
76 #include "wtf/text/CString.h" | 77 #include "wtf/text/CString.h" |
77 #include "wtf/text/StringConcatenate.h" | 78 #include "wtf/text/StringConcatenate.h" |
78 | 79 |
79 namespace { | 80 namespace { |
80 | 81 |
81 int s_frontendOperationCounter = 0; | 82 int s_frontendOperationCounter = 0; |
(...skipping 728 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
810 | 811 |
811 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> computedStyleInfo = CSSCompu
tedStyleDeclaration::create(node, true); | 812 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> computedStyleInfo = CSSCompu
tedStyleDeclaration::create(node, true); |
812 RefPtrWillBeRawPtr<InspectorStyle> inspectorStyle = InspectorStyle::create(c
omputedStyleInfo, nullptr, nullptr); | 813 RefPtrWillBeRawPtr<InspectorStyle> inspectorStyle = InspectorStyle::create(c
omputedStyleInfo, nullptr, nullptr); |
813 style = inspectorStyle->buildArrayForComputedStyle(); | 814 style = inspectorStyle->buildArrayForComputedStyle(); |
814 } | 815 } |
815 | 816 |
816 void InspectorCSSAgent::collectPlatformFontsForLayoutObject(LayoutObject* layout
Object, HashCountedSet<String>* fontStats) | 817 void InspectorCSSAgent::collectPlatformFontsForLayoutObject(LayoutObject* layout
Object, HashCountedSet<String>* fontStats) |
817 { | 818 { |
818 if (!layoutObject->isText()) | 819 if (!layoutObject->isText()) |
819 return; | 820 return; |
| 821 |
| 822 FontCachePurgePreventer preventer; |
820 LayoutText* layoutText = toLayoutText(layoutObject); | 823 LayoutText* layoutText = toLayoutText(layoutObject); |
821 for (InlineTextBox* box = layoutText->firstTextBox(); box; box = box->nextTe
xtBox()) { | 824 for (InlineTextBox* box = layoutText->firstTextBox(); box; box = box->nextTe
xtBox()) { |
822 const ComputedStyle& style = layoutText->styleRef(box->isFirstLineStyle(
)); | 825 const ComputedStyle& style = layoutText->styleRef(box->isFirstLineStyle(
)); |
823 const Font& font = style.font(); | 826 const Font& font = style.font(); |
824 TextRun run = box->constructTextRunForInspector(style, font); | 827 TextRun run = box->constructTextRunForInspector(style, font); |
825 SimpleShaper shaper(&font, run); | 828 TextRunPaintInfo paintInfo(run); |
826 GlyphBuffer glyphBuffer; | 829 GlyphBuffer glyphBuffer; |
827 shaper.advance(run.length(), &glyphBuffer); | 830 font.buildGlyphBuffer(paintInfo, glyphBuffer); |
828 for (unsigned i = 0; i < glyphBuffer.size(); ++i) { | 831 for (unsigned i = 0; i < glyphBuffer.size(); ++i) { |
829 String familyName = glyphBuffer.fontDataAt(i)->platformData().fontFa
milyName(); | 832 String familyName = glyphBuffer.fontDataAt(i)->platformData().fontFa
milyName(); |
830 if (familyName.isNull()) | 833 if (familyName.isNull()) |
831 familyName = ""; | 834 familyName = ""; |
832 fontStats->add(familyName); | 835 fontStats->add(familyName); |
833 } | 836 } |
834 } | 837 } |
835 } | 838 } |
836 | 839 |
837 void InspectorCSSAgent::getPlatformFontsForNode(ErrorString* errorString, int no
deId, | 840 void InspectorCSSAgent::getPlatformFontsForNode(ErrorString* errorString, int no
deId, |
(...skipping 911 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1749 visitor->trace(m_documentToCSSStyleSheets); | 1752 visitor->trace(m_documentToCSSStyleSheets); |
1750 visitor->trace(m_invalidatedDocuments); | 1753 visitor->trace(m_invalidatedDocuments); |
1751 visitor->trace(m_nodeToInspectorStyleSheet); | 1754 visitor->trace(m_nodeToInspectorStyleSheet); |
1752 visitor->trace(m_documentToViaInspectorStyleSheet); | 1755 visitor->trace(m_documentToViaInspectorStyleSheet); |
1753 #endif | 1756 #endif |
1754 visitor->trace(m_inspectorUserAgentStyleSheet); | 1757 visitor->trace(m_inspectorUserAgentStyleSheet); |
1755 InspectorBaseAgent::trace(visitor); | 1758 InspectorBaseAgent::trace(visitor); |
1756 } | 1759 } |
1757 | 1760 |
1758 } // namespace blink | 1761 } // namespace blink |
OLD | NEW |