Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(565)

Side by Side Diff: third_party/WebKit/Source/core/css/CSSImageGeneratorValue.cpp

Issue 1782833008: Add paint() function as valid CSS <image> type. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: name->customCSSText Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2008 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
11 * documentation and/or other materials provided with the distribution. 11 * documentation and/or other materials provided with the distribution.
12 * 12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */ 24 */
25 25
26 #include "core/css/CSSImageGeneratorValue.h" 26 #include "core/css/CSSImageGeneratorValue.h"
27 27
28 #include "core/css/CSSCrossfadeValue.h" 28 #include "core/css/CSSCrossfadeValue.h"
29 #include "core/css/CSSGradientValue.h" 29 #include "core/css/CSSGradientValue.h"
30 #include "core/css/CSSPaintValue.h"
30 #include "platform/graphics/Image.h" 31 #include "platform/graphics/Image.h"
31 32
32 namespace blink { 33 namespace blink {
33 34
34 CSSImageGeneratorValue::CSSImageGeneratorValue(ClassType classType) 35 CSSImageGeneratorValue::CSSImageGeneratorValue(ClassType classType)
35 : CSSValue(classType) 36 : CSSValue(classType)
36 { 37 {
37 } 38 }
38 39
39 CSSImageGeneratorValue::~CSSImageGeneratorValue() 40 CSSImageGeneratorValue::~CSSImageGeneratorValue()
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 m_images.add(size, image); 126 m_images.add(size, image);
126 } 127 }
127 128
128 PassRefPtr<Image> CSSImageGeneratorValue::image(const LayoutObject* layoutObject , const IntSize& size) 129 PassRefPtr<Image> CSSImageGeneratorValue::image(const LayoutObject* layoutObject , const IntSize& size)
129 { 130 {
130 switch (getClassType()) { 131 switch (getClassType()) {
131 case CrossfadeClass: 132 case CrossfadeClass:
132 return toCSSCrossfadeValue(this)->image(layoutObject, size); 133 return toCSSCrossfadeValue(this)->image(layoutObject, size);
133 case LinearGradientClass: 134 case LinearGradientClass:
134 return toCSSLinearGradientValue(this)->image(layoutObject, size); 135 return toCSSLinearGradientValue(this)->image(layoutObject, size);
136 case PaintClass:
137 return toCSSPaintValue(this)->image(layoutObject, size);
135 case RadialGradientClass: 138 case RadialGradientClass:
136 return toCSSRadialGradientValue(this)->image(layoutObject, size); 139 return toCSSRadialGradientValue(this)->image(layoutObject, size);
137 default: 140 default:
138 ASSERT_NOT_REACHED(); 141 ASSERT_NOT_REACHED();
139 } 142 }
140 return nullptr; 143 return nullptr;
141 } 144 }
142 145
143 bool CSSImageGeneratorValue::isFixedSize() const 146 bool CSSImageGeneratorValue::isFixedSize() const
144 { 147 {
145 switch (getClassType()) { 148 switch (getClassType()) {
146 case CrossfadeClass: 149 case CrossfadeClass:
147 return toCSSCrossfadeValue(this)->isFixedSize(); 150 return toCSSCrossfadeValue(this)->isFixedSize();
148 case LinearGradientClass: 151 case LinearGradientClass:
149 return toCSSLinearGradientValue(this)->isFixedSize(); 152 return toCSSLinearGradientValue(this)->isFixedSize();
153 case PaintClass:
154 return toCSSPaintValue(this)->isFixedSize();
150 case RadialGradientClass: 155 case RadialGradientClass:
151 return toCSSRadialGradientValue(this)->isFixedSize(); 156 return toCSSRadialGradientValue(this)->isFixedSize();
152 default: 157 default:
153 ASSERT_NOT_REACHED(); 158 ASSERT_NOT_REACHED();
154 } 159 }
155 return false; 160 return false;
156 } 161 }
157 162
158 IntSize CSSImageGeneratorValue::fixedSize(const LayoutObject* layoutObject, cons t FloatSize& defaultObjectSize) 163 IntSize CSSImageGeneratorValue::fixedSize(const LayoutObject* layoutObject, cons t FloatSize& defaultObjectSize)
159 { 164 {
160 switch (getClassType()) { 165 switch (getClassType()) {
161 case CrossfadeClass: 166 case CrossfadeClass:
162 return toCSSCrossfadeValue(this)->fixedSize(layoutObject, defaultObjectS ize); 167 return toCSSCrossfadeValue(this)->fixedSize(layoutObject, defaultObjectS ize);
163 case LinearGradientClass: 168 case LinearGradientClass:
164 return toCSSLinearGradientValue(this)->fixedSize(layoutObject); 169 return toCSSLinearGradientValue(this)->fixedSize(layoutObject);
170 case PaintClass:
171 return toCSSPaintValue(this)->fixedSize(layoutObject);
165 case RadialGradientClass: 172 case RadialGradientClass:
166 return toCSSRadialGradientValue(this)->fixedSize(layoutObject); 173 return toCSSRadialGradientValue(this)->fixedSize(layoutObject);
167 default: 174 default:
168 ASSERT_NOT_REACHED(); 175 ASSERT_NOT_REACHED();
169 } 176 }
170 return IntSize(); 177 return IntSize();
171 } 178 }
172 179
173 bool CSSImageGeneratorValue::isPending() const 180 bool CSSImageGeneratorValue::isPending() const
174 { 181 {
175 switch (getClassType()) { 182 switch (getClassType()) {
176 case CrossfadeClass: 183 case CrossfadeClass:
177 return toCSSCrossfadeValue(this)->isPending(); 184 return toCSSCrossfadeValue(this)->isPending();
178 case LinearGradientClass: 185 case LinearGradientClass:
179 return toCSSLinearGradientValue(this)->isPending(); 186 return toCSSLinearGradientValue(this)->isPending();
187 case PaintClass:
188 return toCSSPaintValue(this)->isPending();
180 case RadialGradientClass: 189 case RadialGradientClass:
181 return toCSSRadialGradientValue(this)->isPending(); 190 return toCSSRadialGradientValue(this)->isPending();
182 default: 191 default:
183 ASSERT_NOT_REACHED(); 192 ASSERT_NOT_REACHED();
184 } 193 }
185 return false; 194 return false;
186 } 195 }
187 196
188 bool CSSImageGeneratorValue::knownToBeOpaque(const LayoutObject* layoutObject) c onst 197 bool CSSImageGeneratorValue::knownToBeOpaque(const LayoutObject* layoutObject) c onst
189 { 198 {
190 switch (getClassType()) { 199 switch (getClassType()) {
191 case CrossfadeClass: 200 case CrossfadeClass:
192 return toCSSCrossfadeValue(this)->knownToBeOpaque(layoutObject); 201 return toCSSCrossfadeValue(this)->knownToBeOpaque(layoutObject);
193 case LinearGradientClass: 202 case LinearGradientClass:
194 return toCSSLinearGradientValue(this)->knownToBeOpaque(layoutObject); 203 return toCSSLinearGradientValue(this)->knownToBeOpaque(layoutObject);
204 case PaintClass:
205 return toCSSPaintValue(this)->knownToBeOpaque(layoutObject);
195 case RadialGradientClass: 206 case RadialGradientClass:
196 return toCSSRadialGradientValue(this)->knownToBeOpaque(layoutObject); 207 return toCSSRadialGradientValue(this)->knownToBeOpaque(layoutObject);
197 default: 208 default:
198 ASSERT_NOT_REACHED(); 209 ASSERT_NOT_REACHED();
199 } 210 }
200 return false; 211 return false;
201 } 212 }
202 213
203 void CSSImageGeneratorValue::loadSubimages(Document* document) 214 void CSSImageGeneratorValue::loadSubimages(Document* document)
204 { 215 {
205 switch (getClassType()) { 216 switch (getClassType()) {
206 case CrossfadeClass: 217 case CrossfadeClass:
207 toCSSCrossfadeValue(this)->loadSubimages(document); 218 toCSSCrossfadeValue(this)->loadSubimages(document);
208 break; 219 break;
209 case LinearGradientClass: 220 case LinearGradientClass:
210 toCSSLinearGradientValue(this)->loadSubimages(document); 221 toCSSLinearGradientValue(this)->loadSubimages(document);
211 break; 222 break;
223 case PaintClass:
224 toCSSPaintValue(this)->loadSubimages(document);
225 break;
212 case RadialGradientClass: 226 case RadialGradientClass:
213 toCSSRadialGradientValue(this)->loadSubimages(document); 227 toCSSRadialGradientValue(this)->loadSubimages(document);
214 break; 228 break;
215 default: 229 default:
216 ASSERT_NOT_REACHED(); 230 ASSERT_NOT_REACHED();
217 } 231 }
218 } 232 }
219 233
220 } // namespace blink 234 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/core.gypi ('k') | third_party/WebKit/Source/core/css/CSSPaintValue.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698