| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2011 Apple 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 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 } | 95 } |
| 96 | 96 |
| 97 static KURL urlForCSSValue(const CSSValue* value) | 97 static KURL urlForCSSValue(const CSSValue* value) |
| 98 { | 98 { |
| 99 if (!value->isImageValue()) | 99 if (!value->isImageValue()) |
| 100 return KURL(); | 100 return KURL(); |
| 101 | 101 |
| 102 return KURL(ParsedURLString, toCSSImageValue(*value).url()); | 102 return KURL(ParsedURLString, toCSSImageValue(*value).url()); |
| 103 } | 103 } |
| 104 | 104 |
| 105 CSSCrossfadeValue::CSSCrossfadeValue(PassRefPtrWillBeRawPtr<CSSValue> fromValue,
PassRefPtrWillBeRawPtr<CSSValue> toValue, PassRefPtrWillBeRawPtr<CSSPrimitiveVa
lue> percentageValue) | 105 CSSCrossfadeValue::CSSCrossfadeValue(RawPtr<CSSValue> fromValue, RawPtr<CSSValue
> toValue, RawPtr<CSSPrimitiveValue> percentageValue) |
| 106 : CSSImageGeneratorValue(CrossfadeClass) | 106 : CSSImageGeneratorValue(CrossfadeClass) |
| 107 , m_fromValue(fromValue) | 107 , m_fromValue(fromValue) |
| 108 , m_toValue(toValue) | 108 , m_toValue(toValue) |
| 109 , m_percentageValue(percentageValue) | 109 , m_percentageValue(percentageValue) |
| 110 , m_cachedFromImage(nullptr) | 110 , m_cachedFromImage(nullptr) |
| 111 , m_cachedToImage(nullptr) | 111 , m_cachedToImage(nullptr) |
| 112 , m_crossfadeSubimageObserver(this) | 112 , m_crossfadeSubimageObserver(this) |
| 113 { | 113 { |
| 114 #if ENABLE(OILPAN) | 114 #if ENABLE(OILPAN) |
| 115 ThreadState::current()->registerPreFinalizer(this); | 115 ThreadState::current()->registerPreFinalizer(this); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 141 result.appendLiteral("-webkit-cross-fade("); | 141 result.appendLiteral("-webkit-cross-fade("); |
| 142 result.append(m_fromValue->cssText()); | 142 result.append(m_fromValue->cssText()); |
| 143 result.appendLiteral(", "); | 143 result.appendLiteral(", "); |
| 144 result.append(m_toValue->cssText()); | 144 result.append(m_toValue->cssText()); |
| 145 result.appendLiteral(", "); | 145 result.appendLiteral(", "); |
| 146 result.append(m_percentageValue->cssText()); | 146 result.append(m_percentageValue->cssText()); |
| 147 result.append(')'); | 147 result.append(')'); |
| 148 return result.toString(); | 148 return result.toString(); |
| 149 } | 149 } |
| 150 | 150 |
| 151 PassRefPtrWillBeRawPtr<CSSCrossfadeValue> CSSCrossfadeValue::valueWithURLsMadeAb
solute() | 151 RawPtr<CSSCrossfadeValue> CSSCrossfadeValue::valueWithURLsMadeAbsolute() |
| 152 { | 152 { |
| 153 RefPtrWillBeRawPtr<CSSValue> fromValue = m_fromValue; | 153 RawPtr<CSSValue> fromValue = m_fromValue; |
| 154 if (m_fromValue->isImageValue()) | 154 if (m_fromValue->isImageValue()) |
| 155 fromValue = toCSSImageValue(*m_fromValue).valueWithURLMadeAbsolute(); | 155 fromValue = toCSSImageValue(*m_fromValue).valueWithURLMadeAbsolute(); |
| 156 RefPtrWillBeRawPtr<CSSValue> toValue = m_toValue; | 156 RawPtr<CSSValue> toValue = m_toValue; |
| 157 if (m_toValue->isImageValue()) | 157 if (m_toValue->isImageValue()) |
| 158 toValue = toCSSImageValue(*m_toValue).valueWithURLMadeAbsolute(); | 158 toValue = toCSSImageValue(*m_toValue).valueWithURLMadeAbsolute(); |
| 159 return CSSCrossfadeValue::create(fromValue.release(), toValue.release(), m_p
ercentageValue); | 159 return CSSCrossfadeValue::create(fromValue.release(), toValue.release(), m_p
ercentageValue); |
| 160 } | 160 } |
| 161 | 161 |
| 162 IntSize CSSCrossfadeValue::fixedSize(const LayoutObject* layoutObject) | 162 IntSize CSSCrossfadeValue::fixedSize(const LayoutObject* layoutObject) |
| 163 { | 163 { |
| 164 Image* fromImage = renderableImageForCSSValue(m_fromValue.get(), layoutObjec
t); | 164 Image* fromImage = renderableImageForCSSValue(m_fromValue.get(), layoutObjec
t); |
| 165 Image* toImage = renderableImageForCSSValue(m_toValue.get(), layoutObject); | 165 Image* toImage = renderableImageForCSSValue(m_toValue.get(), layoutObject); |
| 166 | 166 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 187 return subimageIsPending(m_fromValue.get()) || subimageIsPending(m_toValue.g
et()); | 187 return subimageIsPending(m_fromValue.get()) || subimageIsPending(m_toValue.g
et()); |
| 188 } | 188 } |
| 189 | 189 |
| 190 bool CSSCrossfadeValue::knownToBeOpaque(const LayoutObject* layoutObject) const | 190 bool CSSCrossfadeValue::knownToBeOpaque(const LayoutObject* layoutObject) const |
| 191 { | 191 { |
| 192 return subimageKnownToBeOpaque(m_fromValue.get(), layoutObject) && subimageK
nownToBeOpaque(m_toValue.get(), layoutObject); | 192 return subimageKnownToBeOpaque(m_fromValue.get(), layoutObject) && subimageK
nownToBeOpaque(m_toValue.get(), layoutObject); |
| 193 } | 193 } |
| 194 | 194 |
| 195 void CSSCrossfadeValue::loadSubimages(Document* document) | 195 void CSSCrossfadeValue::loadSubimages(Document* document) |
| 196 { | 196 { |
| 197 RefPtrWillBeRawPtr<ImageResource> oldCachedFromImage = m_cachedFromImage; | 197 RawPtr<ImageResource> oldCachedFromImage = m_cachedFromImage; |
| 198 RefPtrWillBeRawPtr<ImageResource> oldCachedToImage = m_cachedToImage; | 198 RawPtr<ImageResource> oldCachedToImage = m_cachedToImage; |
| 199 | 199 |
| 200 m_cachedFromImage = cachedImageForCSSValue(m_fromValue.get(), document); | 200 m_cachedFromImage = cachedImageForCSSValue(m_fromValue.get(), document); |
| 201 m_cachedToImage = cachedImageForCSSValue(m_toValue.get(), document); | 201 m_cachedToImage = cachedImageForCSSValue(m_toValue.get(), document); |
| 202 | 202 |
| 203 if (m_cachedFromImage != oldCachedFromImage) { | 203 if (m_cachedFromImage != oldCachedFromImage) { |
| 204 if (oldCachedFromImage) | 204 if (oldCachedFromImage) |
| 205 oldCachedFromImage->removeClient(&m_crossfadeSubimageObserver); | 205 oldCachedFromImage->removeClient(&m_crossfadeSubimageObserver); |
| 206 if (m_cachedFromImage) | 206 if (m_cachedFromImage) |
| 207 m_cachedFromImage->addClient(&m_crossfadeSubimageObserver); | 207 m_cachedFromImage->addClient(&m_crossfadeSubimageObserver); |
| 208 } | 208 } |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 277 visitor->trace(m_fromValue); | 277 visitor->trace(m_fromValue); |
| 278 visitor->trace(m_toValue); | 278 visitor->trace(m_toValue); |
| 279 visitor->trace(m_percentageValue); | 279 visitor->trace(m_percentageValue); |
| 280 visitor->trace(m_cachedFromImage); | 280 visitor->trace(m_cachedFromImage); |
| 281 visitor->trace(m_cachedToImage); | 281 visitor->trace(m_cachedToImage); |
| 282 visitor->trace(m_crossfadeSubimageObserver); | 282 visitor->trace(m_crossfadeSubimageObserver); |
| 283 CSSImageGeneratorValue::traceAfterDispatch(visitor); | 283 CSSImageGeneratorValue::traceAfterDispatch(visitor); |
| 284 } | 284 } |
| 285 | 285 |
| 286 } // namespace blink | 286 } // namespace blink |
| OLD | NEW |