void CSSImageSetValue::fillImageSet() { size_t length = this->length(); size_t i = 0; while (i < length) { CSSImageValue* imageValue = toCSSImageValue(item(i)); String imageURL = imageValue->url(); ++i; ASSERT_WITH_SECURITY_IMPLICATION(i < length); CSSValue* scaleFactorValue = item(i); float scaleFactor = toCSSPrimitiveValue(scaleFactorValue)->getFloatValue(); ImageWithScale image; image.imageURL = imageURL; image.referrer = SecurityPolicy::generateReferrer(imageValue->referrer().referrerPolicy, KURL(ParsedURLString, imageURL), imageValue->referrer().referrer); image.scaleFactor = scaleFactor; m_imagesInSet.append(image); ++i; } // Sort the images so that they are stored in order from lowest resolution to highest. std::sort(m_imagesInSet.begin(), m_imagesInSet.end(), CSSImageSetValue::compareByScaleFactor); }