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

Side by Side Diff: Source/core/css/resolver/ElementStyleResources.cpp

Issue 1164573002: CSSValue Immediates: Change CSSValue to an object instead of a pointer (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase Created 5 years, 4 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) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
4 * Copyright (C) 2013 Google Inc. All rights reserved. 4 * Copyright (C) 2013 Google Inc. All rights 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 19 matching lines...) Expand all
30 #include "core/style/StylePendingImage.h" 30 #include "core/style/StylePendingImage.h"
31 #include "platform/graphics/filters/FilterOperation.h" 31 #include "platform/graphics/filters/FilterOperation.h"
32 32
33 namespace blink { 33 namespace blink {
34 34
35 ElementStyleResources::ElementStyleResources() 35 ElementStyleResources::ElementStyleResources()
36 : m_deviceScaleFactor(1) 36 : m_deviceScaleFactor(1)
37 { 37 {
38 } 38 }
39 39
40 PassRefPtr<StyleImage> ElementStyleResources::styleImage(Document& document, con st TextLinkColors& textLinkColors, Color currentColor, CSSPropertyID property, C SSValue* value) 40 PassRefPtr<StyleImage> ElementStyleResources::styleImage(Document& document, con st TextLinkColors& textLinkColors, Color currentColor, CSSPropertyID property, C SSValue value)
41 { 41 {
42 if (value->isImageValue()) 42 if (value.isImageValue())
43 return cachedOrPendingFromValue(document, property, toCSSImageValue(valu e)); 43 return cachedOrPendingFromValue(document, property, toCSSImageValue(valu e));
44 44
45 if (value->isImageGeneratorValue()) 45 if (value.isImageGeneratorValue())
46 return generatedOrPendingFromValue(property, toCSSImageGeneratorValue(va lue)); 46 return generatedOrPendingFromValue(property, &toCSSImageGeneratorValue(v alue));
47 47
48 if (value->isImageSetValue()) 48 if (value.isImageSetValue())
49 return setOrPendingFromValue(property, toCSSImageSetValue(value)); 49 return setOrPendingFromValue(property, toCSSImageSetValue(value));
50 50
51 if (value->isCursorImageValue()) 51 if (value.isCursorImageValue())
52 return cursorOrPendingFromValue(property, toCSSCursorImageValue(value)); 52 return cursorOrPendingFromValue(property, toCSSCursorImageValue(value));
53 53
54 return nullptr; 54 return nullptr;
55 } 55 }
56 56
57 PassRefPtr<StyleImage> ElementStyleResources::generatedOrPendingFromValue(CSSPro pertyID property, CSSImageGeneratorValue* value) 57 PassRefPtr<StyleImage> ElementStyleResources::generatedOrPendingFromValue(CSSPro pertyID property, CSSImageGeneratorValue* value)
58 { 58 {
59 if (value->isPending()) { 59 if (value->isPending()) {
60 m_pendingImageProperties.set(property, value); 60 m_pendingImageProperties.set(property, value);
61 return StylePendingImage::create(value); 61 return StylePendingImage::create(value);
62 } 62 }
63 return StyleGeneratedImage::create(value); 63 return StyleGeneratedImage::create(value);
64 } 64 }
65 65
66 PassRefPtr<StyleImage> ElementStyleResources::setOrPendingFromValue(CSSPropertyI D property, CSSImageSetValue* value) 66 PassRefPtr<StyleImage> ElementStyleResources::setOrPendingFromValue(CSSPropertyI D property, CSSImageSetValue& value)
67 { 67 {
68 RefPtr<StyleImage> image = value->cachedOrPendingImageSet(m_deviceScaleFacto r); 68 RefPtr<StyleImage> image = value.cachedOrPendingImageSet(m_deviceScaleFactor );
69 if (image && image->isPendingImage()) 69 if (image && image->isPendingImage())
70 m_pendingImageProperties.set(property, value); 70 m_pendingImageProperties.set(property, &value);
71 return image.release(); 71 return image.release();
72 } 72 }
73 73
74 PassRefPtr<StyleImage> ElementStyleResources::cachedOrPendingFromValue(Document& document, CSSPropertyID property, CSSImageValue* value) 74 PassRefPtr<StyleImage> ElementStyleResources::cachedOrPendingFromValue(Document& document, CSSPropertyID property, CSSImageValue& value)
75 { 75 {
76 RefPtr<StyleImage> image = value->cachedOrPendingImage(); 76 RefPtr<StyleImage> image = value.cachedOrPendingImage();
77 if (image) { 77 if (image) {
78 if (image->isPendingImage()) 78 if (image->isPendingImage())
79 m_pendingImageProperties.set(property, value); 79 m_pendingImageProperties.set(property, &value);
80 else 80 else
81 value->restoreCachedResourceIfNeeded(document); 81 value.restoreCachedResourceIfNeeded(document);
82 } 82 }
83 return image.release(); 83 return image.release();
84 } 84 }
85 85
86 PassRefPtr<StyleImage> ElementStyleResources::cursorOrPendingFromValue(CSSProper tyID property, CSSCursorImageValue* value) 86 PassRefPtr<StyleImage> ElementStyleResources::cursorOrPendingFromValue(CSSProper tyID property, CSSCursorImageValue& value)
87 { 87 {
88 RefPtr<StyleImage> image = value->cachedOrPendingImage(m_deviceScaleFactor); 88 RefPtr<StyleImage> image = value.cachedOrPendingImage(m_deviceScaleFactor);
89 if (image && image->isPendingImage()) 89 if (image && image->isPendingImage())
90 m_pendingImageProperties.set(property, value); 90 m_pendingImageProperties.set(property, &value);
91 return image.release(); 91 return image.release();
92 } 92 }
93 93
94 void ElementStyleResources::clearPendingImageProperties() 94 void ElementStyleResources::clearPendingImageProperties()
95 { 95 {
96 m_pendingImageProperties.clear(); 96 m_pendingImageProperties.clear();
97 } 97 }
98 98
99 void ElementStyleResources::clearPendingSVGDocuments() 99 void ElementStyleResources::clearPendingSVGDocuments()
100 { 100 {
101 m_pendingSVGDocuments.clear(); 101 m_pendingSVGDocuments.clear();
102 } 102 }
103 103
104 void ElementStyleResources::addPendingSVGDocument(FilterOperation* filterOperati on, CSSSVGDocumentValue* cssSVGDocumentValue) 104 void ElementStyleResources::addPendingSVGDocument(FilterOperation* filterOperati on, CSSSVGDocumentValue* cssSVGDocumentValue)
105 { 105 {
106 m_pendingSVGDocuments.set(filterOperation, cssSVGDocumentValue); 106 m_pendingSVGDocuments.set(filterOperation, cssSVGDocumentValue);
107 } 107 }
108 108
109 } 109 }
OLDNEW
« no previous file with comments | « Source/core/css/resolver/ElementStyleResources.h ('k') | Source/core/css/resolver/FilterOperationResolver.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698