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

Side by Side Diff: third_party/WebKit/Source/core/css/CSSImageValue.h

Issue 1865603004: Fix crash when setting invalid URL on content (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: pants Created 4 years, 8 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 * (C) 1999-2003 Lars Knoll (knoll@kde.org) 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2004, 2005, 2006, 2008, 2012 Apple Inc. All rights reserved. 3 * Copyright (C) 2004, 2005, 2006, 2008, 2012 Apple Inc. All rights reserved.
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 13 matching lines...) Expand all
24 #include "core/CoreExport.h" 24 #include "core/CoreExport.h"
25 #include "core/css/CSSValue.h" 25 #include "core/css/CSSValue.h"
26 #include "platform/CrossOriginAttributeValue.h" 26 #include "platform/CrossOriginAttributeValue.h"
27 #include "platform/weborigin/Referrer.h" 27 #include "platform/weborigin/Referrer.h"
28 #include "wtf/RefPtr.h" 28 #include "wtf/RefPtr.h"
29 29
30 namespace blink { 30 namespace blink {
31 31
32 class Document; 32 class Document;
33 class KURL; 33 class KURL;
34 class StyleFetchedImage;
35 class StyleImage; 34 class StyleImage;
36 class LayoutObject; 35 class LayoutObject;
37 36
38 class CORE_EXPORT CSSImageValue : public CSSValue { 37 class CORE_EXPORT CSSImageValue : public CSSValue {
39 public: 38 public:
40 static RawPtr<CSSImageValue> create(const KURL& url, StyleFetchedImage* imag e = 0) 39 static RawPtr<CSSImageValue> create(const KURL& url, StyleImage* image = 0)
41 { 40 {
42 return create(url.getString(), url, image); 41 return create(url.getString(), url, image);
43 } 42 }
44 static RawPtr<CSSImageValue> create(const String& rawValue, const KURL& url, StyleFetchedImage* image = 0) 43 static RawPtr<CSSImageValue> create(const String& rawValue, const KURL& url, StyleImage* image = 0)
45 { 44 {
46 return create(AtomicString(rawValue), url, image); 45 return create(AtomicString(rawValue), url, image);
47 } 46 }
48 static RawPtr<CSSImageValue> create(const AtomicString& rawValue, const KURL & url, StyleFetchedImage* image = 0) 47 static RawPtr<CSSImageValue> create(const AtomicString& rawValue, const KURL & url, StyleImage* image = 0)
49 { 48 {
50 return new CSSImageValue(rawValue, url, image); 49 return new CSSImageValue(rawValue, url, image);
51 } 50 }
52 static RawPtr<CSSImageValue> create(const AtomicString& absoluteURL) 51 static RawPtr<CSSImageValue> create(const AtomicString& absoluteURL)
53 { 52 {
54 return new CSSImageValue(absoluteURL); 53 return new CSSImageValue(absoluteURL);
55 } 54 }
56 ~CSSImageValue(); 55 ~CSSImageValue();
57 56
58 bool isCachePending() const { return m_isCachePending; } 57 bool isCachePending() const { return m_isCachePending; }
59 StyleFetchedImage* cachedImage() const { ASSERT(!isCachePending()); return m _cachedImage.get(); } 58 StyleImage* cachedImage() const { ASSERT(!isCachePending()); return m_cached Image.get(); }
60 StyleFetchedImage* cacheImage(Document*, CrossOriginAttributeValue = CrossOr iginAttributeNotSet); 59 StyleImage* cacheImage(Document*, CrossOriginAttributeValue = CrossOriginAtt ributeNotSet);
61 60
62 const String& url() const { return m_absoluteURL; } 61 const String& url() const { return m_absoluteURL; }
63 62
64 void setReferrer(const Referrer& referrer) { m_referrer = referrer; } 63 void setReferrer(const Referrer& referrer) { m_referrer = referrer; }
65 const Referrer& referrer() const { return m_referrer; } 64 const Referrer& referrer() const { return m_referrer; }
66 65
67 void reResolveURL(const Document&); 66 void reResolveURL(const Document&);
68 67
69 String customCSSText() const; 68 String customCSSText() const;
70 69
71 bool hasFailedOrCanceledSubresources() const; 70 bool hasFailedOrCanceledSubresources() const;
72 71
73 bool equals(const CSSImageValue&) const; 72 bool equals(const CSSImageValue&) const;
74 73
75 bool knownToBeOpaque(const LayoutObject&) const; 74 bool knownToBeOpaque(const LayoutObject&) const;
76 75
77 RawPtr<CSSImageValue> valueWithURLMadeAbsolute() 76 RawPtr<CSSImageValue> valueWithURLMadeAbsolute()
78 { 77 {
79 return create(KURL(ParsedURLString, m_absoluteURL), m_cachedImage.get()) ; 78 return create(KURL(ParsedURLString, m_absoluteURL), m_cachedImage.get()) ;
80 } 79 }
81 80
82 void setInitiator(const AtomicString& name) { m_initiatorName = name; } 81 void setInitiator(const AtomicString& name) { m_initiatorName = name; }
83 82
84 DECLARE_TRACE_AFTER_DISPATCH(); 83 DECLARE_TRACE_AFTER_DISPATCH();
85 void restoreCachedResourceIfNeeded(Document&) const; 84 void restoreCachedResourceIfNeeded(Document&) const;
86 85
87 private: 86 private:
88 CSSImageValue(const AtomicString& rawValue, const KURL&, StyleFetchedImage*) ; 87 CSSImageValue(const AtomicString& rawValue, const KURL&, StyleImage*);
89 CSSImageValue(const AtomicString& absoluteURL); 88 CSSImageValue(const AtomicString& absoluteURL);
90 89
91 AtomicString m_relativeURL; 90 AtomicString m_relativeURL;
92 AtomicString m_absoluteURL; 91 AtomicString m_absoluteURL;
93 Referrer m_referrer; 92 Referrer m_referrer;
94 bool m_isCachePending; 93 bool m_isCachePending;
95 Member<StyleFetchedImage> m_cachedImage; 94 Member<StyleImage> m_cachedImage;
96 AtomicString m_initiatorName; 95 AtomicString m_initiatorName;
97 }; 96 };
98 97
99 DEFINE_CSS_VALUE_TYPE_CASTS(CSSImageValue, isImageValue()); 98 DEFINE_CSS_VALUE_TYPE_CASTS(CSSImageValue, isImageValue());
100 99
101 } // namespace blink 100 } // namespace blink
102 101
103 #endif // CSSImageValue_h 102 #endif // CSSImageValue_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/CSSCrossfadeValue.cpp ('k') | third_party/WebKit/Source/core/css/CSSImageValue.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698