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

Side by Side Diff: Source/core/css/CSSImageSetValue.cpp

Issue 1164573002: CSSValue Immediates: Change CSSValue to an object instead of a pointer (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase Created 5 years, 4 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
« no previous file with comments | « Source/core/css/CSSImageGeneratorValue.cpp ('k') | Source/core/css/CSSImageValue.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2012 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 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 { 53 {
54 if (m_imageSet && m_imageSet->isImageResourceSet()) 54 if (m_imageSet && m_imageSet->isImageResourceSet())
55 toStyleFetchedImageSet(m_imageSet)->clearImageSetValue(); 55 toStyleFetchedImageSet(m_imageSet)->clearImageSetValue();
56 } 56 }
57 57
58 void CSSImageSetValue::fillImageSet() 58 void CSSImageSetValue::fillImageSet()
59 { 59 {
60 size_t length = this->length(); 60 size_t length = this->length();
61 size_t i = 0; 61 size_t i = 0;
62 while (i < length) { 62 while (i < length) {
63 CSSImageValue* imageValue = toCSSImageValue(item(i)); 63 CSSImageValue& imageValue = toCSSImageValue(item(i));
64 String imageURL = imageValue->url(); 64 String imageURL = imageValue.url();
65 65
66 ++i; 66 ++i;
67 ASSERT_WITH_SECURITY_IMPLICATION(i < length); 67 ASSERT_WITH_SECURITY_IMPLICATION(i < length);
68 CSSValue* scaleFactorValue = item(i); 68 CSSValue scaleFactorValue = item(i);
69 float scaleFactor = toCSSPrimitiveValue(scaleFactorValue)->getFloatValue (); 69 float scaleFactor = toCSSPrimitiveValue(scaleFactorValue).getFloatValue( );
70 70
71 ImageWithScale image; 71 ImageWithScale image;
72 image.imageURL = imageURL; 72 image.imageURL = imageURL;
73 image.referrer = SecurityPolicy::generateReferrer(imageValue->referrer() .referrerPolicy, KURL(ParsedURLString, imageURL), imageValue->referrer().referre r); 73 image.referrer = SecurityPolicy::generateReferrer(imageValue.referrer(). referrerPolicy, KURL(ParsedURLString, imageURL), imageValue.referrer().referrer) ;
74 image.scaleFactor = scaleFactor; 74 image.scaleFactor = scaleFactor;
75 m_imagesInSet.append(image); 75 m_imagesInSet.append(image);
76 ++i; 76 ++i;
77 } 77 }
78 78
79 // Sort the images so that they are stored in order from lowest resolution t o highest. 79 // Sort the images so that they are stored in order from lowest resolution t o highest.
80 std::sort(m_imagesInSet.begin(), m_imagesInSet.end(), CSSImageSetValue::comp areByScaleFactor); 80 std::sort(m_imagesInSet.begin(), m_imagesInSet.end(), CSSImageSetValue::comp areByScaleFactor);
81 } 81 }
82 82
83 CSSImageSetValue::ImageWithScale CSSImageSetValue::bestImageForScaleFactor() 83 CSSImageSetValue::ImageWithScale CSSImageSetValue::bestImageForScaleFactor()
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 { 145 {
146 StringBuilder result; 146 StringBuilder result;
147 result.append("-webkit-image-set("); 147 result.append("-webkit-image-set(");
148 148
149 size_t length = this->length(); 149 size_t length = this->length();
150 size_t i = 0; 150 size_t i = 0;
151 while (i < length) { 151 while (i < length) {
152 if (i > 0) 152 if (i > 0)
153 result.appendLiteral(", "); 153 result.appendLiteral(", ");
154 154
155 const CSSValue* imageValue = item(i); 155 const CSSValue imageValue = item(i);
156 result.append(imageValue->cssText()); 156 result.append(imageValue.cssText());
157 result.append(' '); 157 result.append(' ');
158 158
159 ++i; 159 ++i;
160 ASSERT_WITH_SECURITY_IMPLICATION(i < length); 160 ASSERT_WITH_SECURITY_IMPLICATION(i < length);
161 const CSSValue* scaleFactorValue = item(i); 161 const CSSValue scaleFactorValue = item(i);
162 result.append(scaleFactorValue->cssText()); 162 result.append(scaleFactorValue.cssText());
163 // FIXME: Eventually the scale factor should contain it's own unit http: //wkb.ug/100120. 163 // FIXME: Eventually the scale factor should contain it's own unit http: //wkb.ug/100120.
164 // For now 'x' is hard-coded in the parser, so we hard-code it here too. 164 // For now 'x' is hard-coded in the parser, so we hard-code it here too.
165 result.append('x'); 165 result.append('x');
166 166
167 ++i; 167 ++i;
168 } 168 }
169 169
170 result.append(')'); 170 result.append(')');
171 return result.toString(); 171 return result.toString();
172 } 172 }
173 173
174 bool CSSImageSetValue::hasFailedOrCanceledSubresources() const 174 bool CSSImageSetValue::hasFailedOrCanceledSubresources() const
175 { 175 {
176 if (!m_imageSet || !m_imageSet->isImageResourceSet()) 176 if (!m_imageSet || !m_imageSet->isImageResourceSet())
177 return false; 177 return false;
178 if (Resource* cachedResource = toStyleFetchedImageSet(m_imageSet)->cachedIma ge()) 178 if (Resource* cachedResource = toStyleFetchedImageSet(m_imageSet)->cachedIma ge())
179 return cachedResource->loadFailedOrCanceled(); 179 return cachedResource->loadFailedOrCanceled();
180 return true; 180 return true;
181 } 181 }
182 182
183 } // namespace blink 183 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/css/CSSImageGeneratorValue.cpp ('k') | Source/core/css/CSSImageValue.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698