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

Side by Side Diff: Source/core/rendering/InlineTextBox.cpp

Issue 19697011: Change rendering code to use RenderObject::resolveColor (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/rendering/InlineFlowBox.cpp ('k') | Source/core/rendering/RenderBlock.cpp » ('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 * (C) 1999 Lars Knoll (knoll@kde.org) 2 * (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Dirk Mueller (mueller@kde.org) 3 * (C) 2000 Dirk Mueller (mueller@kde.org)
4 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ights reserved. 4 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ights reserved.
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 boxOrigin.moveBy(accumulatedOffset); 385 boxOrigin.moveBy(accumulatedOffset);
386 FloatRect rect(boxOrigin, size()); 386 FloatRect rect(boxOrigin, size());
387 if (m_truncation != cFullTruncation && visibleToHitTestRequest(request) && l ocationInContainer.intersects(rect)) { 387 if (m_truncation != cFullTruncation && visibleToHitTestRequest(request) && l ocationInContainer.intersects(rect)) {
388 renderer()->updateHitTestResult(result, flipForWritingMode(locationInCon tainer.point() - toLayoutSize(accumulatedOffset))); 388 renderer()->updateHitTestResult(result, flipForWritingMode(locationInCon tainer.point() - toLayoutSize(accumulatedOffset)));
389 if (!result.addNodeToRectBasedTestResult(renderer()->node(), request, lo cationInContainer, rect)) 389 if (!result.addNodeToRectBasedTestResult(renderer()->node(), request, lo cationInContainer, rect))
390 return true; 390 return true;
391 } 391 }
392 return false; 392 return false;
393 } 393 }
394 394
395 static void paintTextWithShadows(GraphicsContext* context, const Font& font, con st TextRun& textRun, 395 static void paintTextWithShadows(GraphicsContext* context,
396 const AtomicString& emphasisMark, int emphasisM arkOffset, 396 const RenderObject* renderer, const Font& font, const TextRun& textRun,
397 int startOffset, int endOffset, int truncationP oint, 397 const AtomicString& emphasisMark, int emphasisMarkOffset,
398 const FloatPoint& textOrigin, const FloatRect& boxRect, 398 int startOffset, int endOffset, int truncationPoint,
399 const ShadowData* shadow, bool stroked, bool ho rizontal) 399 const FloatPoint& textOrigin, const FloatRect& boxRect,
400 const ShadowData* shadow, bool stroked, bool horizontal)
400 { 401 {
401 // Text shadows are disabled when printing. http://crbug.com/258321 402 // Text shadows are disabled when printing. http://crbug.com/258321
402 bool hasShadow = shadow && !context->printing(); 403 bool hasShadow = shadow && !context->printing();
403 Color fillColor = context->fillColor(); 404 Color fillColor = context->fillColor();
404 405
405 if (hasShadow) { 406 if (hasShadow) {
406 DrawLooper drawLooper; 407 DrawLooper drawLooper;
407 do { 408 do {
408 int shadowX = horizontal ? shadow->x() : shadow->y(); 409 int shadowX = horizontal ? shadow->x() : shadow->y();
409 int shadowY = horizontal ? shadow->y() : -shadow->x(); 410 int shadowY = horizontal ? shadow->y() : -shadow->x();
410 FloatSize offset(shadowX, shadowY); 411 FloatSize offset(shadowX, shadowY);
411 drawLooper.addShadow(offset, shadow->blur(), shadow->color(), 412 drawLooper.addShadow(offset, shadow->blur(), renderer->resolveColor( shadow->color()),
412 DrawLooper::ShadowRespectsTransforms, DrawLooper::ShadowIgnoresA lpha); 413 DrawLooper::ShadowRespectsTransforms, DrawLooper::ShadowIgnoresA lpha);
413 } while ((shadow = shadow->next())); 414 } while ((shadow = shadow->next()));
414 drawLooper.addUnmodifiedContent(); 415 drawLooper.addUnmodifiedContent();
415 context->setDrawLooper(drawLooper); 416 context->setDrawLooper(drawLooper);
416 } 417 }
417 418
418 TextRunPaintInfo textRunPaintInfo(textRun); 419 TextRunPaintInfo textRunPaintInfo(textRun);
419 textRunPaintInfo.bounds = boxRect; 420 textRunPaintInfo.bounds = boxRect;
420 if (startOffset <= endOffset) { 421 if (startOffset <= endOffset) {
421 textRunPaintInfo.from = startOffset; 422 textRunPaintInfo.from = startOffset;
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 LayoutUnit widthOfVisibleText = toRenderText(renderer())->width(m_st art, m_truncation, textPos(), isFirstLineStyle()); 521 LayoutUnit widthOfVisibleText = toRenderText(renderer())->width(m_st art, m_truncation, textPos(), isFirstLineStyle());
521 LayoutUnit widthOfHiddenText = m_logicalWidth - widthOfVisibleText; 522 LayoutUnit widthOfHiddenText = m_logicalWidth - widthOfVisibleText;
522 // FIXME: The hit testing logic also needs to take this translation into account. 523 // FIXME: The hit testing logic also needs to take this translation into account.
523 LayoutSize truncationOffset(isLeftToRightDirection() ? widthOfHidden Text : -widthOfHiddenText, 0); 524 LayoutSize truncationOffset(isLeftToRightDirection() ? widthOfHidden Text : -widthOfHiddenText, 0);
524 adjustedPaintOffset.move(isHorizontal() ? truncationOffset : truncat ionOffset.transposedSize()); 525 adjustedPaintOffset.move(isHorizontal() ? truncationOffset : truncat ionOffset.transposedSize());
525 } 526 }
526 } 527 }
527 528
528 GraphicsContext* context = paintInfo.context; 529 GraphicsContext* context = paintInfo.context;
529 530
530 RenderStyle* styleToUse = renderer()->style(isFirstLineStyle()); 531 RenderObject* rendererToUse = renderer();
532 RenderStyle* styleToUse = rendererToUse->style(isFirstLineStyle());
531 533
532 adjustedPaintOffset.move(0, styleToUse->isHorizontalWritingMode() ? 0 : -log icalHeight()); 534 adjustedPaintOffset.move(0, styleToUse->isHorizontalWritingMode() ? 0 : -log icalHeight());
533 535
534 FloatPoint boxOrigin = locationIncludingFlipping(); 536 FloatPoint boxOrigin = locationIncludingFlipping();
535 boxOrigin.move(adjustedPaintOffset.x(), adjustedPaintOffset.y()); 537 boxOrigin.move(adjustedPaintOffset.x(), adjustedPaintOffset.y());
536 FloatRect boxRect(boxOrigin, LayoutSize(logicalWidth(), logicalHeight())); 538 FloatRect boxRect(boxOrigin, LayoutSize(logicalWidth(), logicalHeight()));
537 539
538 RenderCombineText* combinedText = styleToUse->hasTextCombine() && textRender er()->isCombineText() && toRenderCombineText(textRenderer())->isCombined() ? toR enderCombineText(textRenderer()) : 0; 540 RenderCombineText* combinedText = styleToUse->hasTextCombine() && textRender er()->isCombineText() && toRenderCombineText(textRenderer())->isCombined() ? toR enderCombineText(textRenderer()) : 0;
539 541
540 bool shouldRotate = !isHorizontal() && !combinedText; 542 bool shouldRotate = !isHorizontal() && !combinedText;
(...skipping 11 matching lines...) Expand all
552 float textStrokeWidth = styleToUse->textStrokeWidth(); 554 float textStrokeWidth = styleToUse->textStrokeWidth();
553 555
554 // Text shadows are disabled when printing. http://crbug.com/258321 556 // Text shadows are disabled when printing. http://crbug.com/258321
555 const ShadowData* textShadow = (context->printing() || paintInfo.forceBlackT ext()) ? 0 : styleToUse->textShadow(); 557 const ShadowData* textShadow = (context->printing() || paintInfo.forceBlackT ext()) ? 0 : styleToUse->textShadow();
556 558
557 if (paintInfo.forceBlackText()) { 559 if (paintInfo.forceBlackText()) {
558 textFillColor = Color::black; 560 textFillColor = Color::black;
559 textStrokeColor = Color::black; 561 textStrokeColor = Color::black;
560 emphasisMarkColor = Color::black; 562 emphasisMarkColor = Color::black;
561 } else { 563 } else {
562 textFillColor = styleToUse->visitedDependentColor(CSSPropertyWebkitTextF illColor); 564 textFillColor = rendererToUse->resolveColor(styleToUse, CSSPropertyWebki tTextFillColor);
563 565
564 bool forceBackgroundToWhite = false; 566 bool forceBackgroundToWhite = false;
565 if (isPrinting) { 567 if (isPrinting) {
566 if (styleToUse->printColorAdjust() == PrintColorAdjustEconomy) 568 if (styleToUse->printColorAdjust() == PrintColorAdjustEconomy)
567 forceBackgroundToWhite = true; 569 forceBackgroundToWhite = true;
568 if (textRenderer()->document()->settings() && textRenderer()->docume nt()->settings()->shouldPrintBackgrounds()) 570 if (textRenderer()->document()->settings() && textRenderer()->docume nt()->settings()->shouldPrintBackgrounds())
569 forceBackgroundToWhite = false; 571 forceBackgroundToWhite = false;
570 } 572 }
571 573
572 // Make the text fill color legible against a white background 574 // Make the text fill color legible against a white background
573 if (forceBackgroundToWhite) 575 if (forceBackgroundToWhite)
574 textFillColor = correctedTextColor(textFillColor, Color::white); 576 textFillColor = correctedTextColor(textFillColor, Color::white);
575 577
576 textStrokeColor = styleToUse->visitedDependentColor(CSSPropertyWebkitTex tStrokeColor); 578 textStrokeColor = rendererToUse->resolveColor(styleToUse, CSSPropertyWeb kitTextStrokeColor);
577 579
578 // Make the text stroke color legible against a white background 580 // Make the text stroke color legible against a white background
579 if (forceBackgroundToWhite) 581 if (forceBackgroundToWhite)
580 textStrokeColor = correctedTextColor(textStrokeColor, Color::white); 582 textStrokeColor = correctedTextColor(textStrokeColor, Color::white);
581 583
582 emphasisMarkColor = styleToUse->visitedDependentColor(CSSPropertyWebkitT extEmphasisColor); 584 emphasisMarkColor = rendererToUse->resolveColor(styleToUse, CSSPropertyW ebkitTextEmphasisColor);
583 585
584 // Make the text stroke color legible against a white background 586 // Make the text stroke color legible against a white background
585 if (forceBackgroundToWhite) 587 if (forceBackgroundToWhite)
586 emphasisMarkColor = correctedTextColor(emphasisMarkColor, Color::whi te); 588 emphasisMarkColor = correctedTextColor(emphasisMarkColor, Color::whi te);
587 } 589 }
588 590
589 bool paintSelectedTextOnly = (paintInfo.phase == PaintPhaseSelection); 591 bool paintSelectedTextOnly = (paintInfo.phase == PaintPhaseSelection);
590 bool paintSelectedTextSeparately = false; 592 bool paintSelectedTextSeparately = false;
591 593
592 Color selectionFillColor = textFillColor; 594 Color selectionFillColor = textFillColor;
(...skipping 26 matching lines...) Expand all
619 selectionShadow = shadow; 621 selectionShadow = shadow;
620 } 622 }
621 623
622 float strokeWidth = pseudoStyle->textStrokeWidth(); 624 float strokeWidth = pseudoStyle->textStrokeWidth();
623 if (strokeWidth != selectionStrokeWidth) { 625 if (strokeWidth != selectionStrokeWidth) {
624 if (!paintSelectedTextOnly) 626 if (!paintSelectedTextOnly)
625 paintSelectedTextSeparately = true; 627 paintSelectedTextSeparately = true;
626 selectionStrokeWidth = strokeWidth; 628 selectionStrokeWidth = strokeWidth;
627 } 629 }
628 630
629 Color stroke = paintInfo.forceBlackText() ? Color::black : pseudoSty le->visitedDependentColor(CSSPropertyWebkitTextStrokeColor); 631 Color stroke = paintInfo.forceBlackText() ? Color::black : rendererT oUse->resolveColor(pseudoStyle, CSSPropertyWebkitTextStrokeColor);
630 if (stroke != selectionStrokeColor) { 632 if (stroke != selectionStrokeColor) {
631 if (!paintSelectedTextOnly) 633 if (!paintSelectedTextOnly)
632 paintSelectedTextSeparately = true; 634 paintSelectedTextSeparately = true;
633 selectionStrokeColor = stroke; 635 selectionStrokeColor = stroke;
634 } 636 }
635 } 637 }
636 } 638 }
637 639
638 // Set our font. 640 // Set our font.
639 const Font& font = styleToUse->font(); 641 const Font& font = styleToUse->font();
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
709 emphasisMarkOffset = emphasisMarkPosition == TextEmphasisPositionOver ? -font.fontMetrics().ascent() - font.emphasisMarkDescent(emphasisMark) : font.fon tMetrics().descent() + font.emphasisMarkAscent(emphasisMark); 711 emphasisMarkOffset = emphasisMarkPosition == TextEmphasisPositionOver ? -font.fontMetrics().ascent() - font.emphasisMarkDescent(emphasisMark) : font.fon tMetrics().descent() + font.emphasisMarkAscent(emphasisMark);
710 712
711 if (!paintSelectedTextOnly) { 713 if (!paintSelectedTextOnly) {
712 // For stroked painting, we have to change the text drawing mode. It's probably dangerous to leave that mutated as a side 714 // For stroked painting, we have to change the text drawing mode. It's probably dangerous to leave that mutated as a side
713 // effect, so only when we know we're stroking, do a save/restore. 715 // effect, so only when we know we're stroking, do a save/restore.
714 GraphicsContextStateSaver stateSaver(*context, textStrokeWidth > 0); 716 GraphicsContextStateSaver stateSaver(*context, textStrokeWidth > 0);
715 717
716 updateGraphicsContext(context, textFillColor, textStrokeColor, textStrok eWidth); 718 updateGraphicsContext(context, textFillColor, textStrokeColor, textStrok eWidth);
717 if (!paintSelectedTextSeparately || ePos <= sPos) { 719 if (!paintSelectedTextSeparately || ePos <= sPos) {
718 // FIXME: Truncate right-to-left text correctly. 720 // FIXME: Truncate right-to-left text correctly.
719 paintTextWithShadows(context, font, textRun, nullAtom, 0, 0, length, length, textOrigin, boxRect, textShadow, textStrokeWidth > 0, isHorizontal()); 721 paintTextWithShadows(context, rendererToUse, font, textRun, nullAtom , 0, 0, length, length, textOrigin, boxRect, textShadow, textStrokeWidth > 0, is Horizontal());
720 } else 722 } else {
721 paintTextWithShadows(context, font, textRun, nullAtom, 0, ePos, sPos , length, textOrigin, boxRect, textShadow, textStrokeWidth > 0, isHorizontal()); 723 paintTextWithShadows(context, rendererToUse, font, textRun, nullAtom , 0, ePos, sPos, length, textOrigin, boxRect, textShadow, textStrokeWidth > 0, i sHorizontal());
724 }
722 725
723 if (!emphasisMark.isEmpty()) { 726 if (!emphasisMark.isEmpty()) {
724 updateGraphicsContext(context, emphasisMarkColor, textStrokeColor, t extStrokeWidth); 727 updateGraphicsContext(context, emphasisMarkColor, textStrokeColor, t extStrokeWidth);
725 728
726 DEFINE_STATIC_LOCAL(TextRun, objectReplacementCharacterTextRun, (&ob jectReplacementCharacter, 1)); 729 DEFINE_STATIC_LOCAL(TextRun, objectReplacementCharacterTextRun, (&ob jectReplacementCharacter, 1));
727 TextRun& emphasisMarkTextRun = combinedText ? objectReplacementChara cterTextRun : textRun; 730 TextRun& emphasisMarkTextRun = combinedText ? objectReplacementChara cterTextRun : textRun;
728 FloatPoint emphasisMarkTextOrigin = combinedText ? FloatPoint(boxOri gin.x() + boxRect.width() / 2, boxOrigin.y() + font.fontMetrics().ascent()) : te xtOrigin; 731 FloatPoint emphasisMarkTextOrigin = combinedText ? FloatPoint(boxOri gin.x() + boxRect.width() / 2, boxOrigin.y() + font.fontMetrics().ascent()) : te xtOrigin;
729 if (combinedText) 732 if (combinedText)
730 context->concatCTM(rotation(boxRect, Clockwise)); 733 context->concatCTM(rotation(boxRect, Clockwise));
731 734
732 if (!paintSelectedTextSeparately || ePos <= sPos) { 735 if (!paintSelectedTextSeparately || ePos <= sPos) {
733 // FIXME: Truncate right-to-left text correctly. 736 // FIXME: Truncate right-to-left text correctly.
734 paintTextWithShadows(context, combinedText ? combinedText->origi nalFont() : font, emphasisMarkTextRun, emphasisMark, emphasisMarkOffset, 0, leng th, length, emphasisMarkTextOrigin, boxRect, textShadow, textStrokeWidth > 0, is Horizontal()); 737 paintTextWithShadows(context, rendererToUse, combinedText ? comb inedText->originalFont() : font, emphasisMarkTextRun, emphasisMark, emphasisMark Offset, 0, length, length, emphasisMarkTextOrigin, boxRect, textShadow, textStro keWidth > 0, isHorizontal());
735 } else 738 } else {
736 paintTextWithShadows(context, combinedText ? combinedText->origi nalFont() : font, emphasisMarkTextRun, emphasisMark, emphasisMarkOffset, ePos, s Pos, length, emphasisMarkTextOrigin, boxRect, textShadow, textStrokeWidth > 0, i sHorizontal()); 739 paintTextWithShadows(context, rendererToUse, combinedText ? comb inedText->originalFont() : font, emphasisMarkTextRun, emphasisMark, emphasisMark Offset, ePos, sPos, length, emphasisMarkTextOrigin, boxRect, textShadow, textStr okeWidth > 0, isHorizontal());
740 }
737 741
738 if (combinedText) 742 if (combinedText)
739 context->concatCTM(rotation(boxRect, Counterclockwise)); 743 context->concatCTM(rotation(boxRect, Counterclockwise));
740 } 744 }
741 } 745 }
742 746
743 if ((paintSelectedTextOnly || paintSelectedTextSeparately) && sPos < ePos) { 747 if ((paintSelectedTextOnly || paintSelectedTextSeparately) && sPos < ePos) {
744 // paint only the text that is selected 748 // paint only the text that is selected
745 GraphicsContextStateSaver stateSaver(*context, selectionStrokeWidth > 0) ; 749 GraphicsContextStateSaver stateSaver(*context, selectionStrokeWidth > 0) ;
746 750
747 updateGraphicsContext(context, selectionFillColor, selectionStrokeColor, selectionStrokeWidth); 751 updateGraphicsContext(context, selectionFillColor, selectionStrokeColor, selectionStrokeWidth);
748 paintTextWithShadows(context, font, textRun, nullAtom, 0, sPos, ePos, le ngth, textOrigin, boxRect, selectionShadow, selectionStrokeWidth > 0, isHorizont al()); 752 paintTextWithShadows(context, rendererToUse, font, textRun, nullAtom, 0, sPos, ePos, length, textOrigin, boxRect, selectionShadow, selectionStrokeWidth > 0, isHorizontal());
749 if (!emphasisMark.isEmpty()) { 753 if (!emphasisMark.isEmpty()) {
750 updateGraphicsContext(context, selectionEmphasisMarkColor, textStrok eColor, textStrokeWidth); 754 updateGraphicsContext(context, selectionEmphasisMarkColor, textStrok eColor, textStrokeWidth);
751 755
752 DEFINE_STATIC_LOCAL(TextRun, objectReplacementCharacterTextRun, (&ob jectReplacementCharacter, 1)); 756 DEFINE_STATIC_LOCAL(TextRun, objectReplacementCharacterTextRun, (&ob jectReplacementCharacter, 1));
753 TextRun& emphasisMarkTextRun = combinedText ? objectReplacementChara cterTextRun : textRun; 757 TextRun& emphasisMarkTextRun = combinedText ? objectReplacementChara cterTextRun : textRun;
754 FloatPoint emphasisMarkTextOrigin = combinedText ? FloatPoint(boxOri gin.x() + boxRect.width() / 2, boxOrigin.y() + font.fontMetrics().ascent()) : te xtOrigin; 758 FloatPoint emphasisMarkTextOrigin = combinedText ? FloatPoint(boxOri gin.x() + boxRect.width() / 2, boxOrigin.y() + font.fontMetrics().ascent()) : te xtOrigin;
755 if (combinedText) 759 if (combinedText)
756 context->concatCTM(rotation(boxRect, Clockwise)); 760 context->concatCTM(rotation(boxRect, Clockwise));
757 761
758 paintTextWithShadows(context, combinedText ? combinedText->originalF ont() : font, emphasisMarkTextRun, emphasisMark, emphasisMarkOffset, sPos, ePos, length, emphasisMarkTextOrigin, boxRect, selectionShadow, selectionStrokeWidth > 0, isHorizontal()); 762 paintTextWithShadows(context, rendererToUse, combinedText ? combined Text->originalFont() : font, emphasisMarkTextRun, emphasisMark, emphasisMarkOffs et, sPos, ePos, length, emphasisMarkTextOrigin, boxRect, selectionShadow, select ionStrokeWidth > 0, isHorizontal());
759 763
760 if (combinedText) 764 if (combinedText)
761 context->concatCTM(rotation(boxRect, Counterclockwise)); 765 context->concatCTM(rotation(boxRect, Counterclockwise));
762 } 766 }
763 } 767 }
764 768
765 // Paint decorations 769 // Paint decorations
766 TextDecoration textDecorations = styleToUse->textDecorationsInEffect(); 770 TextDecoration textDecorations = styleToUse->textDecorationsInEffect();
767 if (textDecorations != TextDecorationNone && paintInfo.phase != PaintPhaseSe lection) { 771 if (textDecorations != TextDecorationNone && paintInfo.phase != PaintPhaseSe lection) {
768 updateGraphicsContext(context, textFillColor, textStrokeColor, textStrok eWidth); 772 updateGraphicsContext(context, textFillColor, textStrokeColor, textStrok eWidth);
(...skipping 788 matching lines...) Expand 10 before | Expand all | Expand 10 after
1557 printedCharacters = fprintf(stderr, "\t%s %p", obj->renderName(), obj); 1561 printedCharacters = fprintf(stderr, "\t%s %p", obj->renderName(), obj);
1558 const int rendererCharacterOffset = 24; 1562 const int rendererCharacterOffset = 24;
1559 for (; printedCharacters < rendererCharacterOffset; printedCharacters++) 1563 for (; printedCharacters < rendererCharacterOffset; printedCharacters++)
1560 fputc(' ', stderr); 1564 fputc(' ', stderr);
1561 fprintf(stderr, "(%d,%d) \"%s\"\n", start(), start() + len(), value.utf8().d ata()); 1565 fprintf(stderr, "(%d,%d) \"%s\"\n", start(), start() + len(), value.utf8().d ata());
1562 } 1566 }
1563 1567
1564 #endif 1568 #endif
1565 1569
1566 } // namespace WebCore 1570 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/rendering/InlineFlowBox.cpp ('k') | Source/core/rendering/RenderBlock.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698