| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2006, 2007 Apple Inc. All rights reserved. | 2 * Copyright (C) 2004, 2006, 2007 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 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 result.append('{'); | 151 result.append('{'); |
| 152 appendUnsignedAsHex(c, result); | 152 appendUnsignedAsHex(c, result); |
| 153 result.append('}'); | 153 result.append('}'); |
| 154 } | 154 } |
| 155 } | 155 } |
| 156 } | 156 } |
| 157 result.append('"'); | 157 result.append('"'); |
| 158 return result.toString(); | 158 return result.toString(); |
| 159 } | 159 } |
| 160 | 160 |
| 161 TextStream& operator<<(TextStream& ts, const Color& c) |
| 162 { |
| 163 return ts << c.nameForRenderTreeAsText(); |
| 164 } |
| 165 |
| 161 void RenderTreeAsText::writeRenderObject(TextStream& ts, const RenderObject& o,
RenderAsTextBehavior behavior) | 166 void RenderTreeAsText::writeRenderObject(TextStream& ts, const RenderObject& o,
RenderAsTextBehavior behavior) |
| 162 { | 167 { |
| 163 ts << o.renderName(); | 168 ts << o.renderName(); |
| 164 | 169 |
| 165 if (behavior & RenderAsTextShowAddresses) | 170 if (behavior & RenderAsTextShowAddresses) |
| 166 ts << " " << static_cast<const void*>(&o); | 171 ts << " " << static_cast<const void*>(&o); |
| 167 | 172 |
| 168 if (o.style() && o.style()->zIndex()) | 173 if (o.style() && o.style()->zIndex()) |
| 169 ts << " zI: " << o.style()->zIndex(); | 174 ts << " zI: " << o.style()->zIndex(); |
| 170 | 175 |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 | 219 |
| 215 ts << " " << r; | 220 ts << " " << r; |
| 216 | 221 |
| 217 if (!(o.isText() && !o.isBR())) { | 222 if (!(o.isText() && !o.isBR())) { |
| 218 if (o.isFileUploadControl()) | 223 if (o.isFileUploadControl()) |
| 219 ts << " " << quoteAndEscapeNonPrintables(toRenderFileUploadControl(&
o)->fileTextValue()); | 224 ts << " " << quoteAndEscapeNonPrintables(toRenderFileUploadControl(&
o)->fileTextValue()); |
| 220 | 225 |
| 221 if (o.parent()) { | 226 if (o.parent()) { |
| 222 Color color = o.resolveColor(CSSPropertyColor); | 227 Color color = o.resolveColor(CSSPropertyColor); |
| 223 if (o.parent()->resolveColor(CSSPropertyColor) != color) | 228 if (o.parent()->resolveColor(CSSPropertyColor) != color) |
| 224 ts << " [color=" << color.nameForRenderTreeAsText() << "]"; | 229 ts << " [color=" << color << "]"; |
| 225 | 230 |
| 226 // Do not dump invalid or transparent backgrounds, since that is the
default. | 231 // Do not dump invalid or transparent backgrounds, since that is the
default. |
| 227 Color backgroundColor = o.resolveColor(CSSPropertyBackgroundColor); | 232 Color backgroundColor = o.resolveColor(CSSPropertyBackgroundColor); |
| 228 if (o.parent()->resolveColor(CSSPropertyBackgroundColor) != backgrou
ndColor | 233 if (o.parent()->resolveColor(CSSPropertyBackgroundColor) != backgrou
ndColor |
| 229 && backgroundColor.rgb()) | 234 && backgroundColor.rgb()) |
| 230 ts << " [bgcolor=" << backgroundColor.nameForRenderTreeAsText()
<< "]"; | 235 ts << " [bgcolor=" << backgroundColor << "]"; |
| 231 | 236 |
| 232 Color textFillColor = o.resolveColor(CSSPropertyWebkitTextFillColor)
; | 237 Color textFillColor = o.resolveColor(CSSPropertyWebkitTextFillColor)
; |
| 233 if (o.parent()->resolveColor(CSSPropertyWebkitTextFillColor) != text
FillColor | 238 if (o.parent()->resolveColor(CSSPropertyWebkitTextFillColor) != text
FillColor |
| 234 && textFillColor != color && textFillColor.rgb()) | 239 && textFillColor != color && textFillColor.rgb()) |
| 235 ts << " [textFillColor=" << textFillColor.nameForRenderTreeAsTex
t() << "]"; | 240 ts << " [textFillColor=" << textFillColor << "]"; |
| 236 | 241 |
| 237 Color textStrokeColor = o.resolveColor(CSSPropertyWebkitTextStrokeCo
lor); | 242 Color textStrokeColor = o.resolveColor(CSSPropertyWebkitTextStrokeCo
lor); |
| 238 if (o.parent()->resolveColor(CSSPropertyWebkitTextStrokeColor) != te
xtStrokeColor | 243 if (o.parent()->resolveColor(CSSPropertyWebkitTextStrokeColor) != te
xtStrokeColor |
| 239 && textStrokeColor != color && textStrokeColor.rgb()) | 244 && textStrokeColor != color && textStrokeColor.rgb()) |
| 240 ts << " [textStrokeColor=" << textStrokeColor.nameForRenderTreeA
sText() << "]"; | 245 ts << " [textStrokeColor=" << textStrokeColor << "]"; |
| 241 | 246 |
| 242 if (o.parent()->style()->textStrokeWidth() != o.style()->textStrokeW
idth() && o.style()->textStrokeWidth() > 0) | 247 if (o.parent()->style()->textStrokeWidth() != o.style()->textStrokeW
idth() && o.style()->textStrokeWidth() > 0) |
| 243 ts << " [textStrokeWidth=" << o.style()->textStrokeWidth() << "]
"; | 248 ts << " [textStrokeWidth=" << o.style()->textStrokeWidth() << "]
"; |
| 244 } | 249 } |
| 245 | 250 |
| 246 if (!o.isBoxModelObject()) | 251 if (!o.isBoxModelObject()) |
| 247 return; | 252 return; |
| 248 | 253 |
| 249 const RenderBoxModelObject& box = toRenderBoxModelObject(o); | 254 const RenderBoxModelObject& box = toRenderBoxModelObject(o); |
| 250 if (box.borderTop() || box.borderRight() || box.borderBottom() || box.bo
rderLeft()) { | 255 if (box.borderTop() || box.borderRight() || box.borderBottom() || box.bo
rderLeft()) { |
| 251 ts << " [border:"; | 256 ts << " [border:"; |
| 252 | 257 |
| 253 BorderValue prevBorder = o.style()->borderTop(); | 258 BorderValue prevBorder = o.style()->borderTop(); |
| 254 if (!box.borderTop()) | 259 if (!box.borderTop()) |
| 255 ts << " none"; | 260 ts << " none"; |
| 256 else { | 261 else { |
| 257 ts << " (" << box.borderTop() << "px "; | 262 ts << " (" << box.borderTop() << "px "; |
| 258 printBorderStyle(ts, o.style()->borderTopStyle()); | 263 printBorderStyle(ts, o.style()->borderTopStyle()); |
| 259 Color col = o.resolveColor(CSSPropertyBorderTopColor); | 264 ts << o.resolveColor(CSSPropertyBorderTopColor) << ")"; |
| 260 ts << col.nameForRenderTreeAsText() << ")"; | |
| 261 } | 265 } |
| 262 | 266 |
| 263 if (o.style()->borderRight() != prevBorder) { | 267 if (o.style()->borderRight() != prevBorder) { |
| 264 prevBorder = o.style()->borderRight(); | 268 prevBorder = o.style()->borderRight(); |
| 265 if (!box.borderRight()) | 269 if (!box.borderRight()) |
| 266 ts << " none"; | 270 ts << " none"; |
| 267 else { | 271 else { |
| 268 ts << " (" << box.borderRight() << "px "; | 272 ts << " (" << box.borderRight() << "px "; |
| 269 printBorderStyle(ts, o.style()->borderRightStyle()); | 273 printBorderStyle(ts, o.style()->borderRightStyle()); |
| 270 Color col = o.resolveColor(CSSPropertyBorderRightColor); | 274 ts << o.resolveColor(CSSPropertyBorderRightColor) << ")"; |
| 271 ts << col.nameForRenderTreeAsText() << ")"; | |
| 272 } | 275 } |
| 273 } | 276 } |
| 274 | 277 |
| 275 if (o.style()->borderBottom() != prevBorder) { | 278 if (o.style()->borderBottom() != prevBorder) { |
| 276 prevBorder = box.style()->borderBottom(); | 279 prevBorder = box.style()->borderBottom(); |
| 277 if (!box.borderBottom()) | 280 if (!box.borderBottom()) |
| 278 ts << " none"; | 281 ts << " none"; |
| 279 else { | 282 else { |
| 280 ts << " (" << box.borderBottom() << "px "; | 283 ts << " (" << box.borderBottom() << "px "; |
| 281 printBorderStyle(ts, o.style()->borderBottomStyle()); | 284 printBorderStyle(ts, o.style()->borderBottomStyle()); |
| 282 Color col = o.resolveColor(CSSPropertyBorderBottomColor); | 285 ts << o.resolveColor(CSSPropertyBorderBottomColor) << ")"; |
| 283 ts << col.nameForRenderTreeAsText() << ")"; | |
| 284 } | 286 } |
| 285 } | 287 } |
| 286 | 288 |
| 287 if (o.style()->borderLeft() != prevBorder) { | 289 if (o.style()->borderLeft() != prevBorder) { |
| 288 prevBorder = o.style()->borderLeft(); | 290 prevBorder = o.style()->borderLeft(); |
| 289 if (!box.borderLeft()) | 291 if (!box.borderLeft()) |
| 290 ts << " none"; | 292 ts << " none"; |
| 291 else { | 293 else { |
| 292 ts << " (" << box.borderLeft() << "px "; | 294 ts << " (" << box.borderLeft() << "px "; |
| 293 printBorderStyle(ts, o.style()->borderLeftStyle()); | 295 printBorderStyle(ts, o.style()->borderLeftStyle()); |
| 294 Color col = o.resolveColor(CSSPropertyBorderLeftColor); | 296 ts << o.resolveColor(CSSPropertyBorderLeftColor) << ")"; |
| 295 ts << col.nameForRenderTreeAsText() << ")"; | |
| 296 } | 297 } |
| 297 } | 298 } |
| 298 | 299 |
| 299 ts << "]"; | 300 ts << "]"; |
| 300 } | 301 } |
| 301 } | 302 } |
| 302 | 303 |
| 303 if (o.isTableCell()) { | 304 if (o.isTableCell()) { |
| 304 const RenderTableCell& c = toRenderTableCell(o); | 305 const RenderTableCell& c = toRenderTableCell(o); |
| 305 ts << " [r=" << c.rowIndex() << " c=" << c.col() << " rs=" << c.rowSpan(
) << " cs=" << c.colSpan() << "]"; | 306 ts << " [r=" << c.rowIndex() << " c=" << c.col() << " rs=" << c.rowSpan(
) << " cs=" << c.colSpan() << "]"; |
| (...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 772 element->document().updateLayout(); | 773 element->document().updateLayout(); |
| 773 | 774 |
| 774 RenderObject* renderer = element->renderer(); | 775 RenderObject* renderer = element->renderer(); |
| 775 if (!renderer || !renderer->isListItem()) | 776 if (!renderer || !renderer->isListItem()) |
| 776 return String(); | 777 return String(); |
| 777 | 778 |
| 778 return toRenderListItem(renderer)->markerText(); | 779 return toRenderListItem(renderer)->markerText(); |
| 779 } | 780 } |
| 780 | 781 |
| 781 } // namespace blink | 782 } // namespace blink |
| OLD | NEW |