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

Side by Side Diff: third_party/WebKit/Source/core/style/StyleGeneratedImage.cpp

Issue 1756763004: Merge image sizing algorithms (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Break out common code to StyleImage and fold constant into call Created 4 years, 9 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) 2000 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Antti Koivisto (koivisto@kde.org) 3 * (C) 2000 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. 5 * Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 28 matching lines...) Expand all
39 PassRefPtrWillBeRawPtr<CSSValue> StyleGeneratedImage::cssValue() const 39 PassRefPtrWillBeRawPtr<CSSValue> StyleGeneratedImage::cssValue() const
40 { 40 {
41 return m_imageGeneratorValue.get(); 41 return m_imageGeneratorValue.get();
42 } 42 }
43 43
44 PassRefPtrWillBeRawPtr<CSSValue> StyleGeneratedImage::computedCSSValue() const 44 PassRefPtrWillBeRawPtr<CSSValue> StyleGeneratedImage::computedCSSValue() const
45 { 45 {
46 return m_imageGeneratorValue->valueWithURLsMadeAbsolute(); 46 return m_imageGeneratorValue->valueWithURLsMadeAbsolute();
47 } 47 }
48 48
49 LayoutSize StyleGeneratedImage::imageSize(const LayoutObject* layoutObject, floa t multiplier) const 49 LayoutSize StyleGeneratedImage::imageSize(const LayoutObject* layoutObject, floa t multiplier, const LayoutSize& defaultObjectSize) const
50 { 50 {
51 if (m_fixedSize) { 51 if (m_fixedSize) {
52 LayoutSize fixedSize(m_imageGeneratorValue->fixedSize(layoutObject)); 52 FloatSize unzoomedDefaultObjectSize(defaultObjectSize);
fs 2016/03/04 09:00:56 (Strange as it may sound/feel, but this looks like
davve 2016/03/04 13:02:56 I'm not sure what you refer to by 'this' here but
fs 2016/03/04 13:06:56 Yes, that was the 'this' I was referring too ("thi
53 unzoomedDefaultObjectSize.scale(1 / multiplier);
54 LayoutSize fixedSize(m_imageGeneratorValue->fixedSize(layoutObject, unzo omedDefaultObjectSize));
53 if (multiplier == 1.0f) 55 if (multiplier == 1.0f)
54 return fixedSize; 56 return fixedSize;
55 57
56 LayoutUnit width(fixedSize.width() * multiplier); 58 LayoutUnit width(fixedSize.width() * multiplier);
57 LayoutUnit height(fixedSize.height() * multiplier); 59 LayoutUnit height(fixedSize.height() * multiplier);
58 60
59 // Don't let images that have a width/height >= 1 shrink below 1 when zo omed. 61 // Don't let images that have a width/height >= 1 shrink below 1 when zo omed.
60 if (fixedSize.width() > LayoutUnit()) 62 if (fixedSize.width() > LayoutUnit())
61 width = max(LayoutUnit(1), width); 63 width = max(LayoutUnit(1), width);
62 64
63 if (fixedSize.height() > LayoutUnit()) 65 if (fixedSize.height() > LayoutUnit())
64 height = max(LayoutUnit(1), height); 66 height = max(LayoutUnit(1), height);
65 67
66 return LayoutSize(width, height); 68 return LayoutSize(width, height);
67 } 69 }
68 70
69 return LayoutSize(); 71 return defaultObjectSize;
70 } 72 }
71 73
72 void StyleGeneratedImage::computeIntrinsicDimensions(const LayoutObject* layoutO bject, FloatSize& intrinsicSize, FloatSize& intrinsicRatio) 74 void StyleGeneratedImage::computeIntrinsicDimensions(const LayoutObject* layoutO bject, FloatSize& intrinsicSize, FloatSize& intrinsicRatio)
73 { 75 {
74 // At a zoom level of 1 the image is guaranteed to have an integer size. 76 // At a zoom level of 1 the image is guaranteed to have an integer size.
75 LayoutSize size = imageSize(layoutObject, 1); 77 LayoutSize size = imageSize(layoutObject, 1, LayoutSize());
76 ASSERT(size.fraction().isZero()); 78 ASSERT(size.fraction().isZero());
77 intrinsicSize = intrinsicRatio = FloatSize(size); 79 intrinsicSize = intrinsicRatio = FloatSize(size);
78 } 80 }
79 81
80 void StyleGeneratedImage::addClient(LayoutObject* layoutObject) 82 void StyleGeneratedImage::addClient(LayoutObject* layoutObject)
81 { 83 {
82 m_imageGeneratorValue->addClient(layoutObject, IntSize()); 84 m_imageGeneratorValue->addClient(layoutObject, IntSize());
83 } 85 }
84 86
85 void StyleGeneratedImage::removeClient(LayoutObject* layoutObject) 87 void StyleGeneratedImage::removeClient(LayoutObject* layoutObject)
(...skipping 11 matching lines...) Expand all
97 return m_imageGeneratorValue->knownToBeOpaque(layoutObject); 99 return m_imageGeneratorValue->knownToBeOpaque(layoutObject);
98 } 100 }
99 101
100 DEFINE_TRACE(StyleGeneratedImage) 102 DEFINE_TRACE(StyleGeneratedImage)
101 { 103 {
102 visitor->trace(m_imageGeneratorValue); 104 visitor->trace(m_imageGeneratorValue);
103 StyleImage::trace(visitor); 105 StyleImage::trace(visitor);
104 } 106 }
105 107
106 } // namespace blink 108 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/style/StyleGeneratedImage.h ('k') | third_party/WebKit/Source/core/style/StyleImage.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698