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

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

Issue 1368613002: Replace RawPtr with RefPtr on StylePendingImage (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix image set caching logic Created 5 years, 2 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 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 PassRefPtrWillBeRawPtr<StyleImage> ElementStyleResources::generatedOrPendingFrom Value(CSSPropertyID property, CSSImageGeneratorValue* value) 57 PassRefPtrWillBeRawPtr<StyleImage> ElementStyleResources::generatedOrPendingFrom Value(CSSPropertyID property, CSSImageGeneratorValue* value)
58 { 58 {
59 if (value->isPending()) { 59 if (value->isPending()) {
60 m_pendingImageProperties.set(property, value); 60 m_pendingImageProperties.add(property);
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 PassRefPtrWillBeRawPtr<StyleImage> ElementStyleResources::setOrPendingFromValue( CSSPropertyID property, CSSImageSetValue* value) 66 PassRefPtrWillBeRawPtr<StyleImage> ElementStyleResources::setOrPendingFromValue( CSSPropertyID property, CSSImageSetValue* value)
67 { 67 {
68 RefPtrWillBeRawPtr<StyleImage> image = value->cachedOrPendingImageSet(m_devi ceScaleFactor); 68 if (value->isCachePending(m_deviceScaleFactor)) {
69 if (image && image->isPendingImage()) 69 m_pendingImageProperties.add(property);
70 m_pendingImageProperties.set(property, value); 70 return StylePendingImage::create(value);
71 return image.release(); 71 }
72 return value->cachedImageSet(m_deviceScaleFactor);
72 } 73 }
73 74
74 PassRefPtrWillBeRawPtr<StyleImage> ElementStyleResources::cachedOrPendingFromVal ue(Document& document, CSSPropertyID property, CSSImageValue* value) 75 PassRefPtrWillBeRawPtr<StyleImage> ElementStyleResources::cachedOrPendingFromVal ue(Document& document, CSSPropertyID property, CSSImageValue* value)
75 { 76 {
76 RefPtrWillBeRawPtr<StyleImage> image = value->cachedOrPendingImage(); 77 if (value->isCachePending()) {
77 if (image) { 78 m_pendingImageProperties.add(property);
78 if (image->isPendingImage()) 79 return StylePendingImage::create(value);
79 m_pendingImageProperties.set(property, value);
80 else
81 value->restoreCachedResourceIfNeeded(document);
82 } 80 }
83 return image.release(); 81 value->restoreCachedResourceIfNeeded(document);
82 return value->cachedImage();
84 } 83 }
85 84
86 PassRefPtrWillBeRawPtr<StyleImage> ElementStyleResources::cursorOrPendingFromVal ue(CSSPropertyID property, CSSCursorImageValue* value) 85 PassRefPtrWillBeRawPtr<StyleImage> ElementStyleResources::cursorOrPendingFromVal ue(CSSPropertyID property, CSSCursorImageValue* value)
87 { 86 {
88 RefPtrWillBeRawPtr<StyleImage> image = value->cachedOrPendingImage(m_deviceS caleFactor); 87 if (value->isCachePending(m_deviceScaleFactor)) {
89 if (image && image->isPendingImage()) 88 m_pendingImageProperties.add(property);
90 m_pendingImageProperties.set(property, value); 89 return StylePendingImage::create(value);
91 return image.release(); 90 }
91 return value->cachedImage(m_deviceScaleFactor);
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

Powered by Google App Engine
This is Rietveld 408576698