String Color::serialized() const { if (!hasAlpha()) { StringBuilder builder; builder.reserveCapacity(7); builder.append('#'); appendByteAsHex(red(), builder, Lowercase); appendByteAsHex(green(), builder, Lowercase); appendByteAsHex(blue(), builder, Lowercase); return builder.toString(); } StringBuilder result; result.reserveCapacity(28); result.appendLiteral("rgba("); result.appendNumber(red()); result.appendLiteral(", "); result.appendNumber(green()); result.appendLiteral(", "); result.appendNumber(blue()); result.appendLiteral(", "); if (!alpha()) result.append('0'); else { result.append(Decimal::fromDouble(alpha() / 255.0).toString()); } result.append(')'); return result.toString(); }
void CurlCacheEntry::generateBaseFilename(const CString& url) { MD5 md5; md5.addBytes(reinterpret_cast<const uint8_t*>(url.data()), url.length()); Vector<uint8_t, 16> sum; md5.checksum(sum); uint8_t* rawdata = sum.data(); for (unsigned i = 0; i < 16; i++) appendByteAsHex(rawdata[i], m_basename, Lowercase); }
// FIXME: More this into the front-end? // Create human-readable binary representation, like "01:23:45:67:89:AB:CD:EF". static String createReadableStringFromBinary(const unsigned char* value, size_t length) { ASSERT(length > 0); StringBuilder builder; builder.reserveCapacity(length * 3 - 1); for (size_t i = 0; i < length; ++i) { if (i > 0) builder.append(':'); appendByteAsHex(value[i], builder); } return builder.toString(); }
void CurlCacheEntry::generateBaseFilename(const CString& url) { MD5 md5; md5.addBytes(reinterpret_cast<const uint8_t*>(url.data()), url.length()); MD5::Digest sum; md5.checksum(sum); uint8_t* rawdata = sum.data(); for (size_t i = 0; i < MD5::hashSize; i++) appendByteAsHex(rawdata[i], m_basename, Lowercase); }
String Color::serialized() const { if (!hasAlpha()) { StringBuilder builder; builder.reserveCapacity(7); builder.append('#'); appendByteAsHex(red(), builder, Lowercase); appendByteAsHex(green(), builder, Lowercase); appendByteAsHex(blue(), builder, Lowercase); return builder.toString(); } Vector<LChar> result; result.reserveInitialCapacity(28); const char commaSpace[] = ", "; const char rgbaParen[] = "rgba("; result.append(rgbaParen, 5); appendNumber(result, red()); result.append(commaSpace, 2); appendNumber(result, green()); result.append(commaSpace, 2); appendNumber(result, blue()); result.append(commaSpace, 2); if (!alpha()) result.append('0'); else { NumberToLStringBuffer buffer; unsigned length = DecimalNumber(alpha() / 255.0).toStringDecimal(buffer, WTF::NumberToStringBufferLength); result.append(buffer, length); } result.append(')'); return String::adopt(result); }
String encodeForFileName(const String& inputString) { StringBuilder result; StringImpl* stringImpl = inputString.impl(); unsigned length = inputString.length(); for (unsigned i = 0; i < length; ++i) { UChar character = (*stringImpl)[i]; if (shouldEscapeUChar(character)) { result.append('%'); appendByteAsHex(character, result); } else result.append(character); } return result.toString(); }