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

Side by Side Diff: Source/core/css/CSSCrossfadeValue.h

Issue 1306283006: BackgroundImage incorrectly returns empty url() when created on-the-fly (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Ensure getComputedStyle returns absolute URLs Created 5 years, 3 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) 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2011 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 24 matching lines...) Expand all
35 35
36 namespace blink { 36 namespace blink {
37 37
38 class ImageResource; 38 class ImageResource;
39 class CrossfadeSubimageObserverProxy; 39 class CrossfadeSubimageObserverProxy;
40 class LayoutObject; 40 class LayoutObject;
41 41
42 class CSSCrossfadeValue final : public CSSImageGeneratorValue { 42 class CSSCrossfadeValue final : public CSSImageGeneratorValue {
43 friend class CrossfadeSubimageObserverProxy; 43 friend class CrossfadeSubimageObserverProxy;
44 public: 44 public:
45 static PassRefPtrWillBeRawPtr<CSSCrossfadeValue> create(PassRefPtrWillBeRawP tr<CSSValue> fromValue, PassRefPtrWillBeRawPtr<CSSValue> toValue) 45 static PassRefPtrWillBeRawPtr<CSSCrossfadeValue> create(PassRefPtrWillBeRawP tr<CSSValue> fromValue, PassRefPtrWillBeRawPtr<CSSValue> toValue, PassRefPtrWill BeRawPtr<CSSPrimitiveValue> percentageValue = nullptr)
Timothy Loh 2015/09/15 12:20:47 Better to do this change separately and properly (
nainar 2015/09/16 07:16:49 Done.
46 { 46 {
47 return adoptRefWillBeNoop(new CSSCrossfadeValue(fromValue, toValue)); 47 return adoptRefWillBeNoop(new CSSCrossfadeValue(fromValue, toValue, perc entageValue));
48 } 48 }
49 49
50 ~CSSCrossfadeValue(); 50 ~CSSCrossfadeValue();
51 51
52 String customCSSText() const; 52 String customCSSText() const;
53 53
54 PassRefPtr<Image> image(LayoutObject*, const IntSize&); 54 PassRefPtr<Image> image(LayoutObject*, const IntSize&);
55 bool isFixedSize() const { return true; } 55 bool isFixedSize() const { return true; }
56 IntSize fixedSize(const LayoutObject*); 56 IntSize fixedSize(const LayoutObject*);
57 57
58 bool isPending() const; 58 bool isPending() const;
59 bool knownToBeOpaque(const LayoutObject*) const; 59 bool knownToBeOpaque(const LayoutObject*) const;
60 60
61 void loadSubimages(Document*); 61 void loadSubimages(Document*);
62 62
63 void setPercentage(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> percentageValue ) { m_percentageValue = percentageValue; } 63 void setPercentage(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> percentageValue ) { m_percentageValue = percentageValue; }
64 64
65 bool hasFailedOrCanceledSubresources() const; 65 bool hasFailedOrCanceledSubresources() const;
66 66
67 bool equals(const CSSCrossfadeValue&) const; 67 bool equals(const CSSCrossfadeValue&) const;
68 68
69 PassRefPtrWillBeRawPtr<CSSCrossfadeValue> valueWithAbsoluteURL();
70
69 // Promptly remove as a ImageResource client. 71 // Promptly remove as a ImageResource client.
70 EAGERLY_FINALIZE(); 72 EAGERLY_FINALIZE();
71 #if ENABLE(OILPAN) 73 #if ENABLE(OILPAN)
72 DECLARE_EAGER_FINALIZATION_OPERATOR_NEW(); 74 DECLARE_EAGER_FINALIZATION_OPERATOR_NEW();
73 #endif 75 #endif
74 DECLARE_TRACE_AFTER_DISPATCH(); 76 DECLARE_TRACE_AFTER_DISPATCH();
75 77
76 private: 78 private:
77 CSSCrossfadeValue(PassRefPtrWillBeRawPtr<CSSValue> fromValue, PassRefPtrWill BeRawPtr<CSSValue> toValue) 79 CSSCrossfadeValue(PassRefPtrWillBeRawPtr<CSSValue> fromValue, PassRefPtrWill BeRawPtr<CSSValue> toValue, PassRefPtrWillBeRawPtr<CSSPrimitiveValue> percentage Value)
78 : CSSImageGeneratorValue(CrossfadeClass) 80 : CSSImageGeneratorValue(CrossfadeClass)
79 , m_fromValue(fromValue) 81 , m_fromValue(fromValue)
80 , m_toValue(toValue) 82 , m_toValue(toValue)
81 , m_cachedFromImage(nullptr) 83 , m_percentageValue(percentageValue)
82 , m_cachedToImage(nullptr) 84 , m_cachedFromImage(0)
Timothy Loh 2015/09/15 12:20:47 Why the change?
nainar 2015/09/16 07:16:49 Fixed.
85 , m_cachedToImage(0)
83 , m_crossfadeSubimageObserver(this) { } 86 , m_crossfadeSubimageObserver(this) { }
84 87
85 class CrossfadeSubimageObserverProxy final : public ImageResourceClient { 88 class CrossfadeSubimageObserverProxy final : public ImageResourceClient {
86 DISALLOW_ALLOCATION(); 89 DISALLOW_ALLOCATION();
87 public: 90 public:
88 explicit CrossfadeSubimageObserverProxy(CSSCrossfadeValue* ownerValue) 91 explicit CrossfadeSubimageObserverProxy(CSSCrossfadeValue* ownerValue)
89 : m_ownerValue(ownerValue) 92 : m_ownerValue(ownerValue)
90 , m_ready(false) { } 93 , m_ready(false) { }
91 94
92 ~CrossfadeSubimageObserverProxy() override { } 95 ~CrossfadeSubimageObserverProxy() override { }
(...skipping 21 matching lines...) Expand all
114 RefPtr<Image> m_generatedImage; 117 RefPtr<Image> m_generatedImage;
115 118
116 CrossfadeSubimageObserverProxy m_crossfadeSubimageObserver; 119 CrossfadeSubimageObserverProxy m_crossfadeSubimageObserver;
117 }; 120 };
118 121
119 DEFINE_CSS_VALUE_TYPE_CASTS(CSSCrossfadeValue, isCrossfadeValue()); 122 DEFINE_CSS_VALUE_TYPE_CASTS(CSSCrossfadeValue, isCrossfadeValue());
120 123
121 } // namespace blink 124 } // namespace blink
122 125
123 #endif // CSSCrossfadeValue_h 126 #endif // CSSCrossfadeValue_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698