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

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: Fix unused variable 'styleImage' in release 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);
53 if (multiplier == 1.0f) 53 unzoomedDefaultObjectSize.scale(1 / multiplier);
54 return fixedSize; 54 return applyZoom(LayoutSize(m_imageGeneratorValue->fixedSize(layoutObjec t, unzoomedDefaultObjectSize)), multiplier);
55
56 LayoutUnit width(fixedSize.width() * multiplier);
57 LayoutUnit height(fixedSize.height() * multiplier);
58
59 // Don't let images that have a width/height >= 1 shrink below 1 when zo omed.
60 if (fixedSize.width() > LayoutUnit())
61 width = max(LayoutUnit(1), width);
62
63 if (fixedSize.height() > LayoutUnit())
64 height = max(LayoutUnit(1), height);
65
66 return LayoutSize(width, height);
67 } 55 }
68 56
69 return LayoutSize(); 57 return defaultObjectSize;
70 } 58 }
71 59
72 void StyleGeneratedImage::computeIntrinsicDimensions(const LayoutObject* layoutO bject, FloatSize& intrinsicSize, FloatSize& intrinsicRatio) 60 void StyleGeneratedImage::computeIntrinsicDimensions(const LayoutObject* layoutO bject, FloatSize& intrinsicSize, FloatSize& intrinsicRatio)
73 { 61 {
74 // At a zoom level of 1 the image is guaranteed to have an integer size. 62 // At a zoom level of 1 the image is guaranteed to have an integer size.
75 LayoutSize size = imageSize(layoutObject, 1); 63 LayoutSize size = imageSize(layoutObject, 1, LayoutSize());
76 ASSERT(size.fraction().isZero()); 64 ASSERT(size.fraction().isZero());
77 intrinsicSize = intrinsicRatio = FloatSize(size); 65 intrinsicSize = intrinsicRatio = FloatSize(size);
78 } 66 }
79 67
80 void StyleGeneratedImage::addClient(LayoutObject* layoutObject) 68 void StyleGeneratedImage::addClient(LayoutObject* layoutObject)
81 { 69 {
82 m_imageGeneratorValue->addClient(layoutObject, IntSize()); 70 m_imageGeneratorValue->addClient(layoutObject, IntSize());
83 } 71 }
84 72
85 void StyleGeneratedImage::removeClient(LayoutObject* layoutObject) 73 void StyleGeneratedImage::removeClient(LayoutObject* layoutObject)
(...skipping 11 matching lines...) Expand all
97 return m_imageGeneratorValue->knownToBeOpaque(layoutObject); 85 return m_imageGeneratorValue->knownToBeOpaque(layoutObject);
98 } 86 }
99 87
100 DEFINE_TRACE(StyleGeneratedImage) 88 DEFINE_TRACE(StyleGeneratedImage)
101 { 89 {
102 visitor->trace(m_imageGeneratorValue); 90 visitor->trace(m_imageGeneratorValue);
103 StyleImage::trace(visitor); 91 StyleImage::trace(visitor);
104 } 92 }
105 93
106 } // namespace blink 94 } // 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