Changeset 112087 in webkit
- Timestamp:
- Mar 26, 2012 7:04:50 AM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r112083 r112087 1 2012-03-22 Alexander Pavlov <apavlov@chromium.org> 2 3 Web Inspector: Migrate InspectorCSSAgent to strict protocol types 4 https://bugs.webkit.org/show_bug.cgi?id=81923 5 6 Reviewed by Pavel Feldman. 7 8 No new tests, as this is a refactoring. 9 10 * inspector/CodeGeneratorInspector.py: 11 * inspector/InspectorCSSAgent.cpp: 12 (SelectorProfile): 13 (WebCore::SelectorProfile::toInspectorObject): 14 (WebCore::InspectorCSSAgent::clearFrontend): 15 (WebCore::InspectorCSSAgent::getMatchedStylesForNode): 16 (WebCore::InspectorCSSAgent::getInlineStylesForNode): 17 (WebCore::InspectorCSSAgent::getComputedStyleForNode): 18 (WebCore::InspectorCSSAgent::getAllStyleSheets): 19 (WebCore::InspectorCSSAgent::getStyleSheet): 20 (WebCore::InspectorCSSAgent::setPropertyText): 21 (WebCore::InspectorCSSAgent::toggleProperty): 22 (WebCore::InspectorCSSAgent::setRuleSelector): 23 (WebCore::InspectorCSSAgent::addRule): 24 (WebCore::InspectorCSSAgent::getSupportedCSSProperties): 25 (WebCore::InspectorCSSAgent::stopSelectorProfiler): 26 (WebCore::InspectorCSSAgent::stopSelectorProfilerImpl): 27 (WebCore::InspectorCSSAgent::collectStyleSheets): 28 (WebCore::InspectorCSSAgent::buildArrayForRuleList): 29 (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle): 30 * inspector/InspectorCSSAgent.h: 31 (InspectorCSSAgent): 32 * inspector/InspectorStyleSheet.cpp: 33 (WebCore::buildSourceRangeObject): 34 (WebCore::buildMediaObject): 35 (WebCore::fillMediaListChain): 36 (WebCore::InspectorStyle::buildObjectForStyle): 37 (WebCore::InspectorStyle::buildArrayForComputedStyle): 38 (WebCore::InspectorStyle::styleWithProperties): 39 (WebCore::InspectorStyleSheet::buildObjectForStyleSheet): 40 (WebCore::InspectorStyleSheet::buildObjectForStyleSheetInfo): 41 (WebCore::InspectorStyleSheet::buildObjectForRule): 42 (WebCore::InspectorStyleSheet::buildObjectForStyle): 43 * inspector/InspectorStyleSheet.h: 44 (WebCore::InspectorCSSId::asProtocolValue): 45 (InspectorStyle): 46 (InspectorStyleSheet): 47 1 48 2012-03-26 Alexander Pavlov <apavlov@chromium.org> 2 49 -
trunk/Source/WebCore/inspector/CodeGeneratorInspector.py
r111005 r112087 60 60 "Debugger.FunctionDetails", "Debugger.CallFrame"]) 61 61 62 STRICT_ENABLED_DOMAINS = [" Debugger", "Page"]62 STRICT_ENABLED_DOMAINS = ["CSS", "Debugger", "Page"] 63 63 64 64 -
trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp
r110854 r112087 44 44 #include "InspectorHistory.h" 45 45 #include "InspectorState.h" 46 #include "InspectorTypeBuilder.h" 46 47 #include "InspectorValues.h" 47 48 #include "InstrumentingAgents.h" … … 114 115 void commitSelector(bool); 115 116 void commitSelectorTime(); 116 PassRefPtr< InspectorObject> toInspectorObject() const;117 PassRefPtr<TypeBuilder::CSS::SelectorProfile> toInspectorObject() const; 117 118 118 119 private: … … 202 203 } 203 204 204 PassRefPtr< InspectorObject> SelectorProfile::toInspectorObject() const205 { 206 RefPtr< InspectorArray> selectorProfileData = InspectorArray::create();205 PassRefPtr<TypeBuilder::CSS::SelectorProfile> SelectorProfile::toInspectorObject() const 206 { 207 RefPtr<TypeBuilder::Array<TypeBuilder::CSS::SelectorProfileEntry> > selectorProfileData = TypeBuilder::Array<TypeBuilder::CSS::SelectorProfileEntry>::create(); 207 208 for (RuleMatchingStatsMap::const_iterator it = m_ruleMatchingStats.begin(); it != m_ruleMatchingStats.end(); ++it) { 208 209 RefPtr<TypeBuilder::CSS::SelectorProfileEntry> entry = TypeBuilder::CSS::SelectorProfileEntry::create() … … 213 214 .setHitCount(it->second.hits) 214 215 .setMatchCount(it->second.matches); 215 selectorProfileData-> pushObject(entry.release());216 selectorProfileData->addItem(entry.release()); 216 217 } 217 218 … … 489 490 clearPseudoState(true); 490 491 String errorString; 491 stopSelectorProfilerImpl(&errorString );492 stopSelectorProfilerImpl(&errorString, false); 492 493 } 493 494 … … 563 564 } 564 565 565 void InspectorCSSAgent::getMatchedStylesForNode(ErrorString* errorString, int nodeId, const RefPtr<InspectorArray>* forcedPseudoClasses, const bool* needPseudo, const bool* needInherited, RefPtr<InspectorArray>& matchedCSSRules, RefPtr<InspectorArray>& pseudoIdRules, RefPtr<InspectorArray>& inheritedEntries)566 void InspectorCSSAgent::getMatchedStylesForNode(ErrorString* errorString, int nodeId, const RefPtr<InspectorArray>* forcedPseudoClasses, const bool* includePseudo, const bool* includeInherited, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSRule> >& matchedCSSRules, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::PseudoIdRules> >& pseudoIdRules, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::InheritedStyleEntry> >& inheritedEntries) 566 567 { 567 568 Element* element = elementForId(errorString, nodeId); … … 577 578 578 579 // Pseudo elements. 579 if (! needPseudo || *needPseudo) {580 RefPtr< InspectorArray> pseudoElements = InspectorArray::create();580 if (!includePseudo || *includePseudo) { 581 RefPtr<TypeBuilder::Array<TypeBuilder::CSS::PseudoIdRules> > pseudoElements = TypeBuilder::Array<TypeBuilder::CSS::PseudoIdRules>::create(); 581 582 for (PseudoId pseudoId = FIRST_PUBLIC_PSEUDOID; pseudoId < AFTER_LAST_INTERNAL_PSEUDOID; pseudoId = static_cast<PseudoId>(pseudoId + 1)) { 582 583 RefPtr<CSSRuleList> matchedRules = selector->pseudoStyleRulesForElement(element, pseudoId, CSSStyleSelector::AllCSSRules); 583 584 if (matchedRules && matchedRules->length()) { 584 RefPtr< InspectorObject> pseudoStyles = InspectorObject::create();585 pseudoStyles->setNumber("pseudoId", static_cast<int>(pseudoId));586 pseudoStyles->setArray("rules",buildArrayForRuleList(matchedRules.get()));587 pseudoElements-> pushObject(pseudoStyles.release());585 RefPtr<TypeBuilder::CSS::PseudoIdRules> pseudoStyles = TypeBuilder::CSS::PseudoIdRules::create() 586 .setPseudoId(static_cast<int>(pseudoId)) 587 .setRules(buildArrayForRuleList(matchedRules.get())); 588 pseudoElements->addItem(pseudoStyles.release()); 588 589 } 589 590 } … … 593 594 594 595 // Inherited styles. 595 if (! needInherited || *needInherited) {596 RefPtr< InspectorArray> inheritedStyles = InspectorArray::create();596 if (!includeInherited || *includeInherited) { 597 RefPtr<TypeBuilder::Array<TypeBuilder::CSS::InheritedStyleEntry> > inheritedStyles = TypeBuilder::Array<TypeBuilder::CSS::InheritedStyleEntry>::create(); 597 598 Element* parentElement = element->parentElement(); 598 599 while (parentElement) { 599 RefPtr<InspectorObject> parentStyle = InspectorObject::create(); 600 CSSStyleSelector* parentSelector = parentElement->ownerDocument()->styleSelector(); 601 RefPtr<CSSRuleList> parentMatchedRules = parentSelector->styleRulesForElement(parentElement, CSSStyleSelector::AllCSSRules); 602 RefPtr<TypeBuilder::CSS::InheritedStyleEntry> parentStyle = TypeBuilder::CSS::InheritedStyleEntry::create() 603 .setMatchedCSSRules(buildArrayForRuleList(parentMatchedRules.get())); 600 604 if (parentElement->style() && parentElement->style()->length()) { 601 605 InspectorStyleSheetForInlineStyle* styleSheet = asInspectorStyleSheet(parentElement); 602 606 if (styleSheet) 603 parentStyle->set Object("inlineStyle",styleSheet->buildObjectForStyle(styleSheet->styleForId(InspectorCSSId(styleSheet->id(), 0))));607 parentStyle->setInlineStyle(styleSheet->buildObjectForStyle(styleSheet->styleForId(InspectorCSSId(styleSheet->id(), 0)))); 604 608 } 605 609 606 CSSStyleSelector* parentSelector = parentElement->ownerDocument()->styleSelector(); 607 RefPtr<CSSRuleList> parentMatchedRules = parentSelector->styleRulesForElement(parentElement, CSSStyleSelector::AllCSSRules); 608 parentStyle->setArray("matchedCSSRules", buildArrayForRuleList(parentMatchedRules.get())); 609 inheritedStyles->pushObject(parentStyle.release()); 610 inheritedStyles->addItem(parentStyle.release()); 610 611 parentElement = parentElement->parentElement(); 611 612 } … … 615 616 } 616 617 617 void InspectorCSSAgent::getInlineStylesForNode(ErrorString* errorString, int nodeId, RefPtr< InspectorObject>& inlineStyle, RefPtr<InspectorObject>& attributesStyle)618 void InspectorCSSAgent::getInlineStylesForNode(ErrorString* errorString, int nodeId, RefPtr<TypeBuilder::CSS::CSSStyle>& inlineStyle, RefPtr<TypeBuilder::CSS::CSSStyle>& attributesStyle) 618 619 { 619 620 Element* element = elementForId(errorString, nodeId); … … 626 627 627 628 inlineStyle = styleSheet->buildObjectForStyle(element->style()); 628 RefPtr< InspectorObject> attributes = buildObjectForAttributesStyle(element);629 RefPtr<TypeBuilder::CSS::CSSStyle> attributes = buildObjectForAttributesStyle(element); 629 630 attributesStyle = attributes ? attributes.release() : 0; 630 631 } 631 632 632 void InspectorCSSAgent::getComputedStyleForNode(ErrorString* errorString, int nodeId, const RefPtr<InspectorArray>* forcedPseudoClasses, RefPtr< InspectorArray>& style)633 void InspectorCSSAgent::getComputedStyleForNode(ErrorString* errorString, int nodeId, const RefPtr<InspectorArray>* forcedPseudoClasses, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSComputedStyleProperty> >& style) 633 634 { 634 635 Element* element = elementForId(errorString, nodeId); … … 643 644 } 644 645 645 void InspectorCSSAgent::getAllStyleSheets(ErrorString*, RefPtr<InspectorArray>& styleInfos) 646 { 646 void InspectorCSSAgent::getAllStyleSheets(ErrorString*, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSStyleSheetHeader> >& styleInfos) 647 { 648 styleInfos = TypeBuilder::Array<TypeBuilder::CSS::CSSStyleSheetHeader>::create(); 647 649 Vector<Document*> documents = m_domAgent->documents(); 648 650 for (Vector<Document*>::iterator it = documents.begin(); it != documents.end(); ++it) { … … 656 658 } 657 659 658 void InspectorCSSAgent::getStyleSheet(ErrorString* errorString, const String& styleSheetId, RefPtr< InspectorObject>& styleSheetObject)660 void InspectorCSSAgent::getStyleSheet(ErrorString* errorString, const String& styleSheetId, RefPtr<TypeBuilder::CSS::CSSStyleSheetBody>& styleSheetObject) 659 661 { 660 662 InspectorStyleSheet* inspectorStyleSheet = assertStyleSheetForId(errorString, styleSheetId); … … 685 687 } 686 688 687 void InspectorCSSAgent::setPropertyText(ErrorString* errorString, const RefPtr<InspectorObject>& fullStyleId, int propertyIndex, const String& text, bool overwrite, RefPtr< InspectorObject>& result)689 void InspectorCSSAgent::setPropertyText(ErrorString* errorString, const RefPtr<InspectorObject>& fullStyleId, int propertyIndex, const String& text, bool overwrite, RefPtr<TypeBuilder::CSS::CSSStyle>& result) 688 690 { 689 691 InspectorCSSId compoundId(fullStyleId); … … 701 703 } 702 704 703 void InspectorCSSAgent::toggleProperty(ErrorString* errorString, const RefPtr<InspectorObject>& fullStyleId, int propertyIndex, bool disable, RefPtr< InspectorObject>& result)705 void InspectorCSSAgent::toggleProperty(ErrorString* errorString, const RefPtr<InspectorObject>& fullStyleId, int propertyIndex, bool disable, RefPtr<TypeBuilder::CSS::CSSStyle>& result) 704 706 { 705 707 InspectorCSSId compoundId(fullStyleId); … … 717 719 } 718 720 719 void InspectorCSSAgent::setRuleSelector(ErrorString* errorString, const RefPtr<InspectorObject>& fullRuleId, const String& selector, RefPtr< InspectorObject>& result)721 void InspectorCSSAgent::setRuleSelector(ErrorString* errorString, const RefPtr<InspectorObject>& fullRuleId, const String& selector, RefPtr<TypeBuilder::CSS::CSSRule>& result) 720 722 { 721 723 InspectorCSSId compoundId(fullRuleId); … … 728 730 ExceptionCode ec = 0; 729 731 bool success = m_domAgent->history()->perform(adoptPtr(new SetRuleSelectorAction(inspectorStyleSheet, compoundId, selector)), ec); 730 if (success)731 result = inspectorStyleSheet->buildObjectForStyle(inspectorStyleSheet->styleForId(compoundId));732 *errorString = InspectorDOMAgent::toErrorString(ec);733 732 734 733 if (success) 735 734 result = inspectorStyleSheet->buildObjectForRule(inspectorStyleSheet->ruleForId(compoundId)); 736 } 737 738 void InspectorCSSAgent::addRule(ErrorString* errorString, const int contextNodeId, const String& selector, RefPtr<InspectorObject>& result) 735 *errorString = InspectorDOMAgent::toErrorString(ec); 736 } 737 738 void InspectorCSSAgent::addRule(ErrorString* errorString, const int contextNodeId, const String& selector, RefPtr<TypeBuilder::CSS::CSSRule>& result) 739 739 { 740 740 Node* node = m_domAgent->assertNode(errorString, contextNodeId); … … 762 762 } 763 763 764 void InspectorCSSAgent::getSupportedCSSProperties(ErrorString*, RefPtr< InspectorArray>& cssProperties)765 { 766 RefPtr< InspectorArray> properties = InspectorArray::create();764 void InspectorCSSAgent::getSupportedCSSProperties(ErrorString*, RefPtr<TypeBuilder::Array<String> >& cssProperties) 765 { 766 RefPtr<TypeBuilder::Array<String> > properties = TypeBuilder::Array<String>::create(); 767 767 for (int i = 0; i < numCSSProperties; ++i) 768 properties-> pushString(propertyNameStrings[i]);768 properties->addItem(propertyNameStrings[i]); 769 769 770 770 cssProperties = properties.release(); … … 777 777 } 778 778 779 void InspectorCSSAgent::stopSelectorProfiler(ErrorString* errorString, RefPtr< InspectorObject>& result)780 { 781 stopSelectorProfilerImpl(errorString, &result);782 } 783 784 void InspectorCSSAgent::stopSelectorProfilerImpl(ErrorString*, RefPtr<InspectorObject>* result)779 void InspectorCSSAgent::stopSelectorProfiler(ErrorString* errorString, RefPtr<TypeBuilder::CSS::SelectorProfile>& result) 780 { 781 result = stopSelectorProfilerImpl(errorString, true); 782 } 783 784 PassRefPtr<TypeBuilder::CSS::SelectorProfile> InspectorCSSAgent::stopSelectorProfilerImpl(ErrorString*, bool needProfile) 785 785 { 786 786 if (!m_state->getBoolean(CSSAgentState::isSelectorProfiling)) 787 return ;787 return 0; 788 788 m_state->setBoolean(CSSAgentState::isSelectorProfiling, false); 789 if (m_frontend && result) 790 *result = m_currentSelectorProfile->toInspectorObject(); 789 RefPtr<TypeBuilder::CSS::SelectorProfile> result; 790 if (m_frontend && needProfile) 791 result = m_currentSelectorProfile->toInspectorObject(); 791 792 m_currentSelectorProfile.clear(); 793 return result.release(); 792 794 } 793 795 … … 848 850 } 849 851 850 void InspectorCSSAgent::collectStyleSheets(CSSStyleSheet* styleSheet, InspectorArray* result)852 void InspectorCSSAgent::collectStyleSheets(CSSStyleSheet* styleSheet, TypeBuilder::Array<TypeBuilder::CSS::CSSStyleSheetHeader>* result) 851 853 { 852 854 InspectorStyleSheet* inspectorStyleSheet = bindStyleSheet(static_cast<CSSStyleSheet*>(styleSheet)); 853 result-> pushObject(inspectorStyleSheet->buildObjectForStyleSheetInfo());855 result->addItem(inspectorStyleSheet->buildObjectForStyleSheetInfo()); 854 856 for (unsigned i = 0, size = styleSheet->length(); i < size; ++i) { 855 857 CSSRule* rule = styleSheet->item(i); … … 947 949 } 948 950 949 PassRefPtr< InspectorArray> InspectorCSSAgent::buildArrayForRuleList(CSSRuleList* ruleList)950 { 951 RefPtr< InspectorArray> result = InspectorArray::create();951 PassRefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSRule> > InspectorCSSAgent::buildArrayForRuleList(CSSRuleList* ruleList) 952 { 953 RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSRule> > result = TypeBuilder::Array<TypeBuilder::CSS::CSSRule>::create(); 952 954 if (!ruleList) 953 955 return result.release(); … … 960 962 InspectorStyleSheet* styleSheet = bindStyleSheet(rule->parentStyleSheet()); 961 963 if (styleSheet) 962 result-> pushObject(styleSheet->buildObjectForRule(rule));964 result->addItem(styleSheet->buildObjectForRule(rule)); 963 965 } 964 966 return result.release(); 965 967 } 966 968 967 PassRefPtr< InspectorObject> InspectorCSSAgent::buildObjectForAttributesStyle(Element* element)969 PassRefPtr<TypeBuilder::CSS::CSSStyle> InspectorCSSAgent::buildObjectForAttributesStyle(Element* element) 968 970 { 969 971 if (!element->isStyledElement()) -
trunk/Source/WebCore/inspector/InspectorCSSAgent.h
r109730 r112087 99 99 void mediaQueryResultChanged(); 100 100 101 virtual void getComputedStyleForNode(ErrorString*, int nodeId, const RefPtr<InspectorArray>* forcedPseudoClasses, RefPtr< InspectorArray>& style);102 virtual void getInlineStylesForNode(ErrorString*, int nodeId, RefPtr< InspectorObject>& inlineStyle, RefPtr<InspectorObject>& attributes);103 virtual void getMatchedStylesForNode(ErrorString*, int nodeId, const RefPtr<InspectorArray>* forcedPseudoClasses, const bool* includePseudo, const bool* includeInherited, RefPtr< InspectorArray>& matchedCSSRules, RefPtr<InspectorArray>& pseudoIdRules, RefPtr<InspectorArray>& inheritedEntries);104 virtual void getAllStyleSheets(ErrorString*, RefPtr< InspectorArray>& styleSheetInfos);105 virtual void getStyleSheet(ErrorString*, const String& styleSheetId, RefPtr< InspectorObject>& result);101 virtual void getComputedStyleForNode(ErrorString*, int nodeId, const RefPtr<InspectorArray>* forcedPseudoClasses, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSComputedStyleProperty> >&); 102 virtual void getInlineStylesForNode(ErrorString*, int nodeId, RefPtr<TypeBuilder::CSS::CSSStyle>& inlineStyle, RefPtr<TypeBuilder::CSS::CSSStyle>& attributes); 103 virtual void getMatchedStylesForNode(ErrorString*, int nodeId, const RefPtr<InspectorArray>* forcedPseudoClasses, const bool* includePseudo, const bool* includeInherited, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSRule> >& matchedCSSRules, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::PseudoIdRules> >& pseudoRules, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::InheritedStyleEntry> >& inheritedEntries); 104 virtual void getAllStyleSheets(ErrorString*, RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSStyleSheetHeader> >& styleSheetInfos); 105 virtual void getStyleSheet(ErrorString*, const String& styleSheetId, RefPtr<TypeBuilder::CSS::CSSStyleSheetBody>& result); 106 106 virtual void getStyleSheetText(ErrorString*, const String& styleSheetId, String* result); 107 107 virtual void setStyleSheetText(ErrorString*, const String& styleSheetId, const String& text); 108 virtual void setPropertyText(ErrorString*, const RefPtr<InspectorObject>& styleId, int propertyIndex, const String& text, bool overwrite, RefPtr< InspectorObject>& result);109 virtual void toggleProperty(ErrorString*, const RefPtr<InspectorObject>& styleId, int propertyIndex, bool disable, RefPtr< InspectorObject>& result);110 virtual void setRuleSelector(ErrorString*, const RefPtr<InspectorObject>& ruleId, const String& selector, RefPtr< InspectorObject>& result);111 virtual void addRule(ErrorString*, int contextNodeId, const String& selector, RefPtr< InspectorObject>& result);112 virtual void getSupportedCSSProperties(ErrorString*, RefPtr< InspectorArray>& result);108 virtual void setPropertyText(ErrorString*, const RefPtr<InspectorObject>& styleId, int propertyIndex, const String& text, bool overwrite, RefPtr<TypeBuilder::CSS::CSSStyle>& result); 109 virtual void toggleProperty(ErrorString*, const RefPtr<InspectorObject>& styleId, int propertyIndex, bool disable, RefPtr<TypeBuilder::CSS::CSSStyle>& result); 110 virtual void setRuleSelector(ErrorString*, const RefPtr<InspectorObject>& ruleId, const String& selector, RefPtr<TypeBuilder::CSS::CSSRule>& result); 111 virtual void addRule(ErrorString*, int contextNodeId, const String& selector, RefPtr<TypeBuilder::CSS::CSSRule>& result); 112 virtual void getSupportedCSSProperties(ErrorString*, RefPtr<TypeBuilder::Array<String> >& result); 113 113 114 114 virtual void startSelectorProfiler(ErrorString*); 115 virtual void stopSelectorProfiler(ErrorString*, RefPtr< InspectorObject>&);115 virtual void stopSelectorProfiler(ErrorString*, RefPtr<TypeBuilder::CSS::SelectorProfile>&); 116 116 117 void stopSelectorProfilerImpl(ErrorString*, RefPtr<InspectorObject>* = 0);117 PassRefPtr<TypeBuilder::CSS::SelectorProfile> stopSelectorProfilerImpl(ErrorString*, bool needProfile); 118 118 void willMatchRule(const CSSStyleRule*); 119 119 void didMatchRule(bool); … … 139 139 InspectorStyleSheetForInlineStyle* asInspectorStyleSheet(Element* element); 140 140 Element* elementForId(ErrorString*, int nodeId); 141 void collectStyleSheets(CSSStyleSheet*, InspectorArray*);141 void collectStyleSheets(CSSStyleSheet*, TypeBuilder::Array<WebCore::TypeBuilder::CSS::CSSStyleSheetHeader>*); 142 142 143 143 InspectorStyleSheet* bindStyleSheet(CSSStyleSheet*); … … 146 146 String detectOrigin(CSSStyleSheet* pageStyleSheet, Document* ownerDocument); 147 147 148 PassRefPtr< InspectorArray> buildArrayForRuleList(CSSRuleList* ruleList);149 PassRefPtr< InspectorObject> buildObjectForAttributesStyle(Element*);148 PassRefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSRule> > buildArrayForRuleList(CSSRuleList*); 149 PassRefPtr<TypeBuilder::CSS::CSSStyle> buildObjectForAttributesStyle(Element*); 150 150 151 151 // InspectorDOMAgent::DOMListener implementation -
trunk/Source/WebCore/inspector/InspectorStyleSheet.cpp
r112083 r112087 58 58 #include <wtf/Vector.h> 59 59 60 using WebCore::TypeBuilder::Array; 61 60 62 class ParsedStyleSheet { 61 63 public: … … 116 118 }; 117 119 118 static PassRefPtr< InspectorObject> buildSourceRangeObject(const SourceRange& range)119 { 120 RefPtr< InspectorObject> result = InspectorObject::create();121 result->setNumber("start", range.start);122 result->setNumber("end",range.end);120 static PassRefPtr<TypeBuilder::CSS::SourceRange> buildSourceRangeObject(const SourceRange& range) 121 { 122 RefPtr<TypeBuilder::CSS::SourceRange> result = TypeBuilder::CSS::SourceRange::create() 123 .setStart(range.start) 124 .setEnd(range.end); 123 125 return result.release(); 124 126 } 125 127 126 static PassRefPtr<InspectorObject> buildMediaObject(const MediaList* media, MediaListSource mediaListSource, const String& sourceURL) 127 { 128 RefPtr<InspectorObject> mediaObject = InspectorObject::create(); 128 static PassRefPtr<TypeBuilder::CSS::CSSMedia> buildMediaObject(const MediaList* media, MediaListSource mediaListSource, const String& sourceURL) 129 { 130 // Make certain compilers happy by initializing |source| up-front. 131 TypeBuilder::CSS::CSSMedia::Source::Enum source = TypeBuilder::CSS::CSSMedia::Source::InlineSheet; 129 132 switch (mediaListSource) { 130 133 case MediaListSourceMediaRule: 131 mediaObject->setString("source", "mediaRule");134 source = TypeBuilder::CSS::CSSMedia::Source::MediaRule; 132 135 break; 133 136 case MediaListSourceImportRule: 134 mediaObject->setString("source", "importRule");137 source = TypeBuilder::CSS::CSSMedia::Source::ImportRule; 135 138 break; 136 139 case MediaListSourceLinkedSheet: 137 mediaObject->setString("source", "linkedSheet");140 source = TypeBuilder::CSS::CSSMedia::Source::LinkedSheet; 138 141 break; 139 142 case MediaListSourceInlineSheet: 140 mediaObject->setString("source", "inlineSheet");143 source = TypeBuilder::CSS::CSSMedia::Source::InlineSheet; 141 144 break; 142 145 } 146 147 RefPtr<TypeBuilder::CSS::CSSMedia> mediaObject = TypeBuilder::CSS::CSSMedia::create() 148 .setText(media->mediaText()) 149 .setSource(source); 150 143 151 if (!sourceURL.isEmpty()) { 144 mediaObject->setString("sourceURL", sourceURL); 145 mediaObject->setNumber("sourceLine", media->queries()->lastLine()); 146 } 147 mediaObject->setString("text", media->mediaText()); 152 mediaObject->setSourceURL(sourceURL); 153 mediaObject->setSourceLine(media->queries()->lastLine()); 154 } 148 155 return mediaObject.release(); 149 156 } … … 179 186 } 180 187 181 static void fillMediaListChain(CSSRule* rule, InspectorArray* mediaArray)188 static void fillMediaListChain(CSSRule* rule, Array<TypeBuilder::CSS::CSSMedia>* mediaArray) 182 189 { 183 190 MediaList* mediaList; … … 207 214 208 215 if (mediaList && mediaList->length()) 209 mediaArray-> pushObject(buildMediaObject(mediaList, isMediaRule ? MediaListSourceMediaRule : MediaListSourceImportRule, sourceURL));216 mediaArray->addItem(buildMediaObject(mediaList, isMediaRule ? MediaListSourceMediaRule : MediaListSourceImportRule, sourceURL)); 210 217 211 218 if (parentRule->parentRule()) … … 252 259 } 253 260 254 PassRefPtr< InspectorObject> InspectorStyle::buildObjectForStyle() const255 { 256 RefPtr< InspectorObject> result = InspectorObject::create();261 PassRefPtr<TypeBuilder::CSS::CSSStyle> InspectorStyle::buildObjectForStyle() const 262 { 263 RefPtr<TypeBuilder::CSS::CSSStyle> result = styleWithProperties(); 257 264 if (!m_styleId.isEmpty()) 258 result->set Value("styleId", m_styleId.asInspectorValue());259 260 result->set String("width",m_style->getPropertyValue("width"));261 result->set String("height",m_style->getPropertyValue("height"));265 result->setStyleId(m_styleId.asProtocolValue()); 266 267 result->setWidth(m_style->getPropertyValue("width")); 268 result->setHeight(m_style->getPropertyValue("height")); 262 269 263 270 RefPtr<CSSRuleSourceData> sourceData = m_parentStyleSheet ? m_parentStyleSheet->ruleSourceDataFor(m_style.get()) : 0; 264 271 if (sourceData) 265 result->setObject("range", buildSourceRangeObject(sourceData->styleSourceData->styleBodyRange)); 266 267 populateObjectWithStyleProperties(result.get()); 272 result->setRange(buildSourceRangeObject(sourceData->styleSourceData->styleBodyRange)); 268 273 269 274 return result.release(); 270 275 } 271 276 272 PassRefPtr< InspectorArray> InspectorStyle::buildArrayForComputedStyle() const273 { 274 RefPtr< InspectorArray> result = InspectorArray::create();277 PassRefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSComputedStyleProperty> > InspectorStyle::buildArrayForComputedStyle() const 278 { 279 RefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSComputedStyleProperty> > result = TypeBuilder::Array<TypeBuilder::CSS::CSSComputedStyleProperty>::create(); 275 280 Vector<InspectorStyleProperty> properties; 276 281 populateAllProperties(&properties); … … 278 283 for (Vector<InspectorStyleProperty>::iterator it = properties.begin(), itEnd = properties.end(); it != itEnd; ++it) { 279 284 const CSSPropertySourceData& propertyEntry = it->sourceData; 280 RefPtr< InspectorObject> entry = InspectorObject::create();281 entry->setString("name", propertyEntry.name);282 entry->setString("value",propertyEntry.value);283 result-> pushObject(entry);285 RefPtr<TypeBuilder::CSS::CSSComputedStyleProperty> entry = TypeBuilder::CSS::CSSComputedStyleProperty::create() 286 .setName(propertyEntry.name) 287 .setValue(propertyEntry.value); 288 result->addItem(entry); 284 289 } 285 290 … … 458 463 } 459 464 460 void InspectorStyle::populateObjectWithStyleProperties(InspectorObject* result) const465 PassRefPtr<TypeBuilder::CSS::CSSStyle> InspectorStyle::styleWithProperties() const 461 466 { 462 467 Vector<InspectorStyleProperty> properties; 463 468 populateAllProperties(&properties); 464 469 465 RefPtr< InspectorArray> propertiesObject = InspectorArray::create();466 RefPtr< InspectorArray> shorthandEntries = InspectorArray::create();467 HashMap<String, RefPtr< InspectorObject> > propertyNameToPreviousActiveProperty;470 RefPtr<Array<TypeBuilder::CSS::CSSProperty> > propertiesObject = Array<TypeBuilder::CSS::CSSProperty>::create(); 471 RefPtr<Array<InspectorObject> > shorthandEntries = Array<InspectorObject>::create(); 472 HashMap<String, RefPtr<TypeBuilder::CSS::CSSProperty> > propertyNameToPreviousActiveProperty; 468 473 HashSet<String> foundShorthands; 469 474 … … 472 477 const String& name = propertyEntry.name; 473 478 474 RefPtr<InspectorObject> property = InspectorObject::create(); 475 propertiesObject->pushObject(property); 476 String status = it->disabled ? "disabled" : "active"; 479 TypeBuilder::CSS::CSSProperty::Status::Enum status = it->disabled ? TypeBuilder::CSS::CSSProperty::Status::Disabled : TypeBuilder::CSS::CSSProperty::Status::Active; 480 481 RefPtr<TypeBuilder::CSS::CSSProperty> property = TypeBuilder::CSS::CSSProperty::create() 482 .setName(name) 483 .setValue(propertyEntry.value); 484 485 propertiesObject->addItem(property); 477 486 478 487 // Default "parsedOk" == true. 479 488 if (!propertyEntry.parsedOk) 480 property->set Boolean("parsedOk",false);489 property->setParsedOk(false); 481 490 if (it->hasRawText()) 482 property->setString("text", it->rawText); 483 property->setString("name", name); 484 property->setString("value", propertyEntry.value); 491 property->setText(it->rawText); 485 492 486 493 // Default "priority" == "". 487 494 if (propertyEntry.important) 488 property->set String("priority","important");495 property->setPriority("important"); 489 496 if (!it->disabled) { 490 497 if (it->hasSource) { 491 property->set Boolean("implicit",false);492 property->set Object("range",buildSourceRangeObject(propertyEntry.range));498 property->setImplicit(false); 499 property->setRange(buildSourceRangeObject(propertyEntry.range)); 493 500 494 501 // Parsed property overrides any property with the same name. Non-parsed property overrides … … 498 505 // Canonicalize property names to treat non-prefixed and vendor-prefixed property names the same (opacity vs. -webkit-opacity). 499 506 String canonicalPropertyName = propertyId ? String(getPropertyName(propertyId)) : name; 500 HashMap<String, RefPtr< InspectorObject> >::iterator activeIt = propertyNameToPreviousActiveProperty.find(canonicalPropertyName);507 HashMap<String, RefPtr<TypeBuilder::CSS::CSSProperty> >::iterator activeIt = propertyNameToPreviousActiveProperty.find(canonicalPropertyName); 501 508 if (activeIt != propertyNameToPreviousActiveProperty.end()) { 502 509 if (propertyEntry.parsedOk) … … 512 519 513 520 if (shouldInactivate) { 514 activeIt->second->setSt ring("status", "inactive");521 activeIt->second->setStatus(TypeBuilder::CSS::CSSProperty::Status::Inactive); 515 522 activeIt->second->remove("shorthandName"); 516 523 propertyNameToPreviousActiveProperty.set(canonicalPropertyName, property); … … 520 527 // Default "implicit" == false. 521 528 if (implicit) 522 property->set Boolean("implicit",true);523 status = "";529 property->setImplicit(true); 530 status = TypeBuilder::CSS::CSSProperty::Status::Style; 524 531 } 525 532 } 526 533 527 534 // Default "status" == "style". 528 if ( !status.isEmpty())529 property->setSt ring("status",status);535 if (status != TypeBuilder::CSS::CSSProperty::Status::Style) 536 property->setStatus(status); 530 537 531 538 if (propertyEntry.parsedOk) { … … 534 541 if (!shorthand.isEmpty()) { 535 542 // Default "shorthandName" == "". 536 property->setS tring("shorthandName",shorthand);543 property->setShorthandName(shorthand); 537 544 if (!foundShorthands.contains(shorthand)) { 538 545 foundShorthands.add(shorthand); … … 547 554 } 548 555 549 result->setArray("cssProperties", propertiesObject); 550 result->setArray("shorthandEntries", shorthandEntries); 556 RefPtr<TypeBuilder::CSS::CSSStyle> result = TypeBuilder::CSS::CSSStyle::create() 557 .setCssProperties(propertiesObject) 558 .setShorthandEntries(shorthandEntries); 559 return result.release(); 551 560 } 552 561 … … 836 845 } 837 846 838 PassRefPtr< InspectorObject> InspectorStyleSheet::buildObjectForStyleSheet()847 PassRefPtr<TypeBuilder::CSS::CSSStyleSheetBody> InspectorStyleSheet::buildObjectForStyleSheet() 839 848 { 840 849 CSSStyleSheet* styleSheet = pageStyleSheet(); … … 842 851 return 0; 843 852 844 RefPtr<InspectorObject> result = InspectorObject::create();845 result->setString("styleSheetId", id());846 853 RefPtr<CSSRuleList> cssRuleList = asCSSRuleList(styleSheet); 847 RefPtr<InspectorArray> cssRules = buildArrayForRuleList(cssRuleList.get()); 848 result->setArray("rules", cssRules.release()); 854 855 RefPtr<TypeBuilder::CSS::CSSStyleSheetBody> result = TypeBuilder::CSS::CSSStyleSheetBody::create() 856 .setStyleSheetId(id()) 857 .setRules(buildArrayForRuleList(cssRuleList.get())); 849 858 850 859 String styleSheetText; 851 860 bool success = getText(&styleSheetText); 852 861 if (success) 853 result->set String("text",styleSheetText);862 result->setText(styleSheetText); 854 863 855 864 return result.release(); 856 865 } 857 866 858 PassRefPtr< InspectorObject> InspectorStyleSheet::buildObjectForStyleSheetInfo()867 PassRefPtr<TypeBuilder::CSS::CSSStyleSheetHeader> InspectorStyleSheet::buildObjectForStyleSheetInfo() 859 868 { 860 869 CSSStyleSheet* styleSheet = pageStyleSheet(); … … 862 871 return 0; 863 872 864 RefPtr< InspectorObject> result = InspectorObject::create();865 result->setString("styleSheetId", id());866 result->setBoolean("disabled", styleSheet->disabled());867 result->setString("sourceURL", finalURL());868 result->setString("title",styleSheet->title());873 RefPtr<TypeBuilder::CSS::CSSStyleSheetHeader> result = TypeBuilder::CSS::CSSStyleSheetHeader::create() 874 .setStyleSheetId(id()) 875 .setDisabled(styleSheet->disabled()) 876 .setSourceURL(finalURL()) 877 .setTitle(styleSheet->title()); 869 878 return result.release(); 870 879 } 871 880 872 PassRefPtr< InspectorObject> InspectorStyleSheet::buildObjectForRule(CSSStyleRule* rule)881 PassRefPtr<TypeBuilder::CSS::CSSRule> InspectorStyleSheet::buildObjectForRule(CSSStyleRule* rule) 873 882 { 874 883 CSSStyleSheet* styleSheet = pageStyleSheet(); … … 876 885 return 0; 877 886 878 RefPtr<InspectorObject> result = InspectorObject::create(); 879 result->setString("selectorText", rule->selectorText()); 887 RefPtr<TypeBuilder::CSS::CSSRule> result = TypeBuilder::CSS::CSSRule::create() 888 .setSelectorText(rule->selectorText()) 889 .setSourceLine(rule->styleRule()->sourceLine()) 890 .setOrigin(m_origin) 891 .setStyle(buildObjectForStyle(rule->style())); 892 880 893 // "sourceURL" is present only for regular rules, otherwise "origin" should be used in the frontend. 881 894 if (m_origin == "regular") 882 result->setString("sourceURL", finalURL()); 883 result->setNumber("sourceLine", rule->styleRule()->sourceLine()); 884 result->setString("origin", m_origin); 885 886 result->setObject("style", buildObjectForStyle(rule->style())); 895 result->setSourceURL(finalURL()); 896 887 897 if (canBind()) { 888 898 InspectorCSSId id(ruleId(rule)); 889 899 if (!id.isEmpty()) 890 result->set Value("ruleId", id.asInspectorValue());900 result->setRuleId(id.asProtocolValue()); 891 901 } 892 902 … … 895 905 sourceData = ruleSourceDataFor(rule->style()); 896 906 if (sourceData) { 897 RefPtr< InspectorObject> selectorRange = InspectorObject::create();898 selectorRange->setNumber("start", sourceData->selectorListRange.start);899 selectorRange->setNumber("end",sourceData->selectorListRange.end);900 result->set Object("selectorRange",selectorRange.release());901 } 902 903 RefPtr< InspectorArray> mediaArray = InspectorArray::create();907 RefPtr<TypeBuilder::CSS::SourceRange> selectorRange = TypeBuilder::CSS::SourceRange::create() 908 .setStart(sourceData->selectorListRange.start) 909 .setEnd(sourceData->selectorListRange.end); 910 result->setSelectorRange(selectorRange.release()); 911 } 912 913 RefPtr<Array<TypeBuilder::CSS::CSSMedia> > mediaArray = Array<TypeBuilder::CSS::CSSMedia>::create(); 904 914 905 915 fillMediaListChain(rule, mediaArray.get()); 906 916 if (mediaArray->length()) 907 result->set Array("media",mediaArray.release());917 result->setMedia(mediaArray.release()); 908 918 909 919 return result.release(); 910 920 } 911 921 912 PassRefPtr< InspectorObject> InspectorStyleSheet::buildObjectForStyle(CSSStyleDeclaration* style)922 PassRefPtr<TypeBuilder::CSS::CSSStyle> InspectorStyleSheet::buildObjectForStyle(CSSStyleDeclaration* style) 913 923 { 914 924 RefPtr<CSSRuleSourceData> sourceData; … … 918 928 InspectorCSSId id = ruleOrStyleId(style); 919 929 if (id.isEmpty()) { 920 RefPtr< InspectorObject> bogusStyle = InspectorObject::create();921 bogusStyle->setArray("cssProperties", InspectorArray::create());922 bogusStyle->setObject("shorthandEntries", InspectorObject::create());930 RefPtr<TypeBuilder::CSS::CSSStyle> bogusStyle = TypeBuilder::CSS::CSSStyle::create() 931 .setCssProperties(Array<TypeBuilder::CSS::CSSProperty>::create()) 932 .setShorthandEntries(Array<InspectorObject>::create()); 923 933 return bogusStyle.release(); 924 934 } 925 935 RefPtr<InspectorStyle> inspectorStyle = inspectorStyleForId(id); 926 RefPtr< InspectorObject> result = inspectorStyle->buildObjectForStyle();936 RefPtr<TypeBuilder::CSS::CSSStyle> result = inspectorStyle->buildObjectForStyle(); 927 937 928 938 // Style text cannot be retrieved without stylesheet, so set cssText here. … … 932 942 if (success) { 933 943 const SourceRange& bodyRange = sourceData->styleSourceData->styleBodyRange; 934 result->set String("cssText",sheetText.substring(bodyRange.start, bodyRange.end - bodyRange.start));944 result->setCssText(sheetText.substring(bodyRange.start, bodyRange.end - bodyRange.start)); 935 945 } 936 946 } -
trunk/Source/WebCore/inspector/InspectorStyleSheet.h
r108391 r112087 30 30 #include "ExceptionCode.h" 31 31 #include "InspectorStyleTextEditor.h" 32 #include "InspectorTypeBuilder.h" 32 33 #include "InspectorValues.h" 33 34 #include "PlatformString.h" … … 80 81 unsigned ordinal() const { return m_ordinal; } 81 82 82 PassRefPtr< InspectorValue> asInspectorValue() const83 PassRefPtr<TypeBuilder::CSS::CSSStyleId> asProtocolValue() const 83 84 { 84 85 if (isEmpty()) 85 return InspectorValue::null();86 87 RefPtr< InspectorObject> result = InspectorObject::create();88 result->setString("styleSheetId", m_styleSheetId);89 result->setNumber("ordinal",m_ordinal);86 return 0; 87 88 RefPtr<TypeBuilder::CSS::CSSStyleId> result = TypeBuilder::CSS::CSSStyleId::create() 89 .setStyleSheetId(m_styleSheetId) 90 .setOrdinal(m_ordinal); 90 91 return result.release(); 91 92 } … … 131 132 132 133 CSSStyleDeclaration* cssStyle() const { return m_style.get(); } 133 PassRefPtr< InspectorObject> buildObjectForStyle() const;134 PassRefPtr< InspectorArray> buildArrayForComputedStyle() const;134 PassRefPtr<TypeBuilder::CSS::CSSStyle> buildObjectForStyle() const; 135 PassRefPtr<TypeBuilder::Array<TypeBuilder::CSS::CSSComputedStyleProperty> > buildArrayForComputedStyle() const; 135 136 bool hasDisabledProperties() const { return !m_disabledProperties.isEmpty(); } 136 137 bool setPropertyText(unsigned index, const String& text, bool overwrite, String* oldText, ExceptionCode&); … … 142 143 bool styleText(String* result) const; 143 144 bool populateAllProperties(Vector<InspectorStyleProperty>* result) const; 144 void populateObjectWithStyleProperties(InspectorObject* result) const;145 PassRefPtr<TypeBuilder::CSS::CSSStyle> styleWithProperties() const; 145 146 bool applyStyleText(const String&); 146 147 String shorthandValue(const String& shorthandProperty) const; … … 182 183 bool deleteRule(const InspectorCSSId&, ExceptionCode&); 183 184 CSSStyleRule* ruleForId(const InspectorCSSId&) const; 184 PassRefPtr< InspectorObject> buildObjectForStyleSheet();185 PassRefPtr< InspectorObject> buildObjectForStyleSheetInfo();186 PassRefPtr< InspectorObject> buildObjectForRule(CSSStyleRule*);187 PassRefPtr< InspectorObject> buildObjectForStyle(CSSStyleDeclaration*);185 PassRefPtr<TypeBuilder::CSS::CSSStyleSheetBody> buildObjectForStyleSheet(); 186 PassRefPtr<TypeBuilder::CSS::CSSStyleSheetHeader> buildObjectForStyleSheetInfo(); 187 PassRefPtr<TypeBuilder::CSS::CSSRule> buildObjectForRule(CSSStyleRule*); 188 PassRefPtr<TypeBuilder::CSS::CSSStyle> buildObjectForStyle(CSSStyleDeclaration*); 188 189 bool setPropertyText(const InspectorCSSId&, unsigned propertyIndex, const String& text, bool overwrite, String* oldPropertyText, ExceptionCode&); 189 190 bool toggleProperty(const InspectorCSSId&, unsigned propertyIndex, bool disable, ExceptionCode&);
Note: See TracChangeset
for help on using the changeset viewer.