Changeset 74637 in webkit
- Timestamp:
- Dec 24, 2010 9:51:25 AM (13 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r74636 r74637 1 2010-12-24 Yury Semikhatsky <yurys@chromium.org> 2 3 Reviewed by Darin Adler. 4 5 inspector/debugger-step-out.html crashing intermittently in the bots 6 https://bugs.webkit.org/show_bug.cgi?id=50868 7 8 Use RefPtr rather instead of raw pointers when keeping references 9 to refcounted objects. 10 11 * inspector/InspectorCSSAgent.cpp: 12 (WebCore::InspectorCSSAgent::getStylesForNode2): 13 (WebCore::InspectorCSSAgent::getComputedStyleForNode2): 14 * inspector/InspectorStyleSheet.cpp: 15 (WebCore::InspectorStyle::create): 16 (WebCore::InspectorStyle::InspectorStyle): 17 (WebCore::InspectorStyle::buildObjectForStyle): 18 (WebCore::InspectorStyle::setPropertyText): 19 (WebCore::InspectorStyle::toggleProperty): 20 (WebCore::InspectorStyle::styleText): 21 (WebCore::InspectorStyle::populateAllProperties): 22 (WebCore::InspectorStyle::replacePropertyInStyleText): 23 (WebCore::InspectorStyleSheet::create): 24 (WebCore::InspectorStyleSheet::InspectorStyleSheet): 25 (WebCore::InspectorStyleSheetForInlineStyle::create): 26 (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle): 27 (WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges): 28 * inspector/InspectorStyleSheet.h: 29 (WebCore::InspectorStyle::cssStyle): 30 (WebCore::InspectorStyleSheet::pageStyleSheet): 31 1 32 2010-12-24 Justin Schuh <jschuh@chromium.org> 2 33 -
trunk/WebCore/inspector/InspectorCSSAgent.cpp
r74634 r74637 187 187 188 188 RefPtr<CSSComputedStyleDeclaration> computedStyleInfo = computedStyle(element, true); // Support the viewing of :visited information in computed style. 189 RefPtr<InspectorStyle> computedInspectorStyle = InspectorStyle::create(InspectorCSSId(), computedStyleInfo .get(), 0);189 RefPtr<InspectorStyle> computedInspectorStyle = InspectorStyle::create(InspectorCSSId(), computedStyleInfo, 0); 190 190 resultObject->setObject("computedStyle", computedInspectorStyle->buildObjectForStyle()); 191 191 … … 249 249 250 250 RefPtr<CSSComputedStyleDeclaration> computedStyleInfo = computedStyle(element, true); 251 RefPtr<InspectorStyle> inspectorStyle = InspectorStyle::create(InspectorCSSId(), computedStyleInfo .get(), 0);251 RefPtr<InspectorStyle> inspectorStyle = InspectorStyle::create(InspectorCSSId(), computedStyleInfo, 0); 252 252 *style = inspectorStyle->buildObjectForStyle(); 253 253 } -
trunk/WebCore/inspector/InspectorStyleSheet.cpp
r74634 r74637 132 132 } 133 133 134 PassRefPtr<InspectorStyle> InspectorStyle::create(const InspectorCSSId& styleId, PassRefPtr<CSSStyleDeclaration> style, InspectorStyleSheet* parentStyleSheet) 135 { 136 return adoptRef(new InspectorStyle(styleId, style, parentStyleSheet)); 137 } 138 139 InspectorStyle::InspectorStyle(const InspectorCSSId& styleId, PassRefPtr<CSSStyleDeclaration> style, InspectorStyleSheet* parentStyleSheet) 140 : m_styleId(styleId) 141 , m_style(style) 142 , m_parentStyleSheet(parentStyleSheet) 143 { 144 ASSERT(m_style); 145 } 146 134 147 PassRefPtr<InspectorObject> InspectorStyle::buildObjectForStyle() const 135 148 { … … 142 155 propertiesObject->setString("height", m_style->getPropertyValue("height")); 143 156 144 RefPtr<CSSRuleSourceData> sourceData = m_parentStyleSheet ? m_parentStyleSheet->ruleSourceDataFor(m_style ) : 0;157 RefPtr<CSSRuleSourceData> sourceData = m_parentStyleSheet ? m_parentStyleSheet->ruleSourceDataFor(m_style.get()) : 0; 145 158 if (sourceData) { 146 159 propertiesObject->setNumber("startOffset", sourceData->styleSourceData->styleBodyRange.start); … … 218 231 } else { 219 232 // Insert at index. 220 RefPtr<CSSRuleSourceData> sourceData = m_parentStyleSheet->ruleSourceDataFor(m_style );233 RefPtr<CSSRuleSourceData> sourceData = m_parentStyleSheet->ruleSourceDataFor(m_style.get()); 221 234 if (!sourceData) 222 235 return false; … … 258 271 259 272 text.insert(textToSet, propertyStart); 260 m_parentStyleSheet->setStyleText(m_style , text);273 m_parentStyleSheet->setStyleText(m_style.get(), text); 261 274 } 262 275 … … 272 285 if (!m_parentStyleSheet->ensureParsedDataReady()) 273 286 return false; // Can toggle only source-based properties. 274 RefPtr<CSSRuleSourceData> sourceData = m_parentStyleSheet->ruleSourceDataFor(m_style );287 RefPtr<CSSRuleSourceData> sourceData = m_parentStyleSheet->ruleSourceDataFor(m_style.get()); 275 288 if (!sourceData) 276 289 return false; // No source data for the style. … … 313 326 { 314 327 // Precondition: m_parentStyleSheet->ensureParsedDataReady() has been called successfully. 315 RefPtr<CSSRuleSourceData> sourceData = m_parentStyleSheet->ruleSourceDataFor(m_style );328 RefPtr<CSSRuleSourceData> sourceData = m_parentStyleSheet->ruleSourceDataFor(m_style.get()); 316 329 if (!sourceData) 317 330 return false; … … 382 395 disabledProperty = m_disabledProperties.at(disabledIndex); 383 396 384 RefPtr<CSSRuleSourceData> sourceData = (m_parentStyleSheet && m_parentStyleSheet->ensureParsedDataReady()) ? m_parentStyleSheet->ruleSourceDataFor(m_style ) : 0;397 RefPtr<CSSRuleSourceData> sourceData = (m_parentStyleSheet && m_parentStyleSheet->ensureParsedDataReady()) ? m_parentStyleSheet->ruleSourceDataFor(m_style.get()) : 0; 385 398 Vector<CSSPropertySourceData>* sourcePropertyData = sourceData ? &(sourceData->styleSourceData->propertyData) : 0; 386 399 if (sourcePropertyData) { … … 509 522 const SourceRange& range = property.sourceData.range; 510 523 text.replace(range.start, range.end - range.start, newText); 511 success = m_parentStyleSheet->setStyleText(m_style , text);524 success = m_parentStyleSheet->setStyleText(m_style.get(), text); 512 525 return success; 513 526 } … … 564 577 } 565 578 566 InspectorStyleSheet::InspectorStyleSheet(const String& id, CSSStyleSheet* pageStyleSheet, const String& origin, const String& documentURL) 579 PassRefPtr<InspectorStyleSheet> InspectorStyleSheet::create(const String& id, PassRefPtr<CSSStyleSheet> pageStyleSheet, const String& origin, const String& documentURL) 580 { 581 return adoptRef(new InspectorStyleSheet(id, pageStyleSheet, origin, documentURL)); 582 } 583 584 InspectorStyleSheet::InspectorStyleSheet(const String& id, PassRefPtr<CSSStyleSheet> pageStyleSheet, const String& origin, const String& documentURL) 567 585 : m_id(id) 568 586 , m_pageStyleSheet(pageStyleSheet) … … 1093 1111 } 1094 1112 1095 InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle(const String& id, Element* element, const String& origin) 1113 PassRefPtr<InspectorStyleSheetForInlineStyle> InspectorStyleSheetForInlineStyle::create(const String& id, PassRefPtr<Element> element, const String& origin) 1114 { 1115 return adoptRef(new InspectorStyleSheetForInlineStyle(id, element, origin)); 1116 } 1117 1118 InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle(const String& id, PassRefPtr<Element> element, const String& origin) 1096 1119 : InspectorStyleSheet(id, 0, origin, "") 1097 1120 , m_element(element) 1098 1121 , m_ruleSourceData(0) 1099 1122 { 1100 ASSERT( element);1123 ASSERT(m_element); 1101 1124 m_inspectorStyle = InspectorStyle::create(InspectorCSSId(id, 0), inlineStyle(), this); 1102 1125 m_styleText = m_element->isStyledElement() ? m_element->getAttribute("style").string() : String(); -
trunk/WebCore/inspector/InspectorStyleSheet.h
r74634 r74637 122 122 class InspectorStyle : public RefCounted<InspectorStyle> { 123 123 public: 124 static PassRefPtr<InspectorStyle> create(const InspectorCSSId& styleId, CSSStyleDeclaration* style, InspectorStyleSheet* parentStyleSheet) 125 { 126 return adoptRef(new InspectorStyle(styleId, style, parentStyleSheet)); 127 } 128 129 InspectorStyle(const InspectorCSSId& styleId, CSSStyleDeclaration* style, InspectorStyleSheet* parentStyleSheet) 130 : m_styleId(styleId) 131 , m_style(style) 132 , m_parentStyleSheet(parentStyleSheet) 133 { 134 ASSERT(style); 135 } 136 137 CSSStyleDeclaration* cssStyle() const { return m_style; } 124 static PassRefPtr<InspectorStyle> create(const InspectorCSSId& styleId, PassRefPtr<CSSStyleDeclaration> style, InspectorStyleSheet* parentStyleSheet); 125 126 CSSStyleDeclaration* cssStyle() const { return m_style.get(); } 138 127 PassRefPtr<InspectorObject> buildObjectForStyle() const; 139 128 bool hasDisabledProperties() const { return !m_disabledProperties.isEmpty(); } … … 142 131 143 132 private: 133 InspectorStyle(const InspectorCSSId& styleId, PassRefPtr<CSSStyleDeclaration> style, InspectorStyleSheet* parentStyleSheet); 134 144 135 static unsigned disabledIndexByOrdinal(unsigned ordinal, bool canUseSubsequent, Vector<InspectorStyleProperty>& allProperties); 145 136 … … 156 147 157 148 InspectorCSSId m_styleId; 158 CSSStyleDeclaration*m_style;149 RefPtr<CSSStyleDeclaration> m_style; 159 150 InspectorStyleSheet* m_parentStyleSheet; 160 151 Vector<InspectorStyleProperty> m_disabledProperties; … … 164 155 public: 165 156 typedef HashMap<CSSStyleDeclaration*, RefPtr<InspectorStyle> > InspectorStyleMap; 166 static PassRefPtr<InspectorStyleSheet> create(const String& id, CSSStyleSheet* pageStyleSheet, const String& origin, const String& documentURL) 167 { 168 return adoptRef(new InspectorStyleSheet(id, pageStyleSheet, origin, documentURL)); 169 } 170 171 InspectorStyleSheet(const String& id, CSSStyleSheet* pageStyleSheet, const String& origin, const String& documentURL); 157 static PassRefPtr<InspectorStyleSheet> create(const String& id, PassRefPtr<CSSStyleSheet> pageStyleSheet, const String& origin, const String& documentURL); 158 172 159 virtual ~InspectorStyleSheet(); 173 160 174 161 String id() const { return m_id; } 175 162 String finalURL() const; 176 CSSStyleSheet* pageStyleSheet() const { return m_pageStyleSheet ; }163 CSSStyleSheet* pageStyleSheet() const { return m_pageStyleSheet.get(); } 177 164 void reparseStyleSheet(const String&); 178 165 bool setText(const String&); … … 190 177 191 178 protected: 179 InspectorStyleSheet(const String& id, PassRefPtr<CSSStyleSheet> pageStyleSheet, const String& origin, const String& documentURL); 180 192 181 bool canBind() const { return m_origin != "userAgent" && m_origin != "user"; } 193 182 InspectorCSSId ruleOrStyleId(CSSStyleDeclaration* style) const; … … 219 208 220 209 String m_id; 221 CSSStyleSheet*m_pageStyleSheet;210 RefPtr<CSSStyleSheet> m_pageStyleSheet; 222 211 String m_origin; 223 212 String m_documentURL; … … 232 221 class InspectorStyleSheetForInlineStyle : public InspectorStyleSheet { 233 222 public: 234 static PassRefPtr<InspectorStyleSheetForInlineStyle> create(const String& id, Element* element, const String& origin) 235 { 236 return adoptRef(new InspectorStyleSheetForInlineStyle(id, element, origin)); 237 } 238 239 InspectorStyleSheetForInlineStyle(const String& id, Element* element, const String& origin); 223 static PassRefPtr<InspectorStyleSheetForInlineStyle> create(const String& id, PassRefPtr<Element> element, const String& origin); 224 240 225 void didModifyElementAttribute(); 241 226 virtual bool text(String* result) const; … … 243 228 244 229 protected: 230 InspectorStyleSheetForInlineStyle(const String& id, PassRefPtr<Element> element, const String& origin); 231 245 232 virtual Document* ownerDocument() const; 246 233 virtual RefPtr<CSSRuleSourceData> ruleSourceDataFor(CSSStyleDeclaration* style) const { ASSERT_UNUSED(style, style == inlineStyle()); return m_ruleSourceData; } … … 258 245 bool getStyleAttributeRanges(RefPtr<CSSStyleSourceData>* result); 259 246 260 Element*m_element;247 RefPtr<Element> m_element; 261 248 RefPtr<CSSRuleSourceData> m_ruleSourceData; 262 249 RefPtr<InspectorStyle> m_inspectorStyle;
Note: See TracChangeset
for help on using the changeset viewer.