| 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(RawPtr<CSSValue> fromValue, RawPtr<CSSValue
> toValue, RawPtr<CSSPrimitiveValue> percentageValue) | 105 CSSCrossfadeValue::CSSCrossfadeValue(CSSValue* fromValue, CSSValue* toValue, CSS
PrimitiveValue* 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 RawPtr<CSSCrossfadeValue> CSSCrossfadeValue::valueWithURLsMadeAbsolute() | 151 CSSCrossfadeValue* CSSCrossfadeValue::valueWithURLsMadeAbsolute() |
| 152 { | 152 { |
| 153 RawPtr<CSSValue> fromValue = m_fromValue; | 153 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 RawPtr<CSSValue> toValue = m_toValue; | 156 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, toValue, m_percentageValue); |
| 160 } | 160 } |
| 161 | 161 |
| 162 IntSize CSSCrossfadeValue::fixedSize(const LayoutObject& layoutObject, const Flo
atSize& defaultObjectSize) | 162 IntSize CSSCrossfadeValue::fixedSize(const LayoutObject& layoutObject, const Flo
atSize& defaultObjectSize) |
| 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 |
| 167 if (!fromImage || !toImage) | 167 if (!fromImage || !toImage) |
| 168 return IntSize(); | 168 return IntSize(); |
| 169 | 169 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 193 return subimageIsPending(m_fromValue.get()) || subimageIsPending(m_toValue.g
et()); | 193 return subimageIsPending(m_fromValue.get()) || subimageIsPending(m_toValue.g
et()); |
| 194 } | 194 } |
| 195 | 195 |
| 196 bool CSSCrossfadeValue::knownToBeOpaque(const LayoutObject& layoutObject) const | 196 bool CSSCrossfadeValue::knownToBeOpaque(const LayoutObject& layoutObject) const |
| 197 { | 197 { |
| 198 return subimageKnownToBeOpaque(m_fromValue.get(), layoutObject) && subimageK
nownToBeOpaque(m_toValue.get(), layoutObject); | 198 return subimageKnownToBeOpaque(m_fromValue.get(), layoutObject) && subimageK
nownToBeOpaque(m_toValue.get(), layoutObject); |
| 199 } | 199 } |
| 200 | 200 |
| 201 void CSSCrossfadeValue::loadSubimages(Document* document) | 201 void CSSCrossfadeValue::loadSubimages(Document* document) |
| 202 { | 202 { |
| 203 RawPtr<ImageResource> oldCachedFromImage = m_cachedFromImage; | 203 ImageResource* oldCachedFromImage = m_cachedFromImage; |
| 204 RawPtr<ImageResource> oldCachedToImage = m_cachedToImage; | 204 ImageResource* oldCachedToImage = m_cachedToImage; |
| 205 | 205 |
| 206 m_cachedFromImage = cachedImageForCSSValue(m_fromValue.get(), document); | 206 m_cachedFromImage = cachedImageForCSSValue(m_fromValue.get(), document); |
| 207 m_cachedToImage = cachedImageForCSSValue(m_toValue.get(), document); | 207 m_cachedToImage = cachedImageForCSSValue(m_toValue.get(), document); |
| 208 | 208 |
| 209 if (m_cachedFromImage != oldCachedFromImage) { | 209 if (m_cachedFromImage != oldCachedFromImage) { |
| 210 if (oldCachedFromImage) | 210 if (oldCachedFromImage) |
| 211 oldCachedFromImage->removeObserver(&m_crossfadeSubimageObserver); | 211 oldCachedFromImage->removeObserver(&m_crossfadeSubimageObserver); |
| 212 if (m_cachedFromImage) | 212 if (m_cachedFromImage) |
| 213 m_cachedFromImage->addObserver(&m_crossfadeSubimageObserver); | 213 m_cachedFromImage->addObserver(&m_crossfadeSubimageObserver); |
| 214 } | 214 } |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 281 visitor->trace(m_fromValue); | 281 visitor->trace(m_fromValue); |
| 282 visitor->trace(m_toValue); | 282 visitor->trace(m_toValue); |
| 283 visitor->trace(m_percentageValue); | 283 visitor->trace(m_percentageValue); |
| 284 visitor->trace(m_cachedFromImage); | 284 visitor->trace(m_cachedFromImage); |
| 285 visitor->trace(m_cachedToImage); | 285 visitor->trace(m_cachedToImage); |
| 286 visitor->trace(m_crossfadeSubimageObserver); | 286 visitor->trace(m_crossfadeSubimageObserver); |
| 287 CSSImageGeneratorValue::traceAfterDispatch(visitor); | 287 CSSImageGeneratorValue::traceAfterDispatch(visitor); |
| 288 } | 288 } |
| 289 | 289 |
| 290 } // namespace blink | 290 } // namespace blink |
| OLD | NEW |