Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(155)

Side by Side Diff: Source/core/inspector/InspectorCSSAgent.cpp

Issue 884753003: Fix template angle bracket syntax in inspector (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Some more fixes Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 462 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 void InspectorCSSAgent::restore() 473 void InspectorCSSAgent::restore()
474 { 474 {
475 if (m_state->getBoolean(CSSAgentState::cssAgentEnabled)) 475 if (m_state->getBoolean(CSSAgentState::cssAgentEnabled))
476 wasEnabled(); 476 wasEnabled();
477 } 477 }
478 478
479 void InspectorCSSAgent::flushPendingProtocolNotifications() 479 void InspectorCSSAgent::flushPendingProtocolNotifications()
480 { 480 {
481 if (!m_invalidatedDocuments.size()) 481 if (!m_invalidatedDocuments.size())
482 return; 482 return;
483 WillBeHeapHashSet<RawPtrWillBeMember<Document> > invalidatedDocuments; 483 WillBeHeapHashSet<RawPtrWillBeMember<Document>> invalidatedDocuments;
484 m_invalidatedDocuments.swap(&invalidatedDocuments); 484 m_invalidatedDocuments.swap(&invalidatedDocuments);
485 for (Document* document: invalidatedDocuments) 485 for (Document* document: invalidatedDocuments)
486 updateActiveStyleSheets(document, ExistingFrontendRefresh); 486 updateActiveStyleSheets(document, ExistingFrontendRefresh);
487 } 487 }
488 488
489 void InspectorCSSAgent::reset() 489 void InspectorCSSAgent::reset()
490 { 490 {
491 m_idToInspectorStyleSheet.clear(); 491 m_idToInspectorStyleSheet.clear();
492 m_idToInspectorStyleSheetForInlineStyle.clear(); 492 m_idToInspectorStyleSheetForInlineStyle.clear();
493 m_cssStyleSheetToInspectorStyleSheet.clear(); 493 m_cssStyleSheetToInspectorStyleSheet.clear();
(...skipping 25 matching lines...) Expand all
519 } 519 }
520 520
521 void InspectorCSSAgent::wasEnabled() 521 void InspectorCSSAgent::wasEnabled()
522 { 522 {
523 if (!m_state->getBoolean(CSSAgentState::cssAgentEnabled)) { 523 if (!m_state->getBoolean(CSSAgentState::cssAgentEnabled)) {
524 // We were disabled while fetching resources. 524 // We were disabled while fetching resources.
525 return; 525 return;
526 } 526 }
527 527
528 m_instrumentingAgents->setInspectorCSSAgent(this); 528 m_instrumentingAgents->setInspectorCSSAgent(this);
529 WillBeHeapVector<RawPtrWillBeMember<Document> > documents = m_domAgent->docu ments(); 529 WillBeHeapVector<RawPtrWillBeMember<Document>> documents = m_domAgent->docum ents();
530 for (Document* document : documents) 530 for (Document* document : documents)
531 updateActiveStyleSheets(document, InitialFrontendLoad); 531 updateActiveStyleSheets(document, InitialFrontendLoad);
532 } 532 }
533 533
534 void InspectorCSSAgent::disable(ErrorString*) 534 void InspectorCSSAgent::disable(ErrorString*)
535 { 535 {
536 reset(); 536 reset();
537 m_instrumentingAgents->setInspectorCSSAgent(0); 537 m_instrumentingAgents->setInspectorCSSAgent(0);
538 m_state->setBoolean(CSSAgentState::cssAgentEnabled, false); 538 m_state->setBoolean(CSSAgentState::cssAgentEnabled, false);
539 } 539 }
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
589 if (styleSheetEditInProgress()) 589 if (styleSheetEditInProgress())
590 return; 590 return;
591 591
592 m_invalidatedDocuments.add(document); 592 m_invalidatedDocuments.add(document);
593 if (m_creatingViaInspectorStyleSheet) 593 if (m_creatingViaInspectorStyleSheet)
594 flushPendingProtocolNotifications(); 594 flushPendingProtocolNotifications();
595 } 595 }
596 596
597 void InspectorCSSAgent::updateActiveStyleSheets(Document* document, StyleSheetsU pdateType styleSheetsUpdateType) 597 void InspectorCSSAgent::updateActiveStyleSheets(Document* document, StyleSheetsU pdateType styleSheetsUpdateType)
598 { 598 {
599 WillBeHeapVector<RawPtrWillBeMember<CSSStyleSheet> > newSheetsVector; 599 WillBeHeapVector<RawPtrWillBeMember<CSSStyleSheet>> newSheetsVector;
600 InspectorCSSAgent::collectAllDocumentStyleSheets(document, newSheetsVector); 600 InspectorCSSAgent::collectAllDocumentStyleSheets(document, newSheetsVector);
601 setActiveStyleSheets(document, newSheetsVector, styleSheetsUpdateType); 601 setActiveStyleSheets(document, newSheetsVector, styleSheetsUpdateType);
602 } 602 }
603 603
604 void InspectorCSSAgent::setActiveStyleSheets(Document* document, const WillBeHea pVector<RawPtrWillBeMember<CSSStyleSheet> >& allSheetsVector, StyleSheetsUpdateT ype styleSheetsUpdateType) 604 void InspectorCSSAgent::setActiveStyleSheets(Document* document, const WillBeHea pVector<RawPtrWillBeMember<CSSStyleSheet>>& allSheetsVector, StyleSheetsUpdateTy pe styleSheetsUpdateType)
605 { 605 {
606 bool isInitialFrontendLoad = styleSheetsUpdateType == InitialFrontendLoad; 606 bool isInitialFrontendLoad = styleSheetsUpdateType == InitialFrontendLoad;
607 607
608 WillBeHeapHashSet<RawPtrWillBeMember<CSSStyleSheet> >* documentCSSStyleSheet s = m_documentToCSSStyleSheets.get(document); 608 WillBeHeapHashSet<RawPtrWillBeMember<CSSStyleSheet>>* documentCSSStyleSheets = m_documentToCSSStyleSheets.get(document);
609 if (!documentCSSStyleSheets) { 609 if (!documentCSSStyleSheets) {
610 documentCSSStyleSheets = new WillBeHeapHashSet<RawPtrWillBeMember<CSSSty leSheet> >(); 610 documentCSSStyleSheets = new WillBeHeapHashSet<RawPtrWillBeMember<CSSSty leSheet>>();
611 OwnPtrWillBeRawPtr<WillBeHeapHashSet<RawPtrWillBeMember<CSSStyleSheet> > > documentCSSStyleSheetsPtr = adoptPtrWillBeNoop(documentCSSStyleSheets); 611 OwnPtrWillBeRawPtr<WillBeHeapHashSet<RawPtrWillBeMember<CSSStyleSheet>>> documentCSSStyleSheetsPtr = adoptPtrWillBeNoop(documentCSSStyleSheets);
612 m_documentToCSSStyleSheets.set(document, documentCSSStyleSheetsPtr.relea se()); 612 m_documentToCSSStyleSheets.set(document, documentCSSStyleSheetsPtr.relea se());
613 } 613 }
614 614
615 WillBeHeapHashSet<RawPtrWillBeMember<CSSStyleSheet> > removedSheets(*documen tCSSStyleSheets); 615 WillBeHeapHashSet<RawPtrWillBeMember<CSSStyleSheet>> removedSheets(*document CSSStyleSheets);
616 WillBeHeapVector<RawPtrWillBeMember<CSSStyleSheet> > addedSheets; 616 WillBeHeapVector<RawPtrWillBeMember<CSSStyleSheet>> addedSheets;
617 for (CSSStyleSheet* cssStyleSheet : allSheetsVector) { 617 for (CSSStyleSheet* cssStyleSheet : allSheetsVector) {
618 if (removedSheets.contains(cssStyleSheet)) { 618 if (removedSheets.contains(cssStyleSheet)) {
619 removedSheets.remove(cssStyleSheet); 619 removedSheets.remove(cssStyleSheet);
620 if (isInitialFrontendLoad) 620 if (isInitialFrontendLoad)
621 addedSheets.append(cssStyleSheet); 621 addedSheets.append(cssStyleSheet);
622 } else { 622 } else {
623 addedSheets.append(cssStyleSheet); 623 addedSheets.append(cssStyleSheet);
624 } 624 }
625 } 625 }
626 626
(...skipping 19 matching lines...) Expand all
646 } 646 }
647 } 647 }
648 648
649 if (documentCSSStyleSheets->isEmpty()) 649 if (documentCSSStyleSheets->isEmpty())
650 m_documentToCSSStyleSheets.remove(document); 650 m_documentToCSSStyleSheets.remove(document);
651 } 651 }
652 652
653 void InspectorCSSAgent::documentDetached(Document* document) 653 void InspectorCSSAgent::documentDetached(Document* document)
654 { 654 {
655 m_invalidatedDocuments.remove(document); 655 m_invalidatedDocuments.remove(document);
656 setActiveStyleSheets(document, WillBeHeapVector<RawPtrWillBeMember<CSSStyleS heet> >(), ExistingFrontendRefresh); 656 setActiveStyleSheets(document, WillBeHeapVector<RawPtrWillBeMember<CSSStyleS heet>>(), ExistingFrontendRefresh);
657 } 657 }
658 658
659 bool InspectorCSSAgent::forcePseudoState(Element* element, CSSSelector::PseudoTy pe pseudoType) 659 bool InspectorCSSAgent::forcePseudoState(Element* element, CSSSelector::PseudoTy pe pseudoType)
660 { 660 {
661 if (m_nodeIdToForcedPseudoState.isEmpty()) 661 if (m_nodeIdToForcedPseudoState.isEmpty())
662 return false; 662 return false;
663 663
664 int nodeId = m_domAgent->boundNodeId(element); 664 int nodeId = m_domAgent->boundNodeId(element);
665 if (!nodeId) 665 if (!nodeId)
666 return false; 666 return false;
(...skipping 10 matching lines...) Expand all
677 return forcedPseudoState & PseudoFocus; 677 return forcedPseudoState & PseudoFocus;
678 case CSSSelector::PseudoHover: 678 case CSSSelector::PseudoHover:
679 return forcedPseudoState & PseudoHover; 679 return forcedPseudoState & PseudoHover;
680 case CSSSelector::PseudoVisited: 680 case CSSSelector::PseudoVisited:
681 return forcedPseudoState & PseudoVisited; 681 return forcedPseudoState & PseudoVisited;
682 default: 682 default:
683 return false; 683 return false;
684 } 684 }
685 } 685 }
686 686
687 void InspectorCSSAgent::getMediaQueries(ErrorString* errorString, RefPtr<TypeBui lder::Array<TypeBuilder::CSS::CSSMedia> >& medias) 687 void InspectorCSSAgent::getMediaQueries(ErrorString* errorString, RefPtr<TypeBui lder::Array<TypeBuilder::CSS::CSSMedia>>& medias)
688 { 688 {
689 medias = TypeBuilder::Array<TypeBuilder::CSS::CSSMedia>::create(); 689 medias = TypeBuilder::Array<TypeBuilder::CSS::CSSMedia>::create();
690 for (auto& style : m_idToInspectorStyleSheet) { 690 for (auto& style : m_idToInspectorStyleSheet) {
691 RefPtrWillBeRawPtr<InspectorStyleSheet> styleSheet = style.value; 691 RefPtrWillBeRawPtr<InspectorStyleSheet> styleSheet = style.value;
692 collectMediaQueriesFromStyleSheet(styleSheet->pageStyleSheet(), medias.g et()); 692 collectMediaQueriesFromStyleSheet(styleSheet->pageStyleSheet(), medias.g et());
693 const CSSRuleVector& flatRules = styleSheet->flatRules(); 693 const CSSRuleVector& flatRules = styleSheet->flatRules();
694 for (unsigned i = 0; i < flatRules.size(); ++i) { 694 for (unsigned i = 0; i < flatRules.size(); ++i) {
695 CSSRule* rule = flatRules.at(i).get(); 695 CSSRule* rule = flatRules.at(i).get();
696 if (rule->type() == CSSRule::MEDIA_RULE || rule->type() == CSSRule:: IMPORT_RULE) 696 if (rule->type() == CSSRule::MEDIA_RULE || rule->type() == CSSRule:: IMPORT_RULE)
697 collectMediaQueriesFromRule(rule, medias.get()); 697 collectMediaQueriesFromRule(rule, medias.get());
698 } 698 }
699 } 699 }
700 } 700 }
701 701
702 void InspectorCSSAgent::getMatchedStylesForNode(ErrorString* errorString, int no deId, const bool* excludePseudo, const bool* excludeInherited, RefPtr<TypeBuilde r::Array<TypeBuilder::CSS::RuleMatch> >& matchedCSSRules, RefPtr<TypeBuilder::Ar ray<TypeBuilder::CSS::PseudoIdMatches> >& pseudoIdMatches, RefPtr<TypeBuilder::A rray<TypeBuilder::CSS::InheritedStyleEntry> >& inheritedEntries) 702 void InspectorCSSAgent::getMatchedStylesForNode(ErrorString* errorString, int no deId, const bool* excludePseudo, const bool* excludeInherited, RefPtr<TypeBuilde r::Array<TypeBuilder::CSS::RuleMatch>>& matchedCSSRules, RefPtr<TypeBuilder::Arr ay<TypeBuilder::CSS::PseudoIdMatches>>& pseudoIdMatches, RefPtr<TypeBuilder::Arr ay<TypeBuilder::CSS::InheritedStyleEntry>>& inheritedEntries)
703 { 703 {
704 Element* element = elementForId(errorString, nodeId); 704 Element* element = elementForId(errorString, nodeId);
705 if (!element) { 705 if (!element) {
706 *errorString = "Node not found"; 706 *errorString = "Node not found";
707 return; 707 return;
708 } 708 }
709 709
710 Element* originalElement = element; 710 Element* originalElement = element;
711 PseudoId elementPseudoId = element->pseudoId(); 711 PseudoId elementPseudoId = element->pseudoId();
712 if (elementPseudoId) { 712 if (elementPseudoId) {
(...skipping 14 matching lines...) Expand all
727 // without grabbing at internal style classes! 727 // without grabbing at internal style classes!
728 728
729 // Matched rules. 729 // Matched rules.
730 StyleResolver& styleResolver = ownerDocument->ensureStyleResolver(); 730 StyleResolver& styleResolver = ownerDocument->ensureStyleResolver();
731 731
732 RefPtrWillBeRawPtr<CSSRuleList> matchedRules = styleResolver.pseudoCSSRulesF orElement(element, elementPseudoId, StyleResolver::AllCSSRules); 732 RefPtrWillBeRawPtr<CSSRuleList> matchedRules = styleResolver.pseudoCSSRulesF orElement(element, elementPseudoId, StyleResolver::AllCSSRules);
733 matchedCSSRules = buildArrayForMatchedRuleList(matchedRules.get(), originalE lement, NOPSEUDO); 733 matchedCSSRules = buildArrayForMatchedRuleList(matchedRules.get(), originalE lement, NOPSEUDO);
734 734
735 // Pseudo elements. 735 // Pseudo elements.
736 if (!elementPseudoId && !asBool(excludePseudo)) { 736 if (!elementPseudoId && !asBool(excludePseudo)) {
737 RefPtr<TypeBuilder::Array<TypeBuilder::CSS::PseudoIdMatches> > pseudoEle ments = TypeBuilder::Array<TypeBuilder::CSS::PseudoIdMatches>::create(); 737 RefPtr<TypeBuilder::Array<TypeBuilder::CSS::PseudoIdMatches>> pseudoElem ents = TypeBuilder::Array<TypeBuilder::CSS::PseudoIdMatches>::create();
738 for (PseudoId pseudoId = FIRST_PUBLIC_PSEUDOID; pseudoId < AFTER_LAST_IN TERNAL_PSEUDOID; pseudoId = static_cast<PseudoId>(pseudoId + 1)) { 738 for (PseudoId pseudoId = FIRST_PUBLIC_PSEUDOID; pseudoId < AFTER_LAST_IN TERNAL_PSEUDOID; pseudoId = static_cast<PseudoId>(pseudoId + 1)) {
739 RefPtrWillBeRawPtr<CSSRuleList> matchedRules = styleResolver.pseudoC SSRulesForElement(element, pseudoId, StyleResolver::AllCSSRules); 739 RefPtrWillBeRawPtr<CSSRuleList> matchedRules = styleResolver.pseudoC SSRulesForElement(element, pseudoId, StyleResolver::AllCSSRules);
740 if (matchedRules && matchedRules->length()) { 740 if (matchedRules && matchedRules->length()) {
741 RefPtr<TypeBuilder::CSS::PseudoIdMatches> matches = TypeBuilder: :CSS::PseudoIdMatches::create() 741 RefPtr<TypeBuilder::CSS::PseudoIdMatches> matches = TypeBuilder: :CSS::PseudoIdMatches::create()
742 .setPseudoId(static_cast<int>(pseudoId)) 742 .setPseudoId(static_cast<int>(pseudoId))
743 .setMatches(buildArrayForMatchedRuleList(matchedRules.get(), element, pseudoId)); 743 .setMatches(buildArrayForMatchedRuleList(matchedRules.get(), element, pseudoId));
744 pseudoElements->addItem(matches.release()); 744 pseudoElements->addItem(matches.release());
745 } 745 }
746 } 746 }
747 747
748 pseudoIdMatches = pseudoElements.release(); 748 pseudoIdMatches = pseudoElements.release();
749 } 749 }
750 750
751 // Inherited styles. 751 // Inherited styles.
752 if (!elementPseudoId && !asBool(excludeInherited)) { 752 if (!elementPseudoId && !asBool(excludeInherited)) {
753 RefPtr<TypeBuilder::Array<TypeBuilder::CSS::InheritedStyleEntry> > entri es = TypeBuilder::Array<TypeBuilder::CSS::InheritedStyleEntry>::create(); 753 RefPtr<TypeBuilder::Array<TypeBuilder::CSS::InheritedStyleEntry>> entrie s = TypeBuilder::Array<TypeBuilder::CSS::InheritedStyleEntry>::create();
754 Element* parentElement = element->parentElement(); 754 Element* parentElement = element->parentElement();
755 while (parentElement) { 755 while (parentElement) {
756 StyleResolver& parentStyleResolver = parentElement->ownerDocument()- >ensureStyleResolver(); 756 StyleResolver& parentStyleResolver = parentElement->ownerDocument()- >ensureStyleResolver();
757 RefPtrWillBeRawPtr<CSSRuleList> parentMatchedRules = parentStyleReso lver.cssRulesForElement(parentElement, StyleResolver::AllCSSRules); 757 RefPtrWillBeRawPtr<CSSRuleList> parentMatchedRules = parentStyleReso lver.cssRulesForElement(parentElement, StyleResolver::AllCSSRules);
758 RefPtr<TypeBuilder::CSS::InheritedStyleEntry> entry = TypeBuilder::C SS::InheritedStyleEntry::create() 758 RefPtr<TypeBuilder::CSS::InheritedStyleEntry> entry = TypeBuilder::C SS::InheritedStyleEntry::create()
759 .setMatchedCSSRules(buildArrayForMatchedRuleList(parentMatchedRu les.get(), parentElement, NOPSEUDO)); 759 .setMatchedCSSRules(buildArrayForMatchedRuleList(parentMatchedRu les.get(), parentElement, NOPSEUDO));
760 if (parentElement->style() && parentElement->style()->length()) { 760 if (parentElement->style() && parentElement->style()->length()) {
761 InspectorStyleSheetForInlineStyle* styleSheet = asInspectorStyle Sheet(parentElement); 761 InspectorStyleSheetForInlineStyle* styleSheet = asInspectorStyle Sheet(parentElement);
762 if (styleSheet) 762 if (styleSheet)
763 entry->setInlineStyle(styleSheet->buildObjectForStyle(styleS heet->styleForId(InspectorCSSId(styleSheet->id(), 0)))); 763 entry->setInlineStyle(styleSheet->buildObjectForStyle(styleS heet->styleForId(InspectorCSSId(styleSheet->id(), 0))));
(...skipping 15 matching lines...) Expand all
779 779
780 InspectorStyleSheetForInlineStyle* styleSheet = asInspectorStyleSheet(elemen t); 780 InspectorStyleSheetForInlineStyle* styleSheet = asInspectorStyleSheet(elemen t);
781 if (!styleSheet) 781 if (!styleSheet)
782 return; 782 return;
783 783
784 inlineStyle = styleSheet->buildObjectForStyle(element->style()); 784 inlineStyle = styleSheet->buildObjectForStyle(element->style());
785 RefPtr<TypeBuilder::CSS::CSSStyle> attributes = buildObjectForAttributesStyl e(element); 785 RefPtr<TypeBuilder::CSS::CSSStyle> attributes = buildObjectForAttributesStyl e(element);
786 attributesStyle = attributes ? attributes.release() : nullptr; 786 attributesStyle = attributes ? attributes.release() : nullptr;
787 } 787 }
788 788
789 void InspectorCSSAgent::getComputedStyleForNode(ErrorString* errorString, int no deId, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSComputedStyleProperty> >& s tyle) 789 void InspectorCSSAgent::getComputedStyleForNode(ErrorString* errorString, int no deId, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSComputedStyleProperty>>& st yle)
790 { 790 {
791 Node* node = m_domAgent->assertNode(errorString, nodeId); 791 Node* node = m_domAgent->assertNode(errorString, nodeId);
792 if (!node) 792 if (!node)
793 return; 793 return;
794 794
795 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> computedStyleInfo = CSSCompu tedStyleDeclaration::create(node, true); 795 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> computedStyleInfo = CSSCompu tedStyleDeclaration::create(node, true);
796 RefPtrWillBeRawPtr<InspectorStyle> inspectorStyle = InspectorStyle::create(I nspectorCSSId(), computedStyleInfo, 0); 796 RefPtrWillBeRawPtr<InspectorStyle> inspectorStyle = InspectorStyle::create(I nspectorCSSId(), computedStyleInfo, 0);
797 style = inspectorStyle->buildArrayForComputedStyle(); 797 style = inspectorStyle->buildArrayForComputedStyle();
798 } 798 }
799 799
800 void InspectorCSSAgent::collectPlatformFontsForRenderer(RenderText* renderer, Ha shCountedSet<String>* fontStats) 800 void InspectorCSSAgent::collectPlatformFontsForRenderer(RenderText* renderer, Ha shCountedSet<String>* fontStats)
801 { 801 {
802 for (InlineTextBox* box = renderer->firstTextBox(); box; box = box->nextText Box()) { 802 for (InlineTextBox* box = renderer->firstTextBox(); box; box = box->nextText Box()) {
803 RenderStyle* style = renderer->style(box->isFirstLineStyle()); 803 RenderStyle* style = renderer->style(box->isFirstLineStyle());
804 const Font& font = style->font(); 804 const Font& font = style->font();
805 TextRun run = box->constructTextRunForInspector(style, font); 805 TextRun run = box->constructTextRunForInspector(style, font);
806 SimpleShaper shaper(&font, run); 806 SimpleShaper shaper(&font, run);
807 GlyphBuffer glyphBuffer; 807 GlyphBuffer glyphBuffer;
808 shaper.advance(run.length(), &glyphBuffer); 808 shaper.advance(run.length(), &glyphBuffer);
809 for (unsigned i = 0; i < glyphBuffer.size(); ++i) { 809 for (unsigned i = 0; i < glyphBuffer.size(); ++i) {
810 String familyName = glyphBuffer.fontDataAt(i)->platformData().fontFa milyName(); 810 String familyName = glyphBuffer.fontDataAt(i)->platformData().fontFa milyName();
811 if (familyName.isNull()) 811 if (familyName.isNull())
812 familyName = ""; 812 familyName = "";
813 fontStats->add(familyName); 813 fontStats->add(familyName);
814 } 814 }
815 } 815 }
816 } 816 }
817 817
818 void InspectorCSSAgent::getPlatformFontsForNode(ErrorString* errorString, int no deId, 818 void InspectorCSSAgent::getPlatformFontsForNode(ErrorString* errorString, int no deId,
819 String* cssFamilyName, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::PlatformF ontUsage> >& platformFonts) 819 String* cssFamilyName, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::PlatformF ontUsage>>& platformFonts)
820 { 820 {
821 Node* node = m_domAgent->assertNode(errorString, nodeId); 821 Node* node = m_domAgent->assertNode(errorString, nodeId);
822 if (!node) 822 if (!node)
823 return; 823 return;
824 824
825 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> computedStyleInfo = CSSCompu tedStyleDeclaration::create(node, true); 825 RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> computedStyleInfo = CSSCompu tedStyleDeclaration::create(node, true);
826 *cssFamilyName = computedStyleInfo->getPropertyValue(CSSPropertyFontFamily); 826 *cssFamilyName = computedStyleInfo->getPropertyValue(CSSPropertyFontFamily);
827 827
828 WillBeHeapVector<RawPtrWillBeMember<Text> > textNodes; 828 WillBeHeapVector<RawPtrWillBeMember<Text>> textNodes;
829 if (node->nodeType() == Node::TEXT_NODE) { 829 if (node->nodeType() == Node::TEXT_NODE) {
830 if (node->renderer()) 830 if (node->renderer())
831 textNodes.append(toText(node)); 831 textNodes.append(toText(node));
832 } else { 832 } else {
833 for (Node* child = node->firstChild(); child; child = child->nextSibling ()) { 833 for (Node* child = node->firstChild(); child; child = child->nextSibling ()) {
834 if (child->nodeType() == Node::TEXT_NODE && child->renderer()) 834 if (child->nodeType() == Node::TEXT_NODE && child->renderer())
835 textNodes.append(toText(child)); 835 textNodes.append(toText(child));
836 } 836 }
837 } 837 }
838 838
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
1086 break; 1086 break;
1087 case MediaListSourceLinkedSheet: 1087 case MediaListSourceLinkedSheet:
1088 source = TypeBuilder::CSS::CSSMedia::Source::LinkedSheet; 1088 source = TypeBuilder::CSS::CSSMedia::Source::LinkedSheet;
1089 break; 1089 break;
1090 case MediaListSourceInlineSheet: 1090 case MediaListSourceInlineSheet:
1091 source = TypeBuilder::CSS::CSSMedia::Source::InlineSheet; 1091 source = TypeBuilder::CSS::CSSMedia::Source::InlineSheet;
1092 break; 1092 break;
1093 } 1093 }
1094 1094
1095 const MediaQuerySet* queries = media->queries(); 1095 const MediaQuerySet* queries = media->queries();
1096 const WillBeHeapVector<OwnPtrWillBeMember<MediaQuery> >& queryVector = queri es->queryVector(); 1096 const WillBeHeapVector<OwnPtrWillBeMember<MediaQuery>>& queryVector = querie s->queryVector();
1097 OwnPtr<MediaQueryEvaluator> mediaEvaluator = adoptPtr(new MediaQueryEvaluato r(parentStyleSheet->ownerDocument()->frame())); 1097 OwnPtr<MediaQueryEvaluator> mediaEvaluator = adoptPtr(new MediaQueryEvaluato r(parentStyleSheet->ownerDocument()->frame()));
1098 1098
1099 InspectorStyleSheet* inspectorStyleSheet = parentStyleSheet ? m_cssStyleShee tToInspectorStyleSheet.get(parentStyleSheet) : nullptr; 1099 InspectorStyleSheet* inspectorStyleSheet = parentStyleSheet ? m_cssStyleShee tToInspectorStyleSheet.get(parentStyleSheet) : nullptr;
1100 RefPtr<TypeBuilder::Array<TypeBuilder::CSS::MediaQuery> > mediaListArray = T ypeBuilder::Array<TypeBuilder::CSS::MediaQuery>::create(); 1100 RefPtr<TypeBuilder::Array<TypeBuilder::CSS::MediaQuery>> mediaListArray = Ty peBuilder::Array<TypeBuilder::CSS::MediaQuery>::create();
1101 RefPtr<MediaValues> mediaValues = MediaValues::createDynamicIfFrameExists(pa rentStyleSheet->ownerDocument()->frame()); 1101 RefPtr<MediaValues> mediaValues = MediaValues::createDynamicIfFrameExists(pa rentStyleSheet->ownerDocument()->frame());
1102 bool hasMediaQueryItems = false; 1102 bool hasMediaQueryItems = false;
1103 for (size_t i = 0; i < queryVector.size(); ++i) { 1103 for (size_t i = 0; i < queryVector.size(); ++i) {
1104 MediaQuery* query = queryVector.at(i).get(); 1104 MediaQuery* query = queryVector.at(i).get();
1105 const ExpressionHeapVector& expressions = query->expressions(); 1105 const ExpressionHeapVector& expressions = query->expressions();
1106 RefPtr<TypeBuilder::Array<TypeBuilder::CSS::MediaQueryExpression> > expr essionArray = TypeBuilder::Array<TypeBuilder::CSS::MediaQueryExpression>::create (); 1106 RefPtr<TypeBuilder::Array<TypeBuilder::CSS::MediaQueryExpression>> expre ssionArray = TypeBuilder::Array<TypeBuilder::CSS::MediaQueryExpression>::create( );
1107 bool hasExpressionItems = false; 1107 bool hasExpressionItems = false;
1108 for (size_t j = 0; j < expressions.size(); ++j) { 1108 for (size_t j = 0; j < expressions.size(); ++j) {
1109 MediaQueryExp* mediaQueryExp = expressions.at(j).get(); 1109 MediaQueryExp* mediaQueryExp = expressions.at(j).get();
1110 MediaQueryExpValue expValue = mediaQueryExp->expValue(); 1110 MediaQueryExpValue expValue = mediaQueryExp->expValue();
1111 if (!expValue.isValue) 1111 if (!expValue.isValue)
1112 continue; 1112 continue;
1113 const char* valueName = CSSPrimitiveValue::unitTypeToString(expValue .unit); 1113 const char* valueName = CSSPrimitiveValue::unitTypeToString(expValue .unit);
1114 RefPtr<TypeBuilder::CSS::MediaQueryExpression> mediaQueryExpression = TypeBuilder::CSS::MediaQueryExpression::create() 1114 RefPtr<TypeBuilder::CSS::MediaQueryExpression> mediaQueryExpression = TypeBuilder::CSS::MediaQueryExpression::create()
1115 .setValue(expValue.value) 1115 .setValue(expValue.value)
1116 .setUnit(String(valueName)) 1116 .setUnit(String(valueName))
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
1208 sourceURL = ""; 1208 sourceURL = "";
1209 } 1209 }
1210 1210
1211 if (mediaList && mediaList->length()) { 1211 if (mediaList && mediaList->length()) {
1212 mediaArray->addItem(buildMediaObject(mediaList, isMediaRule ? MediaListS ourceMediaRule : MediaListSourceImportRule, sourceURL, parentStyleSheet)); 1212 mediaArray->addItem(buildMediaObject(mediaList, isMediaRule ? MediaListS ourceMediaRule : MediaListSourceImportRule, sourceURL, parentStyleSheet));
1213 addedItems = true; 1213 addedItems = true;
1214 } 1214 }
1215 return addedItems; 1215 return addedItems;
1216 } 1216 }
1217 1217
1218 PassRefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSMedia> > InspectorCSSAgent::b uildMediaListChain(CSSRule* rule) 1218 PassRefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSMedia>> InspectorCSSAgent::bu ildMediaListChain(CSSRule* rule)
1219 { 1219 {
1220 if (!rule) 1220 if (!rule)
1221 return nullptr; 1221 return nullptr;
1222 RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSMedia> > mediaArray = TypeBui lder::Array<TypeBuilder::CSS::CSSMedia>::create(); 1222 RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSMedia>> mediaArray = TypeBuil der::Array<TypeBuilder::CSS::CSSMedia>::create();
1223 bool hasItems = false; 1223 bool hasItems = false;
1224 CSSRule* parentRule = rule; 1224 CSSRule* parentRule = rule;
1225 while (parentRule) { 1225 while (parentRule) {
1226 hasItems = collectMediaQueriesFromRule(parentRule, mediaArray.get()) || hasItems; 1226 hasItems = collectMediaQueriesFromRule(parentRule, mediaArray.get()) || hasItems;
1227 if (parentRule->parentRule()) { 1227 if (parentRule->parentRule()) {
1228 parentRule = parentRule->parentRule(); 1228 parentRule = parentRule->parentRule();
1229 } else { 1229 } else {
1230 CSSStyleSheet* styleSheet = parentRule->parentStyleSheet(); 1230 CSSStyleSheet* styleSheet = parentRule->parentStyleSheet();
1231 while (styleSheet) { 1231 while (styleSheet) {
1232 hasItems = collectMediaQueriesFromStyleSheet(styleSheet, mediaAr ray.get()) || hasItems; 1232 hasItems = collectMediaQueriesFromStyleSheet(styleSheet, mediaAr ray.get()) || hasItems;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1265 return nullptr; 1265 return nullptr;
1266 } 1266 }
1267 if (!node->isElementNode()) { 1267 if (!node->isElementNode()) {
1268 *errorString = "Not an element node"; 1268 *errorString = "Not an element node";
1269 return nullptr; 1269 return nullptr;
1270 } 1270 }
1271 return toElement(node); 1271 return toElement(node);
1272 } 1272 }
1273 1273
1274 // static 1274 // static
1275 void InspectorCSSAgent::collectAllDocumentStyleSheets(Document* document, WillBe HeapVector<RawPtrWillBeMember<CSSStyleSheet> >& result) 1275 void InspectorCSSAgent::collectAllDocumentStyleSheets(Document* document, WillBe HeapVector<RawPtrWillBeMember<CSSStyleSheet>>& result)
1276 { 1276 {
1277 const WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet> > activeStyleSheets = document->styleEngine()->activeStyleSheetsForInspector(); 1277 const WillBeHeapVector<RefPtrWillBeMember<CSSStyleSheet>> activeStyleSheets = document->styleEngine()->activeStyleSheetsForInspector();
1278 for (const auto& style : activeStyleSheets) { 1278 for (const auto& style : activeStyleSheets) {
1279 CSSStyleSheet* styleSheet = style.get(); 1279 CSSStyleSheet* styleSheet = style.get();
1280 InspectorCSSAgent::collectStyleSheets(styleSheet, result); 1280 InspectorCSSAgent::collectStyleSheets(styleSheet, result);
1281 } 1281 }
1282 } 1282 }
1283 1283
1284 // static 1284 // static
1285 void InspectorCSSAgent::collectStyleSheets(CSSStyleSheet* styleSheet, WillBeHeap Vector<RawPtrWillBeMember<CSSStyleSheet> >& result) 1285 void InspectorCSSAgent::collectStyleSheets(CSSStyleSheet* styleSheet, WillBeHeap Vector<RawPtrWillBeMember<CSSStyleSheet>>& result)
1286 { 1286 {
1287 result.append(styleSheet); 1287 result.append(styleSheet);
1288 for (unsigned i = 0, size = styleSheet->length(); i < size; ++i) { 1288 for (unsigned i = 0, size = styleSheet->length(); i < size; ++i) {
1289 CSSRule* rule = styleSheet->item(i); 1289 CSSRule* rule = styleSheet->item(i);
1290 if (rule->type() == CSSRule::IMPORT_RULE) { 1290 if (rule->type() == CSSRule::IMPORT_RULE) {
1291 CSSStyleSheet* importedStyleSheet = toCSSImportRule(rule)->styleShee t(); 1291 CSSStyleSheet* importedStyleSheet = toCSSImportRule(rule)->styleShee t();
1292 if (importedStyleSheet) 1292 if (importedStyleSheet)
1293 InspectorCSSAgent::collectStyleSheets(importedStyleSheet, result ); 1293 InspectorCSSAgent::collectStyleSheets(importedStyleSheet, result );
1294 } 1294 }
1295 } 1295 }
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
1423 // According to http://www.w3.org/TR/css3-selectors/#pseudo-elements, "Only one pseudo-element may appear per selector." 1423 // According to http://www.w3.org/TR/css3-selectors/#pseudo-elements, "Only one pseudo-element may appear per selector."
1424 // As such, check the last selector in the tag history. 1424 // As such, check the last selector in the tag history.
1425 for (; !selector->isLastInTagHistory(); ++selector) { } 1425 for (; !selector->isLastInTagHistory(); ++selector) { }
1426 PseudoId selectorPseudoId = selector->matchesPseudoElement() ? CSSSelector:: pseudoId(selector->pseudoType()) : NOPSEUDO; 1426 PseudoId selectorPseudoId = selector->matchesPseudoElement() ? CSSSelector:: pseudoId(selector->pseudoType()) : NOPSEUDO;
1427 1427
1428 // FIXME: This only covers the case of matching pseudo-element selectors aga inst PseudoElements. 1428 // FIXME: This only covers the case of matching pseudo-element selectors aga inst PseudoElements.
1429 // We should come up with a solution for matching pseudo-element selectors a gainst ordinary Elements, too. 1429 // We should come up with a solution for matching pseudo-element selectors a gainst ordinary Elements, too.
1430 return selectorPseudoId == elementPseudoId; 1430 return selectorPseudoId == elementPseudoId;
1431 } 1431 }
1432 1432
1433 PassRefPtr<TypeBuilder::Array<TypeBuilder::CSS::RuleMatch> > InspectorCSSAgent:: buildArrayForMatchedRuleList(CSSRuleList* ruleList, Element* element, PseudoId m atchesForPseudoId) 1433 PassRefPtr<TypeBuilder::Array<TypeBuilder::CSS::RuleMatch>> InspectorCSSAgent::b uildArrayForMatchedRuleList(CSSRuleList* ruleList, Element* element, PseudoId ma tchesForPseudoId)
1434 { 1434 {
1435 RefPtr<TypeBuilder::Array<TypeBuilder::CSS::RuleMatch> > result = TypeBuilde r::Array<TypeBuilder::CSS::RuleMatch>::create(); 1435 RefPtr<TypeBuilder::Array<TypeBuilder::CSS::RuleMatch>> result = TypeBuilder ::Array<TypeBuilder::CSS::RuleMatch>::create();
1436 if (!ruleList) 1436 if (!ruleList)
1437 return result.release(); 1437 return result.release();
1438 1438
1439 for (unsigned i = 0, size = ruleList->length(); i < size; ++i) { 1439 for (unsigned i = 0, size = ruleList->length(); i < size; ++i) {
1440 CSSStyleRule* rule = asCSSStyleRule(ruleList->item(i)); 1440 CSSStyleRule* rule = asCSSStyleRule(ruleList->item(i));
1441 RefPtr<TypeBuilder::CSS::CSSRule> ruleObject = buildObjectForRule(rule); 1441 RefPtr<TypeBuilder::CSS::CSSRule> ruleObject = buildObjectForRule(rule);
1442 if (!ruleObject) 1442 if (!ruleObject)
1443 continue; 1443 continue;
1444 RefPtr<TypeBuilder::Array<int> > matchingSelectors = TypeBuilder::Array< int>::create(); 1444 RefPtr<TypeBuilder::Array<int>> matchingSelectors = TypeBuilder::Array<i nt>::create();
1445 const CSSSelectorList& selectorList = rule->styleRule()->selectorList(); 1445 const CSSSelectorList& selectorList = rule->styleRule()->selectorList();
1446 long index = 0; 1446 long index = 0;
1447 PseudoId elementPseudoId = matchesForPseudoId ? matchesForPseudoId : ele ment->pseudoId(); 1447 PseudoId elementPseudoId = matchesForPseudoId ? matchesForPseudoId : ele ment->pseudoId();
1448 for (const CSSSelector* selector = selectorList.first(); selector; selec tor = CSSSelectorList::next(*selector)) { 1448 for (const CSSSelector* selector = selectorList.first(); selector; selec tor = CSSSelectorList::next(*selector)) {
1449 const CSSSelector* firstTagHistorySelector = selector; 1449 const CSSSelector* firstTagHistorySelector = selector;
1450 bool matched = false; 1450 bool matched = false;
1451 if (elementPseudoId) 1451 if (elementPseudoId)
1452 matched = matchesPseudoElement(selector, elementPseudoId); // Mo difies |selector|. 1452 matched = matchesPseudoElement(selector, elementPseudoId); // Mo difies |selector|.
1453 else 1453 else
1454 matched = element->matches(firstTagHistorySelector->selectorText (), IGNORE_EXCEPTION); 1454 matched = element->matches(firstTagHistorySelector->selectorText (), IGNORE_EXCEPTION);
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
1529 } 1529 }
1530 1530
1531 void InspectorCSSAgent::didReparseStyleSheet() 1531 void InspectorCSSAgent::didReparseStyleSheet()
1532 { 1532 {
1533 ASSERT(m_isSettingStyleSheetText); 1533 ASSERT(m_isSettingStyleSheetText);
1534 m_isSettingStyleSheetText = false; 1534 m_isSettingStyleSheetText = false;
1535 } 1535 }
1536 1536
1537 void InspectorCSSAgent::resetPseudoStates() 1537 void InspectorCSSAgent::resetPseudoStates()
1538 { 1538 {
1539 WillBeHeapHashSet<RawPtrWillBeMember<Document> > documentsToChange; 1539 WillBeHeapHashSet<RawPtrWillBeMember<Document>> documentsToChange;
1540 for (auto& state : m_nodeIdToForcedPseudoState) { 1540 for (auto& state : m_nodeIdToForcedPseudoState) {
1541 Element* element = toElement(m_domAgent->nodeForId(state.key)); 1541 Element* element = toElement(m_domAgent->nodeForId(state.key));
1542 if (element && element->ownerDocument()) 1542 if (element && element->ownerDocument())
1543 documentsToChange.add(element->ownerDocument()); 1543 documentsToChange.add(element->ownerDocument());
1544 } 1544 }
1545 1545
1546 m_nodeIdToForcedPseudoState.clear(); 1546 m_nodeIdToForcedPseudoState.clear();
1547 for (auto& document : documentsToChange) 1547 for (auto& document : documentsToChange)
1548 document->setNeedsStyleRecalc(SubtreeStyleChange, StyleChangeReasonForTr acing::create(StyleChangeReason::Inspector)); 1548 document->setNeedsStyleRecalc(SubtreeStyleChange, StyleChangeReasonForTr acing::create(StyleChangeReason::Inspector));
1549 } 1549 }
(...skipping 11 matching lines...) Expand all
1561 visitor->trace(m_invalidatedDocuments); 1561 visitor->trace(m_invalidatedDocuments);
1562 visitor->trace(m_nodeToInspectorStyleSheet); 1562 visitor->trace(m_nodeToInspectorStyleSheet);
1563 visitor->trace(m_documentToViaInspectorStyleSheet); 1563 visitor->trace(m_documentToViaInspectorStyleSheet);
1564 #endif 1564 #endif
1565 visitor->trace(m_inspectorUserAgentStyleSheet); 1565 visitor->trace(m_inspectorUserAgentStyleSheet);
1566 InspectorBaseAgent::trace(visitor); 1566 InspectorBaseAgent::trace(visitor);
1567 } 1567 }
1568 1568
1569 } // namespace blink 1569 } // namespace blink
1570 1570
OLDNEW
« no previous file with comments | « Source/core/inspector/InspectorCSSAgent.h ('k') | Source/core/inspector/InspectorConsoleAgent.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698