Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) | 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) |
| 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All r ights reserved. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012 Apple Inc. All r ights reserved. |
| 4 * Copyright (C) 2011 Research In Motion Limited. All rights reserved. | 4 * Copyright (C) 2011 Research In Motion Limited. All rights reserved. |
| 5 * | 5 * |
| 6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
| 7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
| 8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
| 9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
| 10 * | 10 * |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 118 RefPtr<MutationRecord> m_mutation; | 118 RefPtr<MutationRecord> m_mutation; |
| 119 }; | 119 }; |
| 120 | 120 |
| 121 unsigned StyleAttributeMutationScope::s_scopeCount = 0; | 121 unsigned StyleAttributeMutationScope::s_scopeCount = 0; |
| 122 AbstractPropertySetCSSStyleDeclaration* StyleAttributeMutationScope::s_currentDe cl = 0; | 122 AbstractPropertySetCSSStyleDeclaration* StyleAttributeMutationScope::s_currentDe cl = 0; |
| 123 bool StyleAttributeMutationScope::s_shouldNotifyInspector = false; | 123 bool StyleAttributeMutationScope::s_shouldNotifyInspector = false; |
| 124 bool StyleAttributeMutationScope::s_shouldDeliver = false; | 124 bool StyleAttributeMutationScope::s_shouldDeliver = false; |
| 125 | 125 |
| 126 } // namespace | 126 } // namespace |
| 127 | 127 |
| 128 #if !ENABLE(OILPAN) | |
| 128 void PropertySetCSSStyleDeclaration::ref() | 129 void PropertySetCSSStyleDeclaration::ref() |
| 129 { | 130 { |
| 130 m_propertySet->ref(); | 131 m_propertySet->ref(); |
| 131 } | 132 } |
| 132 | 133 |
| 133 void PropertySetCSSStyleDeclaration::deref() | 134 void PropertySetCSSStyleDeclaration::deref() |
| 134 { | 135 { |
| 135 m_propertySet->deref(); | 136 m_propertySet->deref(); |
| 136 } | 137 } |
| 138 #endif | |
| 139 | |
| 140 void PropertySetCSSStyleDeclaration::trace(Visitor* visitor) | |
| 141 { | |
| 142 visitor->trace(m_propertySet); | |
| 143 AbstractPropertySetCSSStyleDeclaration::trace(visitor); | |
| 144 } | |
| 137 | 145 |
| 138 unsigned AbstractPropertySetCSSStyleDeclaration::length() const | 146 unsigned AbstractPropertySetCSSStyleDeclaration::length() const |
| 139 { | 147 { |
| 140 return propertySet().propertyCount(); | 148 return propertySet().propertyCount(); |
| 141 } | 149 } |
| 142 | 150 |
| 143 String AbstractPropertySetCSSStyleDeclaration::item(unsigned i) const | 151 String AbstractPropertySetCSSStyleDeclaration::item(unsigned i) const |
| 144 { | 152 { |
| 145 if (i >= propertySet().propertyCount()) | 153 if (i >= propertySet().propertyCount()) |
| 146 return ""; | 154 return ""; |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 299 PassRefPtrWillBeRawPtr<MutableStylePropertySet> AbstractPropertySetCSSStyleDecla ration::copyProperties() const | 307 PassRefPtrWillBeRawPtr<MutableStylePropertySet> AbstractPropertySetCSSStyleDecla ration::copyProperties() const |
| 300 { | 308 { |
| 301 return propertySet().mutableCopy(); | 309 return propertySet().mutableCopy(); |
| 302 } | 310 } |
| 303 | 311 |
| 304 bool AbstractPropertySetCSSStyleDeclaration::cssPropertyMatches(CSSPropertyID pr opertyID, const CSSValue* propertyValue) const | 312 bool AbstractPropertySetCSSStyleDeclaration::cssPropertyMatches(CSSPropertyID pr opertyID, const CSSValue* propertyValue) const |
| 305 { | 313 { |
| 306 return propertySet().propertyMatches(propertyID, propertyValue); | 314 return propertySet().propertyMatches(propertyID, propertyValue); |
| 307 } | 315 } |
| 308 | 316 |
| 317 void AbstractPropertySetCSSStyleDeclaration::trace(Visitor* visitor) | |
| 318 { | |
| 319 #if ENABLE(OILPAN) | |
| 320 // We don't support tracing OwnPtr<HashMap<X, Y> > since the hashmaps trace | |
|
haraken
2014/03/20 11:22:38
FIXME: oilpan:
Or you can just drop this comment.
wibling-chromium
2014/03/20 11:59:33
Removed the comment.
| |
| 321 // method expects a DefaultDummyVisitor in non-oilpan mode, but is passed a | |
| 322 // WebCore::Visitor. We could fix this by forward declarding the | |
| 323 // WebCore::Visitor in wtf, but that is not worth it unless this becomes a | |
| 324 // common issue. | |
| 325 visitor->trace(m_cssomCSSValueClones); | |
| 326 #endif | |
| 327 CSSStyleDeclaration::trace(visitor); | |
| 328 } | |
| 329 | |
| 309 StyleRuleCSSStyleDeclaration::StyleRuleCSSStyleDeclaration(MutableStylePropertyS et& propertySetArg, CSSRule* parentRule) | 330 StyleRuleCSSStyleDeclaration::StyleRuleCSSStyleDeclaration(MutableStylePropertyS et& propertySetArg, CSSRule* parentRule) |
| 310 : PropertySetCSSStyleDeclaration(propertySetArg) | 331 : PropertySetCSSStyleDeclaration(propertySetArg) |
| 332 #if !ENABLE(OILPAN) | |
| 311 , m_refCount(1) | 333 , m_refCount(1) |
| 334 #endif | |
| 312 , m_parentRule(parentRule) | 335 , m_parentRule(parentRule) |
| 313 { | 336 { |
| 337 #if !ENABLE(OILPAN) | |
| 314 m_propertySet->ref(); | 338 m_propertySet->ref(); |
| 339 #endif | |
| 315 } | 340 } |
| 316 | 341 |
| 317 StyleRuleCSSStyleDeclaration::~StyleRuleCSSStyleDeclaration() | 342 StyleRuleCSSStyleDeclaration::~StyleRuleCSSStyleDeclaration() |
| 318 { | 343 { |
| 344 #if !ENABLE(OILPAN) | |
| 319 m_propertySet->deref(); | 345 m_propertySet->deref(); |
| 346 #endif | |
| 320 } | 347 } |
| 321 | 348 |
| 349 #if !ENABLE(OILPAN) | |
| 322 void StyleRuleCSSStyleDeclaration::ref() | 350 void StyleRuleCSSStyleDeclaration::ref() |
| 323 { | 351 { |
| 324 ++m_refCount; | 352 ++m_refCount; |
| 325 } | 353 } |
| 326 | 354 |
| 327 void StyleRuleCSSStyleDeclaration::deref() | 355 void StyleRuleCSSStyleDeclaration::deref() |
| 328 { | 356 { |
| 329 ASSERT(m_refCount); | 357 ASSERT(m_refCount); |
| 330 if (!--m_refCount) | 358 if (!--m_refCount) |
| 331 delete this; | 359 delete this; |
| 332 } | 360 } |
| 361 #endif | |
| 333 | 362 |
| 334 void StyleRuleCSSStyleDeclaration::willMutate() | 363 void StyleRuleCSSStyleDeclaration::willMutate() |
| 335 { | 364 { |
| 336 if (m_parentRule && m_parentRule->parentStyleSheet()) | 365 if (m_parentRule && m_parentRule->parentStyleSheet()) |
| 337 m_parentRule->parentStyleSheet()->willMutateRules(); | 366 m_parentRule->parentStyleSheet()->willMutateRules(); |
| 338 } | 367 } |
| 339 | 368 |
| 340 void StyleRuleCSSStyleDeclaration::didMutate(MutationType type) | 369 void StyleRuleCSSStyleDeclaration::didMutate(MutationType type) |
| 341 { | 370 { |
| 342 if (type == PropertyChanged) | 371 if (type == PropertyChanged) |
| 343 m_cssomCSSValueClones.clear(); | 372 m_cssomCSSValueClones.clear(); |
| 344 | 373 |
| 345 // Style sheet mutation needs to be signaled even if the change failed. will MutateRules/didMutateRules must pair. | 374 // Style sheet mutation needs to be signaled even if the change failed. will MutateRules/didMutateRules must pair. |
| 346 if (m_parentRule && m_parentRule->parentStyleSheet()) | 375 if (m_parentRule && m_parentRule->parentStyleSheet()) |
| 347 m_parentRule->parentStyleSheet()->didMutateRules(); | 376 m_parentRule->parentStyleSheet()->didMutateRules(); |
| 348 } | 377 } |
| 349 | 378 |
| 350 CSSStyleSheet* StyleRuleCSSStyleDeclaration::parentStyleSheet() const | 379 CSSStyleSheet* StyleRuleCSSStyleDeclaration::parentStyleSheet() const |
| 351 { | 380 { |
| 352 return m_parentRule ? m_parentRule->parentStyleSheet() : 0; | 381 return m_parentRule ? m_parentRule->parentStyleSheet() : 0; |
| 353 } | 382 } |
| 354 | 383 |
| 355 void StyleRuleCSSStyleDeclaration::reattach(MutableStylePropertySet& propertySet ) | 384 void StyleRuleCSSStyleDeclaration::reattach(MutableStylePropertySet& propertySet ) |
| 356 { | 385 { |
| 386 #if !ENABLE(OILPAN) | |
| 357 m_propertySet->deref(); | 387 m_propertySet->deref(); |
| 388 #endif | |
| 358 m_propertySet = &propertySet; | 389 m_propertySet = &propertySet; |
| 390 #if !ENABLE(OILPAN) | |
| 359 m_propertySet->ref(); | 391 m_propertySet->ref(); |
| 392 #endif | |
| 393 } | |
| 394 | |
| 395 void StyleRuleCSSStyleDeclaration::trace(Visitor* visitor) | |
| 396 { | |
| 397 visitor->trace(m_parentRule); | |
| 398 PropertySetCSSStyleDeclaration::trace(visitor); | |
| 360 } | 399 } |
| 361 | 400 |
| 362 MutableStylePropertySet& InlineCSSStyleDeclaration::propertySet() const | 401 MutableStylePropertySet& InlineCSSStyleDeclaration::propertySet() const |
| 363 { | 402 { |
| 364 return m_parentElement->ensureMutableInlineStyle(); | 403 return m_parentElement->ensureMutableInlineStyle(); |
| 365 } | 404 } |
| 366 | 405 |
| 367 void InlineCSSStyleDeclaration::didMutate(MutationType type) | 406 void InlineCSSStyleDeclaration::didMutate(MutationType type) |
| 368 { | 407 { |
| 369 if (type == NoChanges) | 408 if (type == NoChanges) |
| 370 return; | 409 return; |
| 371 | 410 |
| 372 m_cssomCSSValueClones.clear(); | 411 m_cssomCSSValueClones.clear(); |
| 373 | 412 |
| 374 if (!m_parentElement) | 413 if (!m_parentElement) |
| 375 return; | 414 return; |
| 376 | 415 |
| 377 m_parentElement->clearMutableInlineStyleIfEmpty(); | 416 m_parentElement->clearMutableInlineStyleIfEmpty(); |
| 378 m_parentElement->setNeedsStyleRecalc(LocalStyleChange); | 417 m_parentElement->setNeedsStyleRecalc(LocalStyleChange); |
| 379 m_parentElement->invalidateStyleAttribute(); | 418 m_parentElement->invalidateStyleAttribute(); |
| 380 StyleAttributeMutationScope(this).didInvalidateStyleAttr(); | 419 StyleAttributeMutationScope(this).didInvalidateStyleAttr(); |
| 381 } | 420 } |
| 382 | 421 |
| 383 CSSStyleSheet* InlineCSSStyleDeclaration::parentStyleSheet() const | 422 CSSStyleSheet* InlineCSSStyleDeclaration::parentStyleSheet() const |
| 384 { | 423 { |
| 385 return m_parentElement ? &m_parentElement->document().elementSheet() : 0; | 424 return m_parentElement ? &m_parentElement->document().elementSheet() : 0; |
| 386 } | 425 } |
| 387 | 426 |
| 427 #if !ENABLE(OILPAN) | |
| 388 void InlineCSSStyleDeclaration::ref() | 428 void InlineCSSStyleDeclaration::ref() |
| 389 { | 429 { |
| 390 m_parentElement->ref(); | 430 m_parentElement->ref(); |
| 391 } | 431 } |
| 392 | 432 |
| 393 void InlineCSSStyleDeclaration::deref() | 433 void InlineCSSStyleDeclaration::deref() |
| 394 { | 434 { |
| 395 m_parentElement->deref(); | 435 m_parentElement->deref(); |
| 396 } | 436 } |
| 437 #endif | |
| 438 | |
| 439 void InlineCSSStyleDeclaration::trace(Visitor* visitor) | |
| 440 { | |
| 441 AbstractPropertySetCSSStyleDeclaration::trace(visitor); | |
| 442 } | |
| 397 | 443 |
| 398 } // namespace WebCore | 444 } // namespace WebCore |
| OLD | NEW |