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

Side by Side Diff: third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp

Issue 1896793002: Rename (updateLayout/updateStyle).*.() to updateStyleAndLayout.*.() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved.
3 * Copyright (C) 2008, 2010 Nokia Corporation and/or its subsidiary(-ies) 3 * Copyright (C) 2008, 2010 Nokia Corporation and/or its subsidiary(-ies)
4 * Copyright (C) 2007 Alp Toker <alp@atoker.com> 4 * Copyright (C) 2007 Alp Toker <alp@atoker.com>
5 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> 5 * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
6 * Copyright (C) 2008 Dirk Schulze <krit@webkit.org> 6 * Copyright (C) 2008 Dirk Schulze <krit@webkit.org>
7 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved. 7 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved.
8 * Copyright (C) 2012, 2013 Intel Corporation. All rights reserved. 8 * Copyright (C) 2012, 2013 Intel Corporation. All rights reserved.
9 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. 9 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved.
10 * 10 *
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 void CanvasRenderingContext2D::scrollPathIntoView(Path2D* path2d) 320 void CanvasRenderingContext2D::scrollPathIntoView(Path2D* path2d)
321 { 321 {
322 scrollPathIntoViewInternal(path2d->path()); 322 scrollPathIntoViewInternal(path2d->path());
323 } 323 }
324 324
325 void CanvasRenderingContext2D::scrollPathIntoViewInternal(const Path& path) 325 void CanvasRenderingContext2D::scrollPathIntoViewInternal(const Path& path)
326 { 326 {
327 if (!state().isTransformInvertible() || path.isEmpty()) 327 if (!state().isTransformInvertible() || path.isEmpty())
328 return; 328 return;
329 329
330 canvas()->document().updateLayoutIgnorePendingStylesheets(); 330 canvas()->document().updateStyleAndLayoutIgnorePendingStylesheets();
331 331
332 LayoutObject* renderer = canvas()->layoutObject(); 332 LayoutObject* renderer = canvas()->layoutObject();
333 LayoutBox* layoutBox = canvas()->layoutBox(); 333 LayoutBox* layoutBox = canvas()->layoutBox();
334 if (!renderer || !layoutBox) 334 if (!renderer || !layoutBox)
335 return; 335 return;
336 336
337 // Apply transformation and get the bounding rect 337 // Apply transformation and get the bounding rect
338 Path transformedPath = path; 338 Path transformedPath = path;
339 transformedPath.transform(state().transform()); 339 transformedPath.transform(state().transform());
340 FloatRect boundingRect = transformedPath.boundingRect(); 340 FloatRect boundingRect = transformedPath.boundingRect();
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
453 453
454 return serializedFont.toString(); 454 return serializedFont.toString();
455 } 455 }
456 456
457 void CanvasRenderingContext2D::setFont(const String& newFont) 457 void CanvasRenderingContext2D::setFont(const String& newFont)
458 { 458 {
459 // The style resolution required for rendering text is not available in fram e-less documents. 459 // The style resolution required for rendering text is not available in fram e-less documents.
460 if (!canvas()->document().frame()) 460 if (!canvas()->document().frame())
461 return; 461 return;
462 462
463 canvas()->document().updateLayoutTreeForNode(canvas()); 463 canvas()->document().updateStyleAndLayoutTreeForNode(canvas());
464 464
465 // The following early exit is dependent on the cache not being empty 465 // The following early exit is dependent on the cache not being empty
466 // because an empty cache may indicate that a style change has occured 466 // because an empty cache may indicate that a style change has occured
467 // which would require that the font be re-resolved. This check has to 467 // which would require that the font be re-resolved. This check has to
468 // come after the layout tree update to flush pending style changes. 468 // come after the layout tree update to flush pending style changes.
469 if (newFont == state().unparsedFont() && state().hasRealizedFont() && m_font sResolvedUsingCurrentStyle.size() > 0) 469 if (newFont == state().unparsedFont() && state().hasRealizedFont() && m_font sResolvedUsingCurrentStyle.size() > 0)
470 return; 470 return;
471 471
472 CanvasFontCache* canvasFontCache = canvas()->document().canvasFontCache(); 472 CanvasFontCache* canvasFontCache = canvas()->document().canvasFontCache();
473 473
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 case CanvasRenderingContext2DState::DirectionLTR: 666 case CanvasRenderingContext2DState::DirectionLTR:
667 return LTR; 667 return LTR;
668 } 668 }
669 ASSERT_NOT_REACHED(); 669 ASSERT_NOT_REACHED();
670 return LTR; 670 return LTR;
671 } 671 }
672 672
673 String CanvasRenderingContext2D::direction() const 673 String CanvasRenderingContext2D::direction() const
674 { 674 {
675 if (state().getDirection() == CanvasRenderingContext2DState::DirectionInheri t) 675 if (state().getDirection() == CanvasRenderingContext2DState::DirectionInheri t)
676 canvas()->document().updateLayoutTreeForNode(canvas()); 676 canvas()->document().updateStyleAndLayoutTreeForNode(canvas());
677 return toTextDirection(state().getDirection(), canvas()) == RTL ? rtl : ltr; 677 return toTextDirection(state().getDirection(), canvas()) == RTL ? rtl : ltr;
678 } 678 }
679 679
680 void CanvasRenderingContext2D::setDirection(const String& directionString) 680 void CanvasRenderingContext2D::setDirection(const String& directionString)
681 { 681 {
682 CanvasRenderingContext2DState::Direction direction; 682 CanvasRenderingContext2DState::Direction direction;
683 if (directionString == inherit) 683 if (directionString == inherit)
684 direction = CanvasRenderingContext2DState::DirectionInherit; 684 direction = CanvasRenderingContext2DState::DirectionInherit;
685 else if (directionString == rtl) 685 else if (directionString == rtl)
686 direction = CanvasRenderingContext2DState::DirectionRTL; 686 direction = CanvasRenderingContext2DState::DirectionRTL;
(...skipping 29 matching lines...) Expand all
716 } 716 }
717 717
718 TextMetrics* CanvasRenderingContext2D::measureText(const String& text) 718 TextMetrics* CanvasRenderingContext2D::measureText(const String& text)
719 { 719 {
720 TextMetrics* metrics = TextMetrics::create(); 720 TextMetrics* metrics = TextMetrics::create();
721 721
722 // The style resolution required for rendering text is not available in fram e-less documents. 722 // The style resolution required for rendering text is not available in fram e-less documents.
723 if (!canvas()->document().frame()) 723 if (!canvas()->document().frame())
724 return metrics; 724 return metrics;
725 725
726 canvas()->document().updateLayoutTreeForNode(canvas()); 726 canvas()->document().updateStyleAndLayoutTreeForNode(canvas());
727 const Font& font = accessFont(); 727 const Font& font = accessFont();
728 728
729 TextDirection direction; 729 TextDirection direction;
730 if (state().getDirection() == CanvasRenderingContext2DState::DirectionInheri t) 730 if (state().getDirection() == CanvasRenderingContext2DState::DirectionInheri t)
731 direction = determineDirectionality(text); 731 direction = determineDirectionality(text);
732 else 732 else
733 direction = toTextDirection(state().getDirection(), canvas()); 733 direction = toTextDirection(state().getDirection(), canvas());
734 TextRun textRun(text, 0, 0, TextRun::AllowTrailingExpansion | TextRun::Forbi dLeadingExpansion, direction, false); 734 TextRun textRun(text, 0, 0, TextRun::AllowTrailingExpansion | TextRun::Forbi dLeadingExpansion, direction, false);
735 textRun.setNormalizeSpace(true); 735 textRun.setNormalizeSpace(true);
736 FloatRect textBounds = font.selectionRectForText(textRun, FloatPoint(), font .getFontDescription().computedSize(), 0, -1, true); 736 FloatRect textBounds = font.selectionRectForText(textRun, FloatPoint(), font .getFontDescription().computedSize(), 0, -1, true);
(...skipping 27 matching lines...) Expand all
764 764
765 void CanvasRenderingContext2D::drawTextInternal(const String& text, double x, do uble y, CanvasRenderingContext2DState::PaintType paintType, double* maxWidth) 765 void CanvasRenderingContext2D::drawTextInternal(const String& text, double x, do uble y, CanvasRenderingContext2DState::PaintType paintType, double* maxWidth)
766 { 766 {
767 // The style resolution required for rendering text is not available in fram e-less documents. 767 // The style resolution required for rendering text is not available in fram e-less documents.
768 if (!canvas()->document().frame()) 768 if (!canvas()->document().frame())
769 return; 769 return;
770 770
771 // accessFont needs the style to be up to date, but updating style can cause script to run, 771 // accessFont needs the style to be up to date, but updating style can cause script to run,
772 // (e.g. due to autofocus) which can free the canvas (set size to 0, for exa mple), so update 772 // (e.g. due to autofocus) which can free the canvas (set size to 0, for exa mple), so update
773 // style before grabbing the drawingCanvas. 773 // style before grabbing the drawingCanvas.
774 canvas()->document().updateLayoutTreeForNode(canvas()); 774 canvas()->document().updateStyleAndLayoutTreeForNode(canvas());
775 775
776 SkCanvas* c = drawingCanvas(); 776 SkCanvas* c = drawingCanvas();
777 if (!c) 777 if (!c)
778 return; 778 return;
779 779
780 if (!std::isfinite(x) || !std::isfinite(y)) 780 if (!std::isfinite(x) || !std::isfinite(y))
781 return; 781 return;
782 if (maxWidth && (!std::isfinite(*maxWidth) || *maxWidth <= 0)) 782 if (maxWidth && (!std::isfinite(*maxWidth) || *maxWidth <= 0))
783 return; 783 return;
784 784
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
968 968
969 SkIRect dirtyRect; 969 SkIRect dirtyRect;
970 if (!computeDirtyRect(path.strokeBoundingRect(strokeData), &dirtyRect)) 970 if (!computeDirtyRect(path.strokeBoundingRect(strokeData), &dirtyRect))
971 return; 971 return;
972 972
973 didDraw(dirtyRect); 973 didDraw(dirtyRect);
974 } 974 }
975 975
976 void CanvasRenderingContext2D::updateElementAccessibility(const Path& path, Elem ent* element) 976 void CanvasRenderingContext2D::updateElementAccessibility(const Path& path, Elem ent* element)
977 { 977 {
978 element->document().updateLayoutIgnorePendingStylesheets(); 978 element->document().updateStyleAndLayoutIgnorePendingStylesheets();
979 AXObjectCache* axObjectCache = element->document().existingAXObjectCache(); 979 AXObjectCache* axObjectCache = element->document().existingAXObjectCache();
980 LayoutBoxModelObject* lbmo = canvas()->layoutBoxModelObject(); 980 LayoutBoxModelObject* lbmo = canvas()->layoutBoxModelObject();
981 LayoutObject* renderer = canvas()->layoutObject(); 981 LayoutObject* renderer = canvas()->layoutObject();
982 if (!axObjectCache || !lbmo || !renderer) 982 if (!axObjectCache || !lbmo || !renderer)
983 return; 983 return;
984 984
985 // Get the transformed path. 985 // Get the transformed path.
986 Path transformedPath = path; 986 Path transformedPath = path;
987 transformedPath.transform(state().transform()); 987 transformedPath.transform(state().transform());
988 988
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
1060 1060
1061 unsigned CanvasRenderingContext2D::hitRegionsCount() const 1061 unsigned CanvasRenderingContext2D::hitRegionsCount() const
1062 { 1062 {
1063 if (m_hitRegionManager) 1063 if (m_hitRegionManager)
1064 return m_hitRegionManager->getHitRegionsCount(); 1064 return m_hitRegionManager->getHitRegionsCount();
1065 1065
1066 return 0; 1066 return 0;
1067 } 1067 }
1068 1068
1069 } // namespace blink 1069 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698